[jboss-cvs] JBossAS SVN: r69162 - projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 21 00:09:32 EST 2008


Author: xhuang at jboss.com
Date: 2008-01-21 00:09:32 -0500 (Mon, 21 Jan 2008)
New Revision: 69162

Added:
   projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Author_Group.po
   projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_EJBs.po
   projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_Entity_EJBs.po
   projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_HTTP.po
   projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_Intro.po
   projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JBoss_Cache_JGroups.po
   projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JMS.po
   projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JNDI.po
   projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/J2EE_Naming_On_JBOSS.po
   projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Legal_Notice.po
Log:
Copy from trunk

Added: projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Author_Group.po
===================================================================
--- projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Author_Group.po	2008-01-21 05:09:32 UTC (rev 69162)
@@ -0,0 +1,164 @@
+# Language ja-JP translations for PACKAGE package.
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-12-10 22:33+0000\n"
+"PO-Revision-Date: 2007-11-05 06:01+0000\n"
+"Last-Translator: Automatically generated\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
+#: Author_Group.xml:6
+#, no-c-format
+msgid "<firstname>Alessio</firstname> <surname>Soldano</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:16
+#, no-c-format
+msgid "<firstname>Andreadis</firstname> <surname>Dimitris</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:25
+#, no-c-format
+msgid "<firstname>Bill</firstname> <surname>Burke</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:35
+#, no-c-format
+msgid "<firstname>Brian</firstname> <surname>Stansberry</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:45
+#, no-c-format
+msgid "<firstname>Carlo</firstname> <surname>de Wolf</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:55
+#, no-c-format
+msgid "<firstname>Galder</firstname> <surname>Zamarreno</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:65
+#, no-c-format
+msgid "<firstname>Heiko</firstname> <surname>Braun</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:75
+#, no-c-format
+msgid "<firstname>Michael</firstname> <surname>Yuan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:85
+#, no-c-format
+msgid "<firstname>Roger</firstname> <surname>Pearse</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:95
+#, no-c-format
+msgid "<firstname>Shelly</firstname> <surname>Mc Gowan</surname>"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:105
+#, no-c-format
+msgid "<firstname>Thomas</firstname> <surname>Diesler</surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:116
+#, no-c-format
+msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:132
+#, no-c-format
+msgid "<firstname>Myriam</firstname> <surname>Malga</surname>"
+msgstr ""
+
+#. Tag: contrib
+#: Author_Group.xml:135 Author_Group.xml:142
+#, no-c-format
+msgid "Translation of this book to French."
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:139
+#, no-c-format
+msgid "<firstname>Fabian</firstname> <surname>Decroux</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:147
+#, no-c-format
+msgid "<firstname>Jasna</firstname> <surname>Dimanoski</surname>"
+msgstr ""
+
+#. Tag: contrib
+#: Author_Group.xml:151
+#, no-c-format
+msgid "Translation of this book to German."
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:157
+#, no-c-format
+msgid "<firstname>Yoko</firstname> <surname>Nanamiya</surname>"
+msgstr ""
+
+#. Tag: contrib
+#: Author_Group.xml:160 Author_Group.xml:168 Author_Group.xml:175
+#, no-c-format
+msgid "Translation of this book to Japanese."
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:164
+#, no-c-format
+msgid "<firstname>James</firstname> <surname>Hashida</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:172
+#, no-c-format
+msgid "<firstname>Noriko</firstname> <surname>Mizumoto</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:179
+#, no-c-format
+msgid "<firstname>Glaucia</firstname> <surname>Freitas</surname>"
+msgstr ""
+
+#. Tag: contrib
+#: Author_Group.xml:182
+#, no-c-format
+msgid "Translation of this book to Portuguese."
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:187
+#, no-c-format
+msgid "<firstname>Angela</firstname> <surname>Garcia</surname>"
+msgstr ""
+
+#. Tag: contrib
+#: Author_Group.xml:190
+#, no-c-format
+msgid "Translation of this book to Spanish."
+msgstr ""

Added: projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_EJBs.po
===================================================================
--- projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_EJBs.po	                        (rev 0)
+++ projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_EJBs.po	2008-01-21 05:09:32 UTC (rev 69162)
@@ -0,0 +1,893 @@
+# Language /tmp/mike/JBEAP420/JBAS translations for JBEAP package.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBEAP 420\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-12-10 22:33+0000\n"
+"PO-Revision-Date: 2001-02-09 01:25+0100\n"
+"Last-Translator: Automatically generated\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
+#: Clustering_Guide_EJBs.xml:5
+#, no-c-format
+msgid "Clustered Session EJBs"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:6
+#, no-c-format
+msgid ""
+"Session EJBs provide remote invocation services. They are clustered based on "
+"the client-side interceptor architecture. The client application for a "
+"clustered session bean is exactly the same as the client for the non-"
+"clustered version of the session bean, except for a minor change to the "
+"<literal>java.naming.provier.url</literal> system property to enable HA-JNDI "
+"lookup (see previous section). No code change or re-compilation is needed on "
+"the client side. Now, let's check out how to configure clustered session "
+"beans in EJB 2.x and EJB 3.0 server applications respectively."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_EJBs.xml:13
+#, no-c-format
+msgid "Stateless Session Bean in EJB 2.x"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:14
+#, no-c-format
+msgid ""
+"Clustering stateless session beans is most probably the easiest case: as no "
+"state is involved, calls can be load-balanced on any participating node (i."
+"e. any node that has this specific bean deployed) of the cluster. To make a "
+"bean clustered, you need to modify its <literal>jboss.xml</literal> "
+"descriptor to contain a <literal>&lt;clustered&gt;</literal> tag."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:18
+#, no-c-format
+msgid ""
+"&lt;jboss&gt;    \n"
+"    &lt;enterprise-beans&gt;      \n"
+"        &lt;session&gt;        \n"
+"            &lt;ejb-name&gt;nextgen.StatelessSession&lt;/ejb-"
+"name&gt;        \n"
+"            &lt;jndi-name&gt;nextgen.StatelessSession&lt;/jndi-"
+"name&gt;        \n"
+"            &lt;clustered&gt;True&lt;/clustered&gt;        \n"
+"            &lt;cluster-config&gt;          \n"
+"                &lt;partition-name&gt;DefaultPartition&lt;/partition-"
+"name&gt;          \n"
+"                &lt;home-load-balance-policy&gt;                 \n"
+"                    org.jboss.ha.framework.interfaces.RoundRobin          \n"
+"                &lt;/home-load-balance-policy&gt;          \n"
+"                &lt;bean-load-balance-policy&gt;  \n"
+"                    org.jboss.ha.framework.interfaces.RoundRobin\n"
+"                &lt;/bean-load-balance-policy&gt;\n"
+"            &lt;/cluster-config&gt;\n"
+"        &lt;/session&gt;\n"
+"    &lt;/enterprise-beans&gt;\n"
+"&lt;/jboss&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:21
+#, no-c-format
+msgid ""
+"The <literal>&lt;clustered&gt;True&lt;/clustered&gt;</literal> element is "
+"really just an alias for the <literal>&lt;configuration-name&gt;Clustered "
+"Stateless SessionBean&lt;/configuration-name&gt;</literal> element in the "
+"conf/standard-jboss.xml file."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:26
+#, no-c-format
+msgid ""
+"In the bean configuration, only the &lt;clustered&gt; element is mandatory. "
+"It indicates that the bean needs to support clustering features. The &lt;"
+"cluster-config&gt; element is optional and the default values of its "
+"attributes are indicated in the sample configuration above. Below is a "
+"description of the attributes in the &lt;cluster-config&gt; element.."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:29
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">partition-name</emphasis> specifies the name of the "
+"cluster the bean participates in. The default value is "
+"<literal>DefaultPartition</literal>. The default partition name can also be "
+"set system-wide using the <literal>jboss.partition.name</literal> system "
+"property."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:35
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">home-load-balance-policy</emphasis> indicates the "
+"class to be used by the home stub to balance calls made on the nodes of the "
+"cluster. By default, the proxy will load-balance calls in a "
+"<literal>RoundRobin</literal> fashion. You can also implement your own load-"
+"balance policy class or use the class <literal>FirstAvailable</literal> that "
+"persists to use the first node available that it meets until it fails."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:42
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">bean-load-balance-policy</emphasis> Indicates the "
+"class to be used by the bean stub to balance calls made on the nodes of the "
+"cluster. Comments made for the <literal>home-load-balance-policy</literal> "
+"attribute also apply."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_EJBs.xml:51
+#, no-c-format
+msgid "Stateful Session Bean in EJB 2.x"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:52
+#, no-c-format
+msgid ""
+"Clustering stateful session beans is more complex than clustering their "
+"stateless counterparts since JBoss needs to manage the state information. "
+"The state of all stateful session beans are replicated and synchronized "
+"across the cluster each time the state of a bean changes. The JBoss AS uses "
+"the <literal>HASessionState</literal> MBean to manage distributed session "
+"states for clustered EJB 2.x stateful session beans. In this section, we "
+"cover both the session bean configuration and the <literal>HASessionState</"
+"literal> MBean configuration."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_EJBs.xml:59
+#, no-c-format
+msgid "The EJB application configuration"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:60
+#, no-c-format
+msgid ""
+"In the EJB application, you need to modify the <literal>jboss.xml</literal> "
+"descriptor file for each stateful session bean and add the <literal>&lt;"
+"clustered&gt;</literal> tag."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:62
+#, no-c-format
+msgid ""
+"&lt;jboss&gt;    \n"
+"    &lt;enterprise-beans&gt;\n"
+"        &lt;session&gt;        \n"
+"            &lt;ejb-name&gt;nextgen.StatefulSession&lt;/ejb-"
+"name&gt;        \n"
+"            &lt;jndi-name&gt;nextgen.StatefulSession&lt;/jndi-"
+"name&gt;        \n"
+"            &lt;clustered&gt;True&lt;/clustered&gt;        \n"
+"            &lt;cluster-config&gt;          \n"
+"                &lt;partition-name&gt;DefaultPartition&lt;/partition-"
+"name&gt;\n"
+"                &lt;home-load-balance-policy&gt;               \n"
+"                    org.jboss.ha.framework.interfaces.RoundRobin          \n"
+"                &lt;/home-load-balance-policy&gt;          \n"
+"                &lt;bean-load-balance-policy&gt;               \n"
+"                    org.jboss.ha.framework.interfaces."
+"FirstAvailable          \n"
+"                &lt;/bean-load-balance-policy&gt;          \n"
+"                &lt;session-state-manager-jndi-name&gt;              \n"
+"                    /HASessionState/Default          \n"
+"                &lt;/session-state-manager-jndi-name&gt;        \n"
+"            &lt;/cluster-config&gt;      \n"
+"        &lt;/session&gt;    \n"
+"    &lt;/enterprise-beans&gt;\n"
+"&lt;/jboss&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:63
+#, no-c-format
+msgid ""
+"In the bean configuration, only the <literal>&lt;clustered&gt;</literal> tag "
+"is mandatory to indicate that the bean works in a cluster. The <literal>&lt;"
+"cluster-config&gt;</literal> element is optional and its default attribute "
+"values are indicated in the sample configuration above."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:67
+#, no-c-format
+msgid ""
+"The <literal>&lt;session-state-manager-jndi-name&gt;</literal> tag is used "
+"to give the JNDI name of the <literal>HASessionState</literal> service to be "
+"used by this bean."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:69
+#, no-c-format
+msgid ""
+"The description of the remaining tags is identical to the one for stateless "
+"session bean. Actions on the clustered stateful session bean's home "
+"interface are by default load-balanced, round-robin. Once the bean's remote "
+"stub is available to the client, calls will not be load-balanced round-robin "
+"any more and will stay \"sticky\" to the first node in the list."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_EJBs.xml:75
+#, no-c-format
+msgid "Optimize state replication"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:76
+#, no-c-format
+msgid ""
+"As the replication process is a costly operation, you can optimise this "
+"behaviour by optionally implementing in your bean class a method with the "
+"following signature:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:78
+#, no-c-format
+msgid "public boolean isModified ();"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:79
+#, no-c-format
+msgid ""
+"Before replicating your bean, the container will detect if your bean "
+"implements this method. If your bean does, the container calls the "
+"<literal>isModified()</literal> method and it only replicates the bean when "
+"the method returns <literal>true</literal>. If the bean has not been "
+"modified (or not enough to require replication, depending on your own "
+"preferences), you can return <literal>false</literal> and the replication "
+"would not occur. This feature is available on JBoss AS 3.0.1+ only."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_EJBs.xml:87
+#, no-c-format
+msgid "The HASessionState service configuration"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:88
+#, no-c-format
+msgid ""
+"The <literal>HASessionState</literal> service MBean is defined in the "
+"<code>all/deploy/cluster-service.xml</code> file."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:90
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+"<mbean code=\"org.jboss.ha.hasessionstate.server.HASessionStateService\"\n"
+"   name=\"jboss:service=HASessionState\">\n"
+"    \n"
+"    <depends>jboss:service=Naming</depends> \n"
+"   <!-- We now inject the partition into the HAJNDI service instead \n"
+" of requiring that the partition name be passed --> \n"
+" <depends optional-attribute-name=\"ClusterPartition\" \n"
+"  proxy-type=\"attribute\">\n"
+"  jboss:service=${jboss.partition.name:DefaultPartition}\n"
+"  </depends>\n"
+"  <!-- JNDI name under which the service is bound -->\n"
+"  <attribute name=\"JndiName\">/HASessionState/Default</attribute>\n"
+"  <!-- Max delay before cleaning unreclaimed state.\n"
+"Defaults to 30*60*1000 => 30 minutes -->\n"
+"<attribute name=\"BeanCleaningDelay\">0</attribute>\n"
+"</mbean>   ]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:92
+#, no-c-format
+msgid ""
+"The configuration attributes in the <literal>HASessionState</literal> MBean "
+"are listed below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:95
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ClusterPartition</emphasis> is a required attribute "
+"to inject the HAPartition service that HA-JNDI uses for intra-cluster "
+"communication."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:100
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">JndiName</emphasis> is an optional attribute to "
+"specify the JNDI name under which this <literal>HASessionState</literal> "
+"service is bound. The default value is <literal>/HAPartition/Default</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:106
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">BeanCleaningDelay</emphasis> is an optional "
+"attribute to specify the number of miliseconds after which the "
+"<literal>HASessionState</literal> service can clean a state that has not "
+"been modified. If a node, owning a bean, crashes, its brother node will take "
+"ownership of this bean. Nevertheless, the container cache of the brother "
+"node will not know about it (because it has never seen it before) and will "
+"never delete according to the cleaning settings of the bean. That is why the "
+"<literal>HASessionState</literal> service needs to do this cleanup "
+"sometimes. The default value is <literal>30*60*1000</literal> milliseconds "
+"(i.e., 30 minutes)."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_EJBs.xml:117
+#, no-c-format
+msgid "Handling Cluster Restart"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:118
+#, no-c-format
+msgid ""
+"We have covered the HA smart client architecture in the section called "
+"“Client-side interceptor architecture”. The default HA smart proxy client "
+"can only failover as long as one node in the cluster exists. If there is a "
+"complete cluster shutdown, the proxy becomes orphaned and loses knowledge of "
+"the available nodes in the cluster. There is no way for the proxy to recover "
+"from this. The proxy needs to look up a fresh set of targets out of JNDI/"
+"HAJNDI when the nodes are restarted."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:121
+#, no-c-format
+msgid ""
+"The 3.2.7+/4.0.2+ releases contain a RetryInterceptor that can be added to "
+"the proxy client side interceptor stack to allow for a transparent recovery "
+"from such a restart failure. To enable it for an EJB, setup an invoker-proxy-"
+"binding that includes the RetryInterceptor. Below is an example jboss.xml "
+"configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+" <jboss>\n"
+" <session>\n"
+"         <ejb-name>nextgen_RetryInterceptorStatelessSession</ejb-name>\n"
+"         <invoker-bindings>\n"
+"         <invoker>\n"
+"         <invoker-proxy-binding-name>\n"
+"         clustered-retry-stateless-rmi-invoker\n"
+"         </invoker-proxy-binding-name>\n"
+"         <jndi-name>\n"
+"         nextgen_RetryInterceptorStatelessSession\n"
+"         </jndi-name>\n"
+"         </invoker>\n"
+"         </invoker-bindings>\n"
+"         <clustered>true</clustered>\n"
+" </session>\n"
+"  \n"
+" <invoker-proxy-binding>\n"
+"         <name>clustered-retry-stateless-rmi-invoker</name>\n"
+"         <invoker-mbean>jboss:service=invoker,type=jrmpha</invoker-mbean>\n"
+"         <proxy-factory>org.jboss.proxy.ejb.ProxyFactoryHA</proxy-factory>\n"
+"         <proxy-factory-config>\n"
+"         <client-interceptors>\n"
+"                 <home>\n"
+"                 <interceptor>\n"
+"                 org.jboss.proxy.ejb.HomeInterceptor\n"
+"                 </interceptor>\n"
+"                <interceptor>\n"
+"                org.jboss.proxy.SecurityInterceptor\n"
+"                </interceptor>\n"
+"                <interceptor>\n"
+"                  org.jboss.proxy.TransactionInterceptor\n"
+"                  </interceptor>\n"
+"                 <interceptor>\n"
+"                 org.jboss.proxy.ejb.RetryInterceptor\n"
+"                 </interceptor>\n"
+"                  <interceptor>\n"
+"                  org.jboss.invocation.InvokerInterceptor\n"
+"                  </interceptor>\n"
+"          </home>\n"
+"         <bean>\n"
+"                  <interceptor>\n"
+"                  org.jboss.proxy.ejb.StatelessSessionInterceptor\n"
+"                  </interceptor>\n"
+"                 <interceptor>\n"
+"                 org.jboss.proxy.SecurityInterceptor\n"
+"                 </interceptor>\n"
+"                 <interceptor>\n"
+"                org.jboss.proxy.TransactionInterceptor\n"
+"                </interceptor>\n"
+"                <interceptor>\n"
+"                org.jboss.proxy.ejb.RetryInterceptor\n"
+"                 </interceptor>\n"
+"                 <interceptor>\n"
+"                 org.jboss.invocation.InvokerInterceptor\n"
+"                </interceptor>\n"
+"        </bean>\n"
+"          </client-interceptors>\n"
+"          </proxy-factory-config>\n"
+" </invoker-proxy-binding> ]]>"
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_EJBs.xml:128
+#, no-c-format
+msgid "JNDI Lookup Process"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:129
+#, no-c-format
+msgid ""
+"In order to recover the HA proxy, the RetryInterceptor does a lookup in "
+"JNDI. This means that internally it creates a new InitialContext and does a "
+"JNDI lookup. But, for that lookup to succeed, the InitialContext needs to be "
+"configured properly to find your naming server. The RetryInterceptor will go "
+"through the following steps in attempting to determine the proper naming "
+"environment properties:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:133
+#, no-c-format
+msgid ""
+"It will check its own static retryEnv field. This field can be set by client "
+"code via a call to RetryInterceptor.setRetryEnv(Properties). This approach "
+"to configuration has two downsides: first, it reduces portability by "
+"introducing JBoss-specific calls to the client code; and second, since a "
+"static field is used only a single configuration per JVM is possible."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:138
+#, no-c-format
+msgid ""
+"If the retryEnv field is null, it will check for any environment properties "
+"bound to a ThreadLocal by the org.jboss.naming.NamingContextFactory class. "
+"To use this class as your naming context factory, in your jndi.properties "
+"set property java.naming.factory.initial=org.jboss.naming."
+"NamingContextFactory. The advantage of this approach is use of org.jboss."
+"naming.NamingContextFactory is simply a configuration option in your jndi."
+"properties file, and thus your java code is unaffected. The downside is the "
+"naming properties are stored in a ThreadLocal and thus are only visible to "
+"the thread that originally created an InitialContext."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:143
+#, no-c-format
+msgid ""
+"If neither of the above approaches yield a set of naming environment "
+"properties, a default InitialContext is used. If the attempt to contact a "
+"naming server is unsuccessful, by default the InitialContext will attempt to "
+"fall back on multicast discovery to find an HA-JNDI naming server. See the "
+"section on “ClusteredJNDI Services” for more on multicast discovery of HA-"
+"JNDI."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_EJBs.xml:152
+#, no-c-format
+msgid "SingleRetryInterceptor"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:153
+#, no-c-format
+msgid ""
+"The RetryInterceptor is useful in many use cases, but a disadvantage it has "
+"is that it will continue attempting to re-lookup the HA proxy in JNDI until "
+"it succeeds. If for some reason it cannot succeed, this process could go on "
+"forever, and thus the EJB call that triggered the RetryInterceptor will "
+"never return. For many client applications, this possibility is "
+"unacceptable. As a result, JBoss doesn't make the RetryInterceptor part of "
+"its default client interceptor stacks for clustered EJBs."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:156
+#, no-c-format
+msgid ""
+"In the 4.0.4.RC1 release, a new flavor of retry interceptor was introduced, "
+"the org.jboss.proxy.ejb.SingleRetryInterceptor. This version works like the "
+"RetryInterceptor, but only makes a single attempt to re-lookup the HA proxy "
+"in JNDI. If this attempt fails, the EJB call will fail just as if no retry "
+"interceptor was used. Beginning with 4.0.4.CR2, the SingleRetryInterceptor "
+"is part of the default client interceptor stacks for clustered EJBs."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:159
+#, no-c-format
+msgid ""
+"The downside of the SingleRetryInterceptor is that if the retry attempt is "
+"made during a portion of a cluster restart where no servers are available, "
+"the retry will fail and no further attempts will be made."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_EJBs.xml:169
+#, no-c-format
+msgid "Stateless Session Bean in EJB 3.0"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:170
+#, no-c-format
+msgid ""
+"To cluster a stateless session bean in EJB 3.0, all you need to do is to "
+"annotate the bean class withe the <literal>@Clustered</literal> annotation. "
+"You can pass in the load balance policy and cluster partition as parameters "
+"to the annotation. The default load balance policy is <literal>org.jboss.ha."
+"framework.interfaces.RandomRobin</literal> and the default cluster is "
+"<literal>DefaultPartition</literal>. Below is the definition of the "
+"<literal>@Cluster</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:176
+#, no-c-format
+msgid ""
+"public @interface Clustered {\n"
+"   Class loadBalancePolicy() default LoadBalancePolicy.class;\n"
+"   String partition() default  \"${jboss.partition.name:DefaultPartition}"
+"\";\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:177
+#, no-c-format
+msgid ""
+"Here is an example of a clustered EJB 3.0 stateless session bean "
+"implementation."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:178
+#, no-c-format
+msgid ""
+"@Stateless\n"
+"@Clustered\n"
+"public class MyBean implements MySessionInt {\n"
+"   \n"
+"   public void test() {\n"
+"      // Do something cool\n"
+"   }\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:179
+#, no-c-format
+msgid ""
+"The <literal>@Clustered</literal> annotation can also be omitted and the "
+"clustering configuration applied in jboss.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:182
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+"<jboss>    \n"
+"         <enterprise-beans>\n"
+"         <session>\n"
+"                 <ejb-name>NonAnnotationStateful</ejb-name>\n"
+"                <clustered>true</clustered>\n"
+"                        <cluster-config>\n"
+"                        <partition-name>FooPartition</partition-name>\n"
+"                        <load-balance-policy>\n"
+"                        org.jboss.ha.framework.interfaces.RandomRobin\n"
+"                         </load-balance-policy>\n"
+"                 </cluster-config>\n"
+"         </session>    \n"
+"         </enterprise-beans>\n"
+"</jboss>   ]]>"
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_EJBs.xml:187
+#, no-c-format
+msgid "Stateful Session Beans in EJB 3.0"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:188
+#, no-c-format
+msgid ""
+"To cluster stateful session beans in EJB 3.0, you need to tag the bean "
+"implementation class with the <literal>@Cluster</literal> annotation, just "
+"as we did with the EJB 3.0 stateless session bean earlier. The @org.jboss."
+"ejb3.annotation.cache.tree.CacheConfig annotation can also be applied to the "
+"bean to specify caching behavior. Below is the definition of the "
+"@CacheConfig annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:193
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+"public @interface CacheConfig\n"
+"{\n"
+"String name() default \"jboss.cache:service=EJB3SFSBClusteredCache\";\n"
+"int maxSize() default 10000;\n"
+"long idleTimeoutSeconds() default 300;   \n"
+"boolean replicationIsPassivation() default true;   \n"
+"long removalTimeoutSeconds() default 0;\n"
+"} ]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:196
+#, no-c-format
+msgid ""
+"<literal>name</literal> specifies the object name of the JBoss Cache Mbean "
+"that should be used for caching the bean (see below for more on this Mbean)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:198
+#, no-c-format
+msgid ""
+"<literal>maxSize</literal> specifies the maximum number of beans that can "
+"cached before the cache should start passivating beans, using an LRU "
+"algorithm."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:200
+#, no-c-format
+msgid ""
+"<literal>idleTimeoutSeconds</literal> specifies the max period of time a "
+"bean can go unused before the cache should passivate it (irregardless of "
+"whether maxSize beans are cached.)"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:202
+#, no-c-format
+msgid ""
+"<literal>removalTimeoutSeconds</literal> specifies the max period of time a "
+"bean can go unused before the cache should remove it altogether."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:204
+#, no-c-format
+msgid ""
+"<literal>replicationIsPassivation</literal> specifies whether the cache "
+"should consider a replication as being equivalent to a passivation, and "
+"invoke any @PrePassivate and @PostActivate callbacks on the bean. By default "
+"true, since replication involves serializing the bean, and preparing for and "
+"recovering from serialization is a common reason for implementing the "
+"callback methods."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:209
+#, no-c-format
+msgid ""
+"Here is an example of a clustered EJB 3.0 stateful session bean "
+"implementation."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:216
+#, no-c-format
+msgid ""
+"@Stateful\n"
+"@Clustered\n"
+"@CacheConfig(maxSize=5000,removalTimeoutSeconds=18000)\n"
+"public class MyBean implements MySessionInt {\n"
+"   \n"
+"   private int state = 0;\n"
+"\n"
+"   public void increment() {\n"
+"      System.out.println(\"counter: \" + (state++));\n"
+"   }\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:218
+#, no-c-format
+msgid ""
+"As with stateless beans, the @Clustered annotation can also be omitted and "
+"the clustering configuration applied in jboss.xml; see the example above."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:221
+#, no-c-format
+msgid ""
+"As with EJB 2.0 clustered SFSBs, JBoss provides a mechanism whereby a bean "
+"implementation can expose a method the container can invoke to check whether "
+"the bean's state is not dirty after a request and doesn't need to be "
+"replicated. With EJB3, the mechanism is a little more formal; instead of "
+"just exposing a method with a known signature, an EJB3 SFSB must implement "
+"the org.jboss.ejb3.cache.Optimized interface:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:224
+#, no-c-format
+msgid ""
+"public interface Optimized {\n"
+"boolean isModified();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:226
+#, no-c-format
+msgid ""
+"JBoss Cache provides the session state replication service for EJB 3.0 "
+"stateful session beans. The related MBean service is defined in the "
+"<literal>ejb3-clustered-sfsbcache-service.xml</literal> file in the "
+"<literal>deploy</literal> directory. The contents of the file are as follows."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_EJBs.xml:229
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+"<server>\n"
+"        <mbean code=\"org.jboss..cache.TreeCache\"\n"
+"        name=\"jboss.cache:service=EJB3SFSBClusteredCache\">\n"
+"          \n"
+"                <attribute name=\"ClusterName\">\n"
+"                        ${jboss.partition.name:DefaultPartition}-SFSBCache\n"
+"                        </attribute>\n"
+"                        <attribute name=\"IsolationLevel\">REPEATABLE_READ</"
+"attribute>\n"
+"                        <attribute name=\"CacheMode\">REPL_ASYNC</"
+"attribute> \n"
+"                  \n"
+"                        <!-- We want to activate/inactivate regions as beans "
+"are deployed --> \n"
+"                         <attribute name=\"UseRegionBasedMarshalling\">true</"
+"attribute> \n"
+"                        <!-- Must match the value of "
+"\"useRegionBasedMarshalling\" --> \n"
+"                        <attribute name=\"InactiveOnStartup\">true</"
+"attribute>\n"
+"                          \n"
+"                        <attribute name=\"ClusterConfig\">\n"
+"                        ... ...\n"
+"                        </attribute> \n"
+"                          \n"
+"                        <!-- The max amount of time (in milliseconds) we "
+"wait until the \n"
+"                        initial state (ie. the contents of the cache) are "
+"retrieved from \n"
+"                        existing members.  --> \n"
+"                        <attribute name=\"InitialStateRetrievalTimeout"
+"\">17500</attribute>\n"
+"                          \n"
+"                        <!--  Number of milliseconds to wait until all "
+"responses for a\n"
+"                                synchronous call have been received.\n"
+"                                -->\n"
+"                        <attribute name=\"SyncReplTimeout\">17500</"
+"attribute>\n"
+"                          \n"
+"                        <!--  Max number of milliseconds to wait for a lock "
+"acquisition -->\n"
+"                        <attribute name=\"LockAcquisitionTimeout\">15000</"
+"attribute>\n"
+"                          \n"
+"                         <!--  Name of the eviction policy class. -->\n"
+"                        <attribute name=\"EvictionPolicyClass\">\n"
+"                                org.jboss.cache.eviction.LRUPolicy\n"
+"                        </attribute>\n"
+"                          \n"
+"                        <!--  Specific eviction policy configurations. This "
+"is LRU -->\n"
+"                        <attribute name=\"EvictionPolicyConfig\">\n"
+"                         <config>\n"
+"                                <attribute name=\"wakeUpIntervalSeconds\">5</"
+"attribute>\n"
+"                                 <name>statefulClustered</name> \n"
+"                                <!-- So default region would never timeout --"
+">\n"
+"                                <region name=\"/_default_\">\n"
+"                                <attribute name=\"maxNodes\">0</attribute>\n"
+"                                 <attribute name=\"timeToIdleSeconds\">0</"
+"attribute>\n"
+"                                </region>\n"
+"                        </config>\n"
+"                </attribute> \n"
+"                                          \n"
+"        <!-- Store passivated sessions to the file system --> \n"
+"         <attribute name=\"CacheLoaderConfiguration\"> \n"
+"        <config> \n"
+"          \n"
+"         <passivation>true</passivation> \n"
+"        <shared>false</shared> \n"
+"                                                          \n"
+"          <cacheloader> \n"
+"                 <class>org.jboss.cache.loader.FileCacheLoader</class> \n"
+"                <!-- Passivate to the server data dir --> \n"
+"                 <properties> \n"
+"                        location=${jboss.server.data.dir}${/}sfsb \n"
+"                </properties> \n"
+"                <async>false</async> \n"
+"                <fetchPersistentState>true</fetchPersistentState> \n"
+"                <ignoreModifications>false</ignoreModifications> \n"
+"                </cacheloader> \n"
+"                  \n"
+"                         </config> \n"
+"           </attribute>\n"
+"        </mbean>\n"
+"</server>]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:235
+#, no-c-format
+msgid ""
+"The configuration attributes in this MBean are essentially the same as the "
+"attributes in the standard JBoss Cache <literal>TreeCache</literal> MBean "
+"discussed in <xref linkend=\"jbosscache.chapt\"/>. Again, we omitted the "
+"JGroups configurations in the <literal>ClusterConfig</literal> attribute "
+"(see more in <xref linkend=\"jbosscache-jgroups\"/>). Two noteworthy items:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:240
+#, no-c-format
+msgid ""
+"The cache is configured to support eviction. The EJB3 SFSB container uses "
+"the JBoss Cache eviction mechanism to manage SFSB passivation. When beans "
+"are deployed, the EJB container will programatically add eviction regions to "
+"the cache, one region per bean type."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_EJBs.xml:244
+#, no-c-format
+msgid ""
+"A JBoss Cache CacheLoader is also configured; again to support SFSB "
+"passivation. When beans are evicted from the cache, the cache loader "
+"passivates them to a persistent store; in this case to the filesystem in the "
+"$JBOSS_HOME/server/all/data/sfsb directory. JBoss Cache supports a variety "
+"of different CacheLoader implementations that know how to store data to "
+"different persistent store types; see the JBoss Cache documentation for "
+"details. However, if you change the CacheLoaderConfiguration, be sure that "
+"you do not use a shared store (e.g., a single schema in a shared database.) "
+"Each node in the cluster must have its own persistent store, otherwise as "
+"nodes independently passivate and activate clustered beans, they will "
+"corrupt each others data."
+msgstr ""

Added: projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_Entity_EJBs.po
===================================================================
--- projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_Entity_EJBs.po	                        (rev 0)
+++ projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_Entity_EJBs.po	2008-01-21 05:09:32 UTC (rev 69162)
@@ -0,0 +1,716 @@
+# Language /tmp/mike/JBEAP420/JBAS translations for JBEAP package.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBEAP 420\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-12-10 22:33+0000\n"
+"PO-Revision-Date: 2001-02-09 01:25+0100\n"
+"Last-Translator: Automatically generated\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
+#: Clustering_Guide_Entity_EJBs.xml:5
+#, no-c-format
+msgid "Clustered Entity EJBs"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:6
+#, no-c-format
+msgid ""
+"In a JBoss AS cluster, the entity bean instance caches need to be kept in "
+"sync across all nodes. If an entity bean provides remote services, the "
+"service methods need to be load balanced as well."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:8
+#, no-c-format
+msgid ""
+"To use a clustered entity bean, the application does not need to do anything "
+"special, except for looking up EJB 2.x remote bean references from the "
+"clustered HA-JNDI."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Entity_EJBs.xml:10
+#, no-c-format
+msgid "Entity Bean in EJB 2.x"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:11
+#, no-c-format
+msgid ""
+"First of all, it is worth noting that clustering 2.x entity beans is a bad "
+"thing to do. Its exposes elements that generally are too fine grained for "
+"use as remote objects to clustered remote objects and introduces data "
+"synchronization problems that are non-trivial. Do NOT use EJB 2.x entity "
+"bean clustering unless you fit into the sepecial case situation of read-"
+"only, or one read-write node with read-only nodes synched with the cache "
+"invalidation services."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:13
+#, no-c-format
+msgid ""
+"To cluster EJB 2.x entity beans, you need to add the <literal>&lt;"
+"clustered&gt;</literal> element to the application's <literal>jboss.xml</"
+"literal> descriptor file. Below is a typical <literal>jboss.xml</literal> "
+"file."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:16
+#, no-c-format
+msgid ""
+"&lt;jboss&gt;    \n"
+"    &lt;enterprise-beans&gt;      \n"
+"        &lt;entity&gt;        \n"
+"            &lt;ejb-name&gt;nextgen.EnterpriseEntity&lt;/ejb-"
+"name&gt;        \n"
+"            &lt;jndi-name&gt;nextgen.EnterpriseEntity&lt;/jndi-"
+"name&gt;          \n"
+"            &lt;clustered&gt;True&lt;/clustered&gt;         \n"
+"            &lt;cluster-config&gt;            \n"
+"                &lt;partition-name&gt;DefaultPartition&lt;/partition-"
+"name&gt;            \n"
+"                &lt;home-load-balance-policy&gt;                 \n"
+"                    org.jboss.ha.framework.interfaces."
+"RoundRobin            \n"
+"                &lt;/home-load-balance-policy&gt;            \n"
+"                &lt;bean-load-balance-policy&gt;                \n"
+"                    org.jboss.ha.framework.interfaces."
+"FirstAvailable            \n"
+"                &lt;/bean-load-balance-policy&gt;          \n"
+"            &lt;/cluster-config&gt;      \n"
+"        &lt;/entity&gt;    \n"
+"    &lt;/enterprise-beans&gt;  \n"
+"&lt;/jboss&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:17
+#, no-c-format
+msgid ""
+"The EJB 2.x entity beans are clustered for load balanced remote invocations. "
+"All the bean instances are synchronized to have the same contents on all "
+"nodes."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:19
+#, no-c-format
+msgid ""
+"However, clustered EJB 2.x Entity Beans do not have a distributed locking "
+"mechanism or a distributed cache. They can only be synchronized by using row-"
+"level locking at the database level (see <literal>&lt;row-lock&gt;</literal> "
+"in the CMP specification) or by setting the Transaction Isolation Level of "
+"your JDBC driver to be <literal>TRANSACTION_SERIALIZABLE</literal>. Because "
+"there is no supported distributed locking mechanism or distributed cache "
+"Entity Beans use Commit Option \"B\" by default (See <literal>standardjboss."
+"xml</literal> and the container configurations Clustered CMP 2.x EntityBean, "
+"Clustered CMP EntityBean, or Clustered BMP EntityBean). It is not "
+"recommended that you use Commit Option \"A\" unless your Entity Bean is read-"
+"only. (There are some design patterns that allow you to use Commit Option \"A"
+"\" with read-mostly beans. You can also take a look at the Seppuku pattern "
+"<ulink url=\"http://dima.dhs.org/misc/readOnlyUpdates.html\"></ulink>. JBoss "
+"may incorporate this pattern into later versions.)"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:31
+#, no-c-format
+msgid ""
+"If you are using Bean Managed Persistence (BMP), you are going to have to "
+"implement synchronization on your own. The MVCSoft CMP 2.0 persistence "
+"engine (see <ulink url=\"http://www.jboss.org/jbossgroup/partners.jsp\"></"
+"ulink>) provides different kinds of optimistic locking strategies that can "
+"work in a JBoss cluster."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Entity_EJBs.xml:37
+#, no-c-format
+msgid "Entity Bean in EJB 3.0"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:39
+#, no-c-format
+msgid ""
+"In EJB 3.0, the entity beans primarily serve as a persistence data model. "
+"They do not provide remote services. Hence, the entity bean clustering "
+"service in EJB 3.0 primarily deals with distributed caching and replication, "
+"instead of load balancing."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Entity_EJBs.xml:45
+#, no-c-format
+msgid "Configure the distributed cache"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:46
+#, no-c-format
+msgid ""
+"To avoid round trips to the database, you can use a cache for your entities. "
+"JBoss EJB 3.0 entity beans are implemented by Hibernate, which has support "
+"for a second-level cache. The Hibernate setup used for the JBoss EJB 3.0 "
+"implementation uses JBoss Cache as its underlying second-level cache "
+"implementation. The second-level cache provides the following "
+"functionalities."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:49
+#, no-c-format
+msgid ""
+"If you persist a cache enabled entity bean instance to the database via the "
+"entity manager the entity will inserted into the cache."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:53
+#, no-c-format
+msgid ""
+"If you update an entity bean instance and save the changes to the database "
+"via the entity manager the entity will updated in the cache."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:57
+#, no-c-format
+msgid ""
+"If you remove an entity bean instance from the database via the entity "
+"manager the entity will removed from the cache."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:61
+#, no-c-format
+msgid ""
+"If loading a cached entity from the database via the entity manager, and "
+"that entity does not exist in the database, it will be inserted into the "
+"cache."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:65
+#, no-c-format
+msgid ""
+"The JBoss Cache service for EJB 3.0 entity beans is configured in a "
+"<literal>TreeCache</literal> MBean in the <literal>deploy/ejb3-entity-cache-"
+"service.xml</literal> file. The name of the cache MBean service is "
+"<literal>jboss.cache:service=EJB3EntityTreeCache</literal>. Below are the "
+"contents of the <literal>ejb3-entity-cache-service.xml</literal> file in the "
+"standard JBoss distribution. Again, we omitted the JGroups configuration "
+"element <literal>ClusterConfig</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:71
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+" <server>\n"
+"  <mbean code=\"org.jboss.cache.TreeCache\" \n"
+" name=\"jboss.cache:service=EJB3EntityTreeCache\">\n"
+"          \n"
+"  <depends>jboss:service=Naming</depends>\n"
+"  <depends>jboss:service=TransactionManager</depends> \n"
+"    \n"
+"  <!-- Name of cluster. Needs to be the same on all nodes in the clusters, \n"
+"               in order to find each other --> \n"
+"          <attribute name=\"ClusterName\">\n"
+"                  ${jboss.partition.name:DefaultPartition}-EntityCache\n"
+"          </attribute>\n"
+"          \n"
+"          <!-- Configure the TransactionManager -->\n"
+"         <attribute name=\"TransactionManagerLookupClass\">\n"
+"           org.jboss.cache.JBossTransactionManagerLookup\n"
+"         </attribute>\n"
+"          \n"
+"         <attribute name=\"IsolationLevel\">REPEATABLE_READ</attribute>\n"
+"         <attribute name=\"CacheMode\">REPL_SYNC</attribute> \n"
+"          \n"
+"         <!-- Must be true if any entity deployment uses a scoped "
+"classloader --> \n"
+"         <attribute name=\"UseRegionBasedMarshalling\">true</attribute> \n"
+"         <!-- Must match the value of \"useRegionBasedMarshalling\" --> \n"
+"         <attribute name=\"InactiveOnStartup\">true</attribute>\n"
+"          \n"
+"         <attribute name=\"ClusterConfig\">\n"
+"          ... ...\n"
+"         </attribute>\n"
+"          \n"
+"         <attribute name=\"InitialStateRetrievalTimeout\">17500</attribute>\n"
+"         <attribute name=\"SyncReplTimeout\">17500</attribute>\n"
+"         <attribute name=\"LockAcquisitionTimeout\">15000</attribute>\n"
+"          \n"
+"         <attribute name=\"EvictionPolicyClass\">\n"
+"         org.jboss.cache.eviction.LRUPolicy\n"
+"         </attribute>\n"
+"          \n"
+"         <!--  Specific eviction policy configurations. This is LRU -->\n"
+"          <attribute name=\"EvictionPolicyConfig\">\n"
+"          <config>\n"
+"          <attribute name=\"wakeUpIntervalSeconds\">5</attribute>\n"
+"          <!--  Cache wide default -->\n"
+"                  <region name=\"/_default_\">\n"
+"                  <attribute name=\"maxNodes\">5000</attribute>\n"
+"                  <attribute name=\"timeToLiveSeconds\">1000</attribute>\n"
+"                  </region>\n"
+"          </config>\n"
+"         </attribute>\n"
+"         </mbean>\n"
+"</server>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:73
+#, no-c-format
+msgid ""
+"This is a replicated cache, so, if running within a cluster, and the cache "
+"is updated, changes to the entries in one node will be replicated to the "
+"corresponding entries in the other nodes in the cluster."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:76
+#, no-c-format
+msgid ""
+"JBoss Cache allows you to specify timeouts to cached entities. Entities not "
+"accessed within a certain amount of time are dropped from the cache in order "
+"to save memory. The above configuration sets up a default configuration "
+"region that says that at most the cache will hold 5000 nodes, after which "
+"nodes will start being evicted from memory, least-recently used nodes last. "
+"Also, if any node has not been accessed within the last 1000 seconds, it "
+"will be evicted from memory. In general, a node in the cache represents a "
+"cached item (entity, collection, or query result set), although there are "
+"also a few other node that are used for internal purposes. If the above "
+"values of 5000 maxNodes and 1000 idle seconds are invalid for your "
+"application(s), you can change the cache-wide defaults. You can also add "
+"separate eviction regions for each of your entities; more on this below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:80
+#, no-c-format
+msgid ""
+"Now, we have JBoss Cache configured to support distributed caching of EJB "
+"3.0 entity beans. We still have to configure individual entity beans to use "
+"the cache service."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Entity_EJBs.xml:83
+#, no-c-format
+msgid "Configure the entity beans for cache"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:84
+#, no-c-format
+msgid ""
+"You define your entity bean classes the normal way. Future versions of JBoss "
+"EJB 3.0 will support annotating entities and their relationship collections "
+"as cached, but for now you have to configure the underlying hibernate engine "
+"directly. Take a look at the <literal>persistence.xml</literal> file, which "
+"configures the caching options for hibernate via its optional "
+"<literal>property</literal> elements. The following element in "
+"<literal>persistence.xml</literal> defines that caching should be enabled:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:90
+#, no-c-format
+msgid ""
+"&lt;!-- Clustered cache with TreeCache --&gt;\n"
+"&lt;property name=\"cache.provider_class\"&gt;\n"
+"    org.jboss.ejb3.entity.TreeCacheProviderHook\n"
+"&lt;/property&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:91
+#, no-c-format
+msgid ""
+"The following property element defines the object name of the cache to be "
+"used, i.e., the name of the TreeCache MBean shown above."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:92
+#, no-c-format
+msgid ""
+"&lt;property name=\"treecache.mbean.object_name\"&gt;\n"
+"    jboss.cache:service=EJB3EntityTreeCache\n"
+"&lt;/property&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:93
+#, no-c-format
+msgid ""
+"Finally, you should give a “region_prefix” to this configuration. This "
+"ensures that all cached items associated with this persistence.xml are "
+"properly grouped together in JBoss Cache. The jboss.cache:"
+"service=EJB3EntityTreeCache cache is a shared resource, potentially used by "
+"multiple persistence units. The items cached in that shared cache need to be "
+"properly grouped to allow the cache to properly manage classloading. &lt;"
+"property name=\"hibernate.cache.region_prefix\" value=\"myprefix\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:97
+#, no-c-format
+msgid ""
+"If you do not provide a region prefix, JBoss will automatically provide one "
+"for you, building it up from the name of the EAR (if any) and the name of "
+"the JAR that includes the persistence.xml. For example, a persistence.xml "
+"packaged in foo.ear, bar.jar would be given “foo_ear,bar_jar” as its region "
+"prefix. This is not a particularly friendly region prefix if you need to use "
+"it to set up specialized eviction regions (see below), so specifying your "
+"own region prefix is recommended."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:105
+#, no-c-format
+msgid ""
+"Next we need to configure what entities be cached. The default is to not "
+"cache anything, even with the settings shown above. We use the <literal>@org."
+"hibernate.annotations.Cache</literal> annotation to tag entity beans that "
+"needs to be cached."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:106
+#, no-c-format
+msgid ""
+"@Entity \n"
+"@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL) \n"
+"public class Account implements Serializable { \n"
+"  // ... ... \n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:107
+#, no-c-format
+msgid ""
+"A very simplified rule of thumb is that you will typically want to do "
+"caching for objects that rarely change, and which are frequently read. You "
+"can fine tune the cache for each entity bean in the <literal>ejb3-entity-"
+"cache-service.xml</literal> configuration file. For instance, you can "
+"specify the size of the cache. If there are too many objects in the cache, "
+"the cache could evict oldest objects (or least used objects, depending on "
+"configuration) to make room for new objects. Assuming the region_prefix "
+"specified in <literal>persistence.xml</literal> was myprefix, the default "
+"name of the cache region for the <literal>com.mycompany.entities.Account</"
+"literal> entity bean <literal>/myprefix/com/mycompany/entities/Account</"
+"literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:109
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<server>  \n"
+"  <mbean code=\"org.jboss.cache.TreeCache\" \n"
+"                 name=\"jboss.cache:service=EJB3EntityTreeCache\"> \n"
+"                  ... ... \n"
+"          <attribute name=\"EvictionPolicyConfig\">  \n"
+"                  <config>  \n"
+"                          <attribute name=\"wakeUpIntervalSeconds\">5</"
+"attribute>  \n"
+"                          <region name=\"/_default_\">  \n"
+"                                  <attribute name=\"maxNodes\">5000</"
+"attribute>  \n"
+"                                  <attribute name=\"timeToLiveSeconds"
+"\">1000</attribute>  \n"
+"                          </region>  \n"
+"                  <!-- Separate eviction rules for Account entities -->\n"
+"                          <region name=\"/myprefix/com/mycompany/entities/"
+"Account\">  \n"
+"                                  <attribute name=\"maxNodes\">10000</"
+"attribute>  \n"
+"                                  <attribute name=\"timeToLiveSeconds"
+"\">5000</attribute>  \n"
+"                          </region>  \n"
+"                  ... ... \n"
+"                 </config>  \n"
+"         </attribute>  \n"
+" </mbean> \n"
+"</server>]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:112
+#, no-c-format
+msgid ""
+"If you do not specify a cache region for an entity bean class, all instances "
+"of this class will be cached in the <literal>/_default</literal> region as "
+"defined above. The @Cache annotation exposes an optional attribute “region” "
+"that lets you specify the cache region where an entity is to be stored, "
+"rather than having it be automatically be created from the fully-qualified "
+"class name of the entity class."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:115
+#, no-c-format
+msgid ""
+"@Entity \n"
+"@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL,\n"
+"region=”Account”) \n"
+"public class Account implements Serializable { \n"
+"// ... ... \n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:116
+#, no-c-format
+msgid "The eviction configuration would then become:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:117
+#, no-c-format
+msgid ""
+"<![CDATA[                        \n"
+"<server>  \n"
+"        <mbean code=\"org.jboss.cache.TreeCache\" \n"
+"              name=\"jboss.cache:service=EJB3EntityTreeCache\"> \n"
+"                ... ... \n"
+"        <attribute name=\"EvictionPolicyConfig\">  \n"
+"        <config>  \n"
+"                <attribute name=\"wakeUpIntervalSeconds\">5</attribute>  \n"
+"                <region name=\"/_default_\">  \n"
+"                <attribute name=\"maxNodes\">5000</attribute>  \n"
+"                <attribute name=\"timeToLiveSeconds\">1000</attribute>  \n"
+"                        </region>  \n"
+"                <!-- Separate eviction rules for Account entities -->\n"
+"                        <region name=\"/myprefix/Account\">  \n"
+"                                <attribute name=\"maxNodes\">10000</"
+"attribute>  \n"
+"                                <attribute name=\"timeToLiveSeconds\">5000</"
+"attribute>  \n"
+"                        </region>  \n"
+"                        ... ... \n"
+"        </config>  \n"
+"        </attribute>  \n"
+"        </mbean> \n"
+"</server>]]>"
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Entity_EJBs.xml:122
+#, no-c-format
+msgid "Query result caching"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:123
+#, no-c-format
+msgid ""
+"The EJB3 Query API also provides means for you to save in the second-level "
+"cache the results (i.e., collections of primary keys of entity beans, or "
+"collections of scalar values) of specified queries. Here we show a simple "
+"example of annotating a bean with a named query, also providing the "
+"Hibernate-specific hints that tells Hibernate to cache the query."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:126
+#, no-c-format
+msgid ""
+"First, in persistence.xml you need to tell Hibernate to enable query caching:"
+msgstr ""
+
+#. Tag: screen
+#: Clustering_Guide_Entity_EJBs.xml:129
+#, no-c-format
+msgid ""
+"&lt;property name=\"hibernate.cache.use_query_cache\" value=\"true\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:130
+#, no-c-format
+msgid ""
+"Next, you create a named query associated with an entity, and tell Hibernate "
+"you want to cache the results of that query:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:133
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+"@Entity\n"
+"@Cache (usage=CacheConcurrencyStrategy.TRANSACTIONAL,\n"
+"region=”Account”)\n"
+"@NamedQueries({\n"
+"@NamedQuery(name=\"account.bybranch\",\n"
+"query=\"select acct from Account as acct where acct.branch = ?1\",\n"
+"hints={@QueryHint(name=\"org.hibernate.cacheable\",value=\"true"
+"\")})           \n"
+"})\n"
+"public class Account implements Serializable { \n"
+"// ... ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:135
+#, no-c-format
+msgid ""
+"The @NamedQueries, @NamedQuery and @QueryHint annotations are all in the "
+"javax.persistence package.See the Hibernate and EJB3 documentation for more "
+"on how to use EJB3 queries and on how to instruct EJB3 to cache queries."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:138
+#, no-c-format
+msgid ""
+"By default, Hibernate stores query results in JBoss Cache in a region named "
+"{region_prefix}/org/hibernate/cache/StandardQueryCache. Based on this, you "
+"can set up separate eviction handling for your query results. So, if the "
+"region prefix were set to myprefix in persistence.xml, you could, for "
+"example, create this sort of eviction handling:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+"<server>  \n"
+"          <mbean code=\"org.jboss.cache.TreeCache\" \n"
+"                 name=\"jboss.cache:service=EJB3EntityTreeCache\">\n"
+"                  ... ... \n"
+"                  <attribute name=\"EvictionPolicyConfig\">  \n"
+"                          <config>  \n"
+"                          <attribute name=\"wakeUpIntervalSeconds\">5</"
+"attribute>  \n"
+"                                  <region name=\"/_default_\">  \n"
+"                                  <attribute name=\"maxNodes\">5000</"
+"attribute>  \n"
+"                                  <attribute name=\"timeToLiveSeconds"
+"\">1000</attribute>  \n"
+"                                  </region>  \n"
+"                                  <!-- Separate eviction rules for Account "
+"entities -->\n"
+"                                  <region name=\"/myprefix/Account\">  \n"
+"                                          <attribute name=\"maxNodes"
+"\">10000</attribute>  \n"
+"                                          <attribute name=\"timeToLiveSeconds"
+"\">5000</attribute>  \n"
+"                                  </region>\n"
+"                                  <!-- Cache queries for 10 minutes -->\n"
+"                                  <region name=\"/myprefix/org/hibernate/"
+"cache/StandardQueryCache\">  \n"
+"                                          <attribute name=\"maxNodes\">100</"
+"attribute>  \n"
+"                                          <attribute name=\"timeToLiveSeconds"
+"\">600</attribute>  \n"
+"                                  </region>  \n"
+"                                  ... ... \n"
+"                          </config>  \n"
+"                  </attribute>  \n"
+"          </mbean> \n"
+"</server>\n"
+"          ]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:144
+#, no-c-format
+msgid ""
+"The @NamedQuery.hints attribute shown above takes an array of vendor-"
+"specific @QueryHints as a value. Hibernate accepts the “org.hibernate."
+"cacheRegion” query hint, where the value is the name of a cache region to "
+"use instead ofthe default /org/hibernate/cache/StandardQueryCache. For "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"        @Entity\n"
+"        @Cache (usage=CacheConcurrencyStrategy.TRANSACTIONAL,\n"
+"        region=”Account”)\n"
+"        @NamedQueries({\n"
+"        @NamedQuery(name=\"account.bybranch\",\n"
+"        query=\"select acct from Account as acct where acct.branch = ?1\",\n"
+"        hints={@QueryHint(name=\"org.hibernate.cacheable\",value=\"true\"),\n"
+"        @QueryHint(name=”org.hibernate.cacheRegion,value=”Queries”)\n"
+"        })           \n"
+"        })\n"
+"        public class Account implements Serializable { \n"
+"        // ... ... \n"
+"        }]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Entity_EJBs.xml:148
+#, no-c-format
+msgid "The related eviction configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Entity_EJBs.xml:151
+#, no-c-format
+msgid ""
+"<![CDATA[        \n"
+"<server>  \n"
+"        <mbean code=\"org.jboss.cache.TreeCache\" \n"
+"               name=\"jboss.cache:service=EJB3EntityTreeCache\">\n"
+"                ... ... \n"
+"                <attribute name=\"EvictionPolicyConfig\">  \n"
+"                        <config>  \n"
+"                                <attribute name=\"wakeUpIntervalSeconds\">5</"
+"attribute>  \n"
+"                                <region name=\"/_default_\">  \n"
+"                                        <attribute name=\"maxNodes\">5000</"
+"attribute>  \n"
+"                                        <attribute name=\"timeToLiveSeconds"
+"\">1000</attribute>  \n"
+"                                </region>  \n"
+"                                <!-- Separate eviction rules for Account "
+"entities -->\n"
+"                                <region name=\"/myprefix/Account\">  \n"
+"                                        <attribute name=\"maxNodes\">10000</"
+"attribute>  \n"
+"                                        <attribute name=\"timeToLiveSeconds"
+"\">5000</attribute>  \n"
+"                                </region>\n"
+"                                <!-- Cache queries for 10 minutes -->\n"
+"                                <region name=\"/myprefix/Queries\">  \n"
+"                                        <attribute name=\"maxNodes\">100</"
+"attribute>  \n"
+"                                        <attribute name=\"timeToLiveSeconds"
+"\">600</attribute>  \n"
+"                                </region>  \n"
+"                                ... ... \n"
+"                        </config>  \n"
+"                </attribute>  \n"
+"        </mbean> \n"
+"</server>]]>"
+msgstr ""

Added: projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_HTTP.po
===================================================================
--- projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_HTTP.po	                        (rev 0)
+++ projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_HTTP.po	2008-01-21 05:09:32 UTC (rev 69162)
@@ -0,0 +1,1680 @@
+# Language /tmp/mike/JBEAP420/JBAS translations for JBEAP package.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBEAP 420\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-12-10 22:33+0000\n"
+"PO-Revision-Date: 2001-02-09 01:25+0100\n"
+"Last-Translator: Automatically generated\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
+#: Clustering_Guide_HTTP.xml:5
+#, no-c-format
+msgid "HTTP Services"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:6
+#, no-c-format
+msgid ""
+"HTTP session replication is used to replicate the state associated with your "
+"web clients on other nodes of a cluster. Thus, in the event one of your node "
+"crashes, another node in the cluster will be able to recover. Two distinct "
+"functions must be performed:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:11
+#, no-c-format
+msgid "Session state replication"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:14
+#, no-c-format
+msgid "Load-balancing of incoming invocations"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:17
+#, no-c-format
+msgid ""
+"State replication is directly handled by JBoss. When you run JBoss in the "
+"<literal>all</literal> configuration, session state replication is enabled "
+"by default. Just configure your web application as distributable in its "
+"<filename>web.xml</filename> (see below), deploy it, and its session state "
+"is automtically replicated across all JBoss instances in the cluster."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:19
+#, no-c-format
+msgid ""
+"However, load-balancing is a different story; it is not handled by JBoss "
+"itself and requires an external load balancer. aThis function could be "
+"provided by specialized hardware switches or routers (Cisco LoadDirector for "
+"example) or by specialized software running on commodity hardware. As a very "
+"common scenario, we will demonstrate how to set up a software load balancer "
+"using Apache httpd and mod_jk."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:22 Clustering_Guide_HTTP.xml:447
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:24
+#, no-c-format
+msgid ""
+"A load-balancer tracks HTTP requests and, depending on the session to which "
+"the request is linked, it dispatches the request to the appropriate node. "
+"This is called load-balancing with sticky-sessions: once a session is "
+"created on a node, every future request will also be processed by that same "
+"node. Using a load-balancer that supports sticky-sessions but not "
+"configuring your web application for session replication allows you to scale "
+"very well by avoiding the cost of session state replication: each query will "
+"always be handled by the same node. But in case a node dies, the state of "
+"all client sessions hosted by this node (the shopping carts, for example) "
+"will be lost and the clients will most probably need to login on another "
+"node and restart with a new session. In many situations, it is acceptable "
+"not to replicate HTTP sessions because all critical state is stored in a "
+"database. In other situations, losing a client session is not acceptable "
+"and, in this case, session state replication is the price one has to pay."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:26
+#, no-c-format
+msgid "Configuring load balancing using Apache and mod_jk"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:28
+#, no-c-format
+msgid ""
+"Apache is a well-known web server which can be extended by plugging in "
+"modules. One of these modules, mod_jk has been specifically designed to "
+"allow the forwarding of requests from Apache to a Servlet container. "
+"Furthermore, it is also able to load-balance HTTP calls to a set of Servlet "
+"containers while maintaining sticky sessions, which is what is most "
+"interesting for us in this section."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:33
+#, no-c-format
+msgid "Download the software"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:34
+#, no-c-format
+msgid ""
+"First of all, make sure that you have Apache installed. You can download "
+"Apache directly from Apache web site at <literal>http://httpd.apache.org/</"
+"literal>. Its installation is pretty straightforward and requires no "
+"specific configuration. As several versions of Apache exist, we advise you "
+"to use version 2.0.x. We will consider, for the next sections, that you have "
+"installed Apache in the <literal>APACHE_HOME</literal> directory."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:39
+#, no-c-format
+msgid ""
+"Next, download mod_jk binaries. Several versions of mod_jk exist as well. We "
+"strongly advise you to use mod_jk 1.2.x, as both mod_jk and mod_jk2 are "
+"deprecated, unsupported and no further developments are going on in the "
+"community. The mod_jk 1.2.x binary can be downloaded from <literal>http://"
+"www.apache.org/dist/jakarta/tomcat-connectors/jk/binaries/</literal>. Rename "
+"the downloaded file to <literal>mod_jk.so</literal> and copy it under "
+"<literal>APACHE_HOME/modules/</literal>."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:47
+#, no-c-format
+msgid "Configure Apache to load mod_jk"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:48
+#, no-c-format
+msgid ""
+"Modify APACHE_HOME/conf/httpd.conf and add a single line at the end of the "
+"file:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:49
+#, no-c-format
+msgid ""
+"# Include mod_jk's specific configuration file  \n"
+"Include conf/mod-jk.conf"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:50
+#, no-c-format
+msgid ""
+"Next, create a new file named <literal>APACHE_HOME/conf/mod-jk.conf</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:51
+#, no-c-format
+msgid ""
+"# Load mod_jk module\n"
+"# Specify the filename of the mod_jk lib\n"
+"LoadModule jk_module modules/mod_jk.so\n"
+" \n"
+"# Where to find workers.properties\n"
+"JkWorkersFile conf/workers.properties\n"
+"\n"
+"# Where to put jk logs\n"
+"JkLogFile logs/mod_jk.log\n"
+" \n"
+"# Set the jk log level [debug/error/info]\n"
+"JkLogLevel info \n"
+" \n"
+"# Select the log format\n"
+"JkLogStampFormat  \"[%a %b %d %H:%M:%S %Y]\"\n"
+" \n"
+"# JkOptions indicates to send SSK KEY SIZE\n"
+"JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories\n"
+" \n"
+"# JkRequestLogFormat\n"
+"JkRequestLogFormat \"%w %V %T\"\n"
+"               \n"
+"# Mount your applications\n"
+"JkMount /application/* loadbalancer\n"
+" \n"
+"# You can use external file for mount points.\n"
+"# It will be checked for updates each 60 seconds.\n"
+"# The format of the file is: /url=worker\n"
+"# /examples/*=loadbalancer\n"
+"JkMountFile conf/uriworkermap.properties               \n"
+"\n"
+"# Add shared memory.\n"
+"# This directive is present with 1.2.10 and\n"
+"# later versions of mod_jk, and is needed for\n"
+"# for load balancing to work properly\n"
+"JkShmFile logs/jk.shm \n"
+"              \n"
+"# Add jkstatus for managing runtime data\n"
+"&lt;Location /jkstatus/&gt;\n"
+"    JkMount status\n"
+"    Order deny,allow\n"
+"    Deny from all\n"
+"    Allow from 127.0.0.1\n"
+"&lt;/Location&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:52
+#, no-c-format
+msgid "Please note that two settings are very important:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:55
+#, no-c-format
+msgid ""
+"The <literal>LoadModule</literal> directive must reference the mod_jk "
+"library you have downloaded in the previous section. You must indicate the "
+"exact same name with the \"modules\" file path prefix."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:60
+#, no-c-format
+msgid ""
+"The <literal>JkMount</literal> directive tells Apache which URLs it should "
+"forward to the mod_jk module (and, in turn, to the Servlet containers). In "
+"the above file, all requests with URL path <literal>/application/*</literal> "
+"are sent to the mod_jk load-balancer. This way, you can configure Apache to "
+"server static contents (or PHP contents) directly and only use the "
+"loadbalancer for Java applications. If you only use mod_jk as a "
+"loadbalancer, you can also forward all URLs (i.e., <literal>/*</literal>) to "
+"mod_jk."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:68
+#, no-c-format
+msgid ""
+"In addition to the <literal>JkMount</literal> directive, you can also use "
+"the <literal>JkMountFile</literal> directive to specify a mount points "
+"configuration file, which contains multiple Tomcat forwarding URL mappings. "
+"You just need to create a <literal>uriworkermap.properties</literal> file in "
+"the <literal>APACHE_HOME/conf</literal> directory. The format of the file is "
+"<literal>/url=worker_name</literal>. To get things started, paste the "
+"following example into the file you created:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:74
+#, no-c-format
+msgid ""
+"# Simple worker configuration file\n"
+"\n"
+"# Mount the Servlet context to the ajp13 worker\n"
+"/jmx-console=loadbalancer\n"
+"/jmx-console/*=loadbalancer\n"
+"/web-console=loadbalancer\n"
+"/web-console/*=loadbalancer"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:75
+#, no-c-format
+msgid ""
+"This will configure mod_jk to forward requests to <literal>/jmx-console</"
+"literal> and <literal>/web-console</literal> to Tomcat."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:77
+#, no-c-format
+msgid ""
+"You will most probably not change the other settings in <literal>mod_jk."
+"conf</literal>. They are used to tell mod_jk where to put its logging file, "
+"which logging level to use and so on."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:81
+#, no-c-format
+msgid "Configure worker nodes in mod_jk"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:82
+#, no-c-format
+msgid ""
+"Next, you need to configure mod_jk workers file <literal>conf/workers."
+"properties</literal>. This file specifies where the different Servlet "
+"containers are located and how calls should be load-balanced across them. "
+"The configuration file contains one section for each target servlet "
+"container and one global section. For a two nodes setup, the file could look "
+"like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:87
+#, no-c-format
+msgid ""
+"# Define list of workers that will be used\n"
+"# for mapping requests\n"
+"worker.list=loadbalancer,status\n"
+"\n"
+"# Define Node1\n"
+"# modify the host as your host IP or DNS name.\n"
+"worker.node1.port=8009\n"
+"worker.node1.host=node1.mydomain.com \n"
+"worker.node1.type=ajp13\n"
+"worker.node1.lbfactor=1\n"
+"worker.node1.cachesize=10\n"
+"\n"
+"# Define Node2\n"
+"# modify the host as your host IP or DNS name.\n"
+"worker.node2.port=8009\n"
+"worker.node2.host= node2.mydomain.com\n"
+"worker.node2.type=ajp13\n"
+"worker.node2.lbfactor=1\n"
+"worker.node2.cachesize=10\n"
+"\n"
+"# Load-balancing behaviour\n"
+"worker.loadbalancer.type=lb\n"
+"worker.loadbalancer.balance_workers=node1,node2\n"
+"worker.loadbalancer.sticky_session=1\n"
+"#worker.list=loadbalancer\n"
+"\n"
+"# Status worker for managing load balancer\n"
+"worker.status.type=status"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:88
+#, no-c-format
+msgid ""
+"Basically, the above file configures mod_jk to perform weighted round-robin "
+"load balancing with sticky sessions between two servlet containers (JBoss "
+"Tomcat) node1 and node2 listening on port 8009."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:91
+#, no-c-format
+msgid ""
+"In the <literal>works.properties</literal> file, each node is defined using "
+"the <literal>worker.XXX</literal> naming convention where <literal>XXX</"
+"literal> represents an arbitrary name you choose for each of the target "
+"Servlet containers. For each worker, you must specify the host name (or IP "
+"address) and the port number of the AJP13 connector running in the Servlet "
+"container."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:96
+#, no-c-format
+msgid ""
+"The <literal>lbfactor</literal> attribute is the load-balancing factor for "
+"this specific worker. It is used to define the priority (or weight) a node "
+"should have over other nodes. The higher this number is for a given worker "
+"relative to the other workers, the more HTTP requests the worker will "
+"receive. This setting can be used to differentiate servers with different "
+"processing power."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:98
+#, no-c-format
+msgid ""
+"The <literal>cachesize</literal> attribute defines the size of the thread "
+"pools associated to the Servlet container (i.e. the number of concurrent "
+"requests it will forward to the Servlet container). Make sure this number "
+"does not outnumber the number of threads configured on the AJP13 connector "
+"of the Servlet container. Please review <literal>http://jakarta.apache.org/"
+"tomcat/connectors-doc/config/workers.html</literal> for comments on "
+"<literal>cachesize</literal> for Apache 1.3.x."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:104
+#, no-c-format
+msgid ""
+"The last part of the <literal>conf/workers.properties</literal> file defines "
+"the loadbalancer worker. The only thing you must change is the "
+"<literal>worker.loadbalancer.balanced_workers</literal> line: it must list "
+"all workers previously defined in the same file: load-balancing will happen "
+"over these workers."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:108
+#, no-c-format
+msgid ""
+"The <literal>sticky_session</literal> property specifies the cluster "
+"behavior for HTTP sessions. If you specify <literal>worker.loadbalancer."
+"sticky_session=0</literal>, each request will be load balanced between node1 "
+"and node2; i.e., different requests for the same session will go to "
+"different servers. But when a user opens a session on one server, it is "
+"always necessary to always forward this user's requests to the same server, "
+"as long as that server is available. This is called a \"sticky session\", as "
+"the client is always using the same server he reached on his first request. "
+"To enable session stickiness, you need to set <literal>worker.loadbalancer."
+"sticky_session</literal> to 1."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:113
+#, no-c-format
+msgid ""
+"A non-loadbalanced setup with a single node requires a <literal>worker."
+"list=node1</literal> entry."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:118
+#, no-c-format
+msgid "Configuring JBoss to work with mod_jk"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:119
+#, no-c-format
+msgid ""
+"Finally, we must configure the JBoss Tomcat instances on all clustered nodes "
+"so that they can expect requests forwarded from the mod_jk loadbalancer."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:121
+#, no-c-format
+msgid ""
+"On each clustered JBoss node, we have to name the node according to the name "
+"specified in <literal>workers.properties</literal>. For instance, on JBoss "
+"instance node1, edit the <literal>JBOSS_HOME/server/all/deploy/jboss-web."
+"deployer/server.xml</literal> file (replace <literal>/all</literal> with "
+"your own server name if necessary). Locate the <literal>&lt;Engine&gt;</"
+"literal> element and add an attribute <literal>jvmRoute</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:126
+#, no-c-format
+msgid ""
+"&lt;Engine name=\"jboss.web\" defaultHost=\"localhost\" jvmRoute=\"node1"
+"\"&gt;\n"
+"... ...\n"
+"&lt;/Engine&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:127
+#, no-c-format
+msgid ""
+"You also need to be sure the AJP connector in server.xml is enabled (i.e., "
+"uncommented). It is enabled by default."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:129
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+"<!-- Define an AJP 1.3 Connector on port 8009 --> \n"
+"<Connector port=\"8009\" address=\"${jboss.bind.address}\" protocol=\"AJP/1.3"
+"\" \n"
+"emptySessionPath=\"true\" enableLookups=\"false\" redirectPort=\"8443\" /> ]]"
+">"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:131
+#, no-c-format
+msgid ""
+"Then, for each JBoss Tomcat instance in the cluster, we need to tell it that "
+"mod_jk is in use, so it can properly manage the <literal>jvmRoute</literal> "
+"appended to its session cookies so that mod_jk can properly route incoming "
+"requests. Edit the <literal>JBOSS_HOME/server/all/deploy/jbossweb-tomcat50."
+"sar/META-INF/jboss-service.xml</literal> file (replace <literal>/all</"
+"literal> with your own server name). Locate the <literal>&lt;attribute&gt;</"
+"literal> element with a name of <literal>UseJK</literal>, and set its value "
+"to <literal>true</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:136
+#, no-c-format
+msgid "&lt;attribute name=\"UseJK\"&gt;true&lt;/attribute&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:137
+#, no-c-format
+msgid ""
+"At this point, you have a fully working Apache+mod_jk load-balancer setup "
+"that will balance call to the Servlet containers of your cluster while "
+"taking care of session stickiness (clients will always use the same Servlet "
+"container)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:141
+#, no-c-format
+msgid ""
+"For more updated information on using mod_jk 1.2 with JBoss Tomcat, please "
+"refer to the JBoss wiki page at <literal>http://wiki.jboss.org/wiki/Wiki.jsp?"
+"page=UsingMod_jk1.2WithJBoss</literal>."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:149
+#, no-c-format
+msgid "Configuring HTTP session state replication"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:150
+#, no-c-format
+msgid ""
+"The preceding discussion has been focused on using mod_jk as a load "
+"balancer. The content of the remainder our discussion of clustering HTTP "
+"services in JBoss AS applies no matter what load balancer is used."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:153
+#, no-c-format
+msgid ""
+"In <xref linkend=\"clustering-http-nodes\"/>, we covered how to use sticky "
+"sessions to make sure that a client in a session always hits the same server "
+"node in order to maintain the session state. However, sticky sessions by "
+"themselves are not an ideal solution. If a node goes down, all its session "
+"data is lost. A better and more reliable solution is to replicate session "
+"data across the nodes in the cluster. This way, the client can hit any "
+"server node and obtain the same session state."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:155
+#, no-c-format
+msgid ""
+"The <literal>jboss.cache:service=TomcatClusteringCache</literal> MBean makes "
+"use of JBoss Cache to provide HTTP session replication services to the JBoss "
+"Tomcat cluster. This MBean is defined in the <literal>deploy/jboss-web-"
+"cluster.sar/META-INF/jboss-service.xml file</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:158
+#, no-c-format
+msgid ""
+"Before AS 4.2.0, the location of the HTTP session cache configuration file "
+"was <literal>deploy/tc5-cluster.sar/META-INF/jboss-service.xml</literal>. "
+"Prior to AS 4.0.4 CR2, the file was named <literal>deploy/tc5-cluster-"
+"service.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:160
+#, no-c-format
+msgid ""
+"Below is a typical <literal>deploy/jbossweb-cluster.sar/META-INF/jboss-"
+"service.xml</literal> file. The configuration attributes in the "
+"<literal>TomcatClusteringCache</literal> MBean are very similar to those in "
+"the JBoss AS cache configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:163
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"org.jboss.cache.aop.TreeCacheAop\"\n"
+"    name=\"jboss.cache:service=TomcatClusteringCache\"&gt;\n"
+"\n"
+"    &lt;depends&gt;jboss:service=Naming&lt;/depends&gt;\n"
+"    &lt;depends&gt;jboss:service=TransactionManager&lt;/depends&gt;\n"
+"    &lt;depends&gt;jboss.aop:service=AspectDeployer&lt;/depends&gt;\n"
+"\n"
+"    &lt;attribute name=\"TransactionManagerLookupClass\"&gt;\n"
+"        org.jboss.cache.BatchModeTransactionManagerLookup\n"
+"    &lt;/attribute&gt;\n"
+"    \n"
+"    &lt;attribute name=\"IsolationLevel\"&gt;REPEATABLE_READ&lt;/"
+"attribute&gt;\n"
+"    \n"
+"    &lt;attribute name=\"CacheMode\"&gt;REPL_ASYNC&lt;/attribute&gt;\n"
+"    \n"
+"    &lt;attribute name=\"ClusterName\"&gt;\n"
+"      Tomcat-${jboss.partition.name:Cluster}\n"
+"    &lt;/attribute&gt;\n"
+"    \n"
+"    &lt;attribute name=\"UseMarshalling\"&gt;false&lt;/attribute&gt;\n"
+"    \n"
+"    &lt;attribute name=\"InactiveOnStartup\"&gt;false&lt;/attribute&gt;\n"
+"    \n"
+"    &lt;attribute name=\"ClusterConfig\"&gt;\n"
+"        ... ...\n"
+"    &lt;/attribute&gt;\n"
+"    \n"
+"   \n"
+"    &lt;attribute name=\"LockAcquisitionTimeout\"&gt;15000&lt;/"
+"attribute&gt;\n"
+"    &lt;attribute name=\"SyncReplTimeout\"&gt;20000&lt;/attribute&gt;\n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:165
+#, no-c-format
+msgid ""
+"Note that the value of the mbean element's code attribute is org.jboss.cache."
+"aop.TreeCacheAop, which is different from the other JBoss Cache Mbeans used "
+"in JBoss AS. This is because FIELD granularity HTTP session replication "
+"(covered below) needs the added features of the <literal>TreeCacheAop</"
+"literal> (a.k.a. <literal>PojoCache</literal>) class."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:168
+#, no-c-format
+msgid ""
+"The details of all the configuration options for a TreeCache MBean are "
+"covered in the JBoss Cache documentation. Below, we will just discuss "
+"several attributes that are most relevant to the HTTP cluster session "
+"replication."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:171
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">TransactionManagerLookupClass</emphasis> sets the "
+"transaction manager factory. The default value is <literal>org.jboss.cache."
+"BatchModeTransactionManagerLookup</literal>. It tells the cache NOT to "
+"participate in JTA-specific transactions. Instead, the cache manages its own "
+"transactions. Please do not change this."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:178
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">CacheMode</emphasis> controls how the cache is "
+"replicated. The valid values are <literal>REPL_SYNC</literal> and "
+"<literal>REPL_ASYNC</literal>. With either setting the client request thread "
+"updates the local cache with the current sesssion contents and then sends a "
+"message to the caches on the other members of the cluster, telling them to "
+"make the same change. With REPL_ASYNC (the default) the request thread "
+"returns as soon as the update message has been put on the network. With "
+"REPL_SYNC, the request thread blocks until it gets a reply message from all "
+"cluster members, informing it that the update was successfully applied. "
+"Using synchronous replication makes sure changes are applied aroundthe "
+"cluster before the web request completes. However, synchronous replication "
+"is much slower."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:182
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ClusterName</emphasis> specifies the name of the "
+"cluster that the cache works within. The default cluster name is the the "
+"word \"Tomcat-\" appended by the current JBoss partition name. All the nodes "
+"must use the same cluster name."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:187
+#, no-c-format
+msgid ""
+"The <emphasis role=\"bold\">UseMarshalling</emphasis> and <emphasis role="
+"\"bold\">InactiveOnStartup</emphasis> attributes must have the same value. "
+"They must be <literal>true</literal> if <literal>FIELD</literal> level "
+"session replication is needed (see later). Otherwise, they are default to "
+"<literal>false</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:192
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ClusterConfig</emphasis> configures the underlying "
+"JGroups stack. Please refer to <xref linkend=\"jbosscache-jgroups\"/> for "
+"more information."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:195
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">LockAcquisitionTimeout</emphasis> sets the maximum "
+"number of milliseconds to wait for a lock acquisition when trying to lock a "
+"cache node. The default value is 15000."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:199
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">SyncReplTimeout</emphasis> sets the maximum number "
+"of milliseconds to wait for a response from all nodes in the cluster when a "
+"synchronous replication message is sent out. The default value is 20000; "
+"should be a few seconds longer than LockAcquisitionTimeout."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:207
+#, no-c-format
+msgid "Enabling session replication in your application"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:208
+#, no-c-format
+msgid ""
+"To enable clustering of your web application you must tag it as "
+"distributable in the <literal>web.xml</literal> descriptor. Here's an "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:210
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\"?&gt; \n"
+"&lt;web-app  xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
+"          xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee \n"
+"                              http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+"\" \n"
+"          version=\"2.4\"&gt;\n"
+"    <emphasis role=\"bold\">&lt;distributable/&gt;</emphasis>\n"
+"    &lt;!-- ... --&gt;\n"
+"&lt;/web-app&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:211
+#, no-c-format
+msgid ""
+"You can futher configure session replication using the <literal>replication-"
+"config</literal> element in the <literal>jboss-web.xml</literal> file. Here "
+"is an example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:213
+#, no-c-format
+msgid ""
+"&lt;jboss-web&gt;\n"
+"    &lt;replication-config&gt;\n"
+"        &lt;replication-trigger&gt;SET_AND_NON_PRIMITIVE_GET&lt;/replication-"
+"trigger&gt;\n"
+"        &lt;replication-granularity&gt;SESSION&lt;/replication-"
+"granularity&gt;\n"
+"        &lt;replication-field-batch-mode&gt;true&lt;/replication-field-batch-"
+"mode&gt;\n"
+"    &lt;/replication-config&gt;\n"
+"&lt;/jboss-web&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:214
+#, no-c-format
+msgid ""
+"The <literal>replication-trigger</literal> element determines what triggers "
+"a session replication (i.e. when is a session is considered <literal>dirty</"
+"literal> and in need of replication). It has 4 options:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:218
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">SET</emphasis>: With this policy, the session is "
+"considered dirty only when an attribute is set in the session (i.e., "
+"HttpSession.setAttribute() is invoked.) If your application always writes "
+"changed values back into the session, this option will be most optimal in "
+"terms of performance. The downside of SET is that if an object is retrieved "
+"from the session and modified without being written back into the session, "
+"the session manager will not know the attribute is dirty and the change to "
+"that object may not be replicated."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:221
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">SET_AND_GET</emphasis>: With this policy, any "
+"attribute that is get or set will be marked as dirty. If an object is "
+"retrieved from the session and modified without being written back into the "
+"session, the change to that object will be replicated. The downside of "
+"SET_AND_GET is that it can have significant performance implications, since "
+"even reading immutable objects from the session (e.g., strings, numbers) "
+"will mark the read attributes as needing to be replicated."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:224
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">SET_AND_NON_PRIMITIVE_GET</emphasis>: This policy is "
+"similar to the SET_AND_GET policy except that get operationsthat return "
+"attribute values with primitive types do not mark the attribute as dirty. "
+"Primitive system types (i.e., String, Integer, Long, etc.) are immutable, so "
+"there is no reason to mark an attribute with such a type as dirty just "
+"because it has been read. If a get operation returns a value of a non-"
+"primitive type, the session manager has no simple way to know whether the "
+"object is mutable, so it assumes it is an marks the attribute as dirty. This "
+"setting avoids the downside of SET while reducing the performance impact of "
+"SET_AND_GET. It is the default setting."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:227
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ACCESS</emphasis>: This option causes the session to "
+"be marked as dirty whenever it is accessed. Since a the session is accessed "
+"during each HTTP request, it will be replicated with each request. The "
+"purpose of ACCESS is to ensure session last-access timestamps are kept in "
+"sync around the cluster.. Since with the other replication-trigger options "
+"the time stamp may not be updated in other clustering nodes because of no "
+"replication, the session in other nodes may expire before the active node if "
+"the HTTP request does not retrieve or modify any session attributes. When "
+"this option is set, the session timestamps will be synchronized throughout "
+"the cluster nodes. Note that use of this option can have a significant "
+"performance impact, so use it with caution. With the other replication-"
+"trigger options, if a session has gone 80% of its expiration interval "
+"without being replicated, as a safeguard its timestamp will be replicated no "
+"matter what. So, ACCESS is only useful in special circumstances where the "
+"above safeguard is considered inadequate."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:230
+#, no-c-format
+msgid ""
+"The <literal>replication-granularity</literal> element controls the size of "
+"the replication units. The supported values are:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:235
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ATTRIBUTE</emphasis>: Replication is only for the "
+"dirty attributes in the session plus some session data, like the last-"
+"accessed timestamp. For sessions that carry large amounts of data, this "
+"option can increase replication performance. However, attributes will be "
+"separately serialized, so if there are any shared references between objects "
+"stored in the attributes, those shared references may be broken on remote "
+"nodes. For example, say a Person object stored under key “husband” has a "
+"reference to an Address, while another Person object stored under key “wife” "
+"has a reference to that same Address object. When the “husband” and “wife” "
+"attributes are separately deserialized on the remote nodes, each Person "
+"object will now have a reference to its own Address object; the Address "
+"object will no longer be shared."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:238
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">SESSION</emphasis>: The entire session object is "
+"replicated if any attribute is dirty. The entire session is serialized in "
+"one unit, so shared object references are maintained on remote nodes. This "
+"is the default setting."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:243
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">FIELD</emphasis>: Replication is only for individual "
+"changed data fields inside session attribute objects. Shared object "
+"references will be preserved across the cluster. Potentially most "
+"performant, but requires changes to your application (this will be discussed "
+"later)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:246
+#, no-c-format
+msgid ""
+"The <literal>replication-field-batch-mode</literal> element indicates "
+"whether you want all replication messages associated with a request to be "
+"batched into one message. Only applicable if replication-granularity is "
+"FIELD. Default is <literal>true</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:247
+#, no-c-format
+msgid ""
+"If your sessions are generally small, SESSION is the better policy. If your "
+"session is larger and some parts are infrequently accessed, ATTRIBUTE "
+"replication will be more effective. If your application has very big data "
+"objects in session attributes and only fields in those objects are "
+"frequently modified, the FIELD policy would be the best. In the next "
+"section, we will discuss exactly how the FIELD level replication works."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:259
+#, no-c-format
+msgid "Using FIELD level replication"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:260
+#, no-c-format
+msgid ""
+"FIELD-level replication only replicates modified data fields inside objects "
+"stored in the session. Its use could potentially drastically reduce the data "
+"traffic between clustered nodes, and hence improve the performance of the "
+"whole cluster. To use FIELD-level replication, you have to first prepare (i."
+"e., bytecode enhance) your Java class to allow the session cache to detect "
+"when fields in cached objects have been changed and need to be replicated."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:262
+#, no-c-format
+msgid ""
+"The first step in doing this is to identify the classes that need to be "
+"prepared. This is done via annotations. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:266
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@org.jboss.cache.aop.AopMarker\n"
+"public class Address \n"
+"{\n"
+"...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:268
+#, no-c-format
+msgid ""
+"If you annotate a class with InstanceAopMarker instead, then all of its "
+"subclasses will be automatically annotated as well. Similarly, you can "
+"annotate an interface with InstanceofAopMarker and all of its implementing "
+"classes will be annotated. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:271
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@org.jboss.cache.aop.InstanceOfAopMarker\n"
+"public class Person \n"
+"{\n"
+"...\n"
+"}\n"
+"then when you have a sub-class like\n"
+"public class Student extends Person\n"
+"{\n"
+"...\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:273
+#, no-c-format
+msgid ""
+"There will be no need to annotate <literal>Student</literal>. It will be "
+"annotated automatically because it is a sub-class of <literal>Person</"
+"literal>. Jboss AS 4.2 requires JDK 5 at runtime, but some users may still "
+"need to build their projects using JDK 1.4. In this case, annotating classes "
+"can be done via JDK 1.4 style annotations embedded in JavaDocs. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:278
+#, no-c-format
+msgid ""
+"/*\n"
+" * My usual comments here first.\n"
+" * @@org.jboss.web.tomcat.tc5.session.AopMarker\n"
+" */\n"
+"public class Address \n"
+"{\n"
+"...\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:281
+#, no-c-format
+msgid "The anologue for <literal>@InstanceAopMarker</literal> is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:283
+#, no-c-format
+msgid ""
+"/*\n"
+" *\n"
+" * @@org.jboss.web.tomcat.tc5.session.InstanceOfAopMarker\n"
+" */\n"
+"public class Person \n"
+"{\n"
+"...\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:287
+#, no-c-format
+msgid ""
+"Once you have annotated your classes, you will need to perform a pre-"
+"processing step to bytecode enhance your classes for use by TreeCacheAop. "
+"You need to use the JBoss AOP pre-compiler <literal>annotationc</literal> "
+"and post-compiler <literal>aopc</literal> to process the above source code "
+"before and after they are compiled by the Java compiler. The annotationc "
+"step is only need if the JDK 1.4 style annotations are used; if JDK 5 "
+"annotations are used it is not necessary. Here is an example on how to "
+"invoke those commands from command line."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:291
+#, no-c-format
+msgid ""
+"$ annotationc [classpath] [source files or directories]\n"
+"$ javac -cp [classpath] [source files or directories]\n"
+"$ aopc [classpath] [class files or directories]"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:293
+#, no-c-format
+msgid ""
+"Please see the JBoss AOP documentation for the usage of the pre- and post-"
+"compiler. The JBoss AOP project also provides easy to use ANT tasks to help "
+"integrate those steps into your application build process."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:297
+#, no-c-format
+msgid ""
+"You can see a complete example on how to build, deploy, and validate a FIELD-"
+"level replicated web application from this page: <ulink url=\"http://wiki."
+"jboss.org/wiki/Wiki.jsp?page=Http_session_field_level_example\"></ulink>. "
+"The example bundles the pre- and post-compile tools so you do not need to "
+"download JBoss AOP separately."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:301
+#, no-c-format
+msgid ""
+"When you deploy the web application into JBoss AS, make sure that the "
+"following configurations are correct:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:305
+#, no-c-format
+msgid ""
+"In the server's <literal>deploy/jboss-web-cluster.sar/META-INF/jboss-service."
+"xml</literal> file, the <literal>inactiveOnStartup</literal> and "
+"<literal>useMarshalling</literal> attributes must both be <literal>true</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:310
+#, no-c-format
+msgid ""
+"In the application's <literal>jboss-web.xml</literal> file, the "
+"<literal>replication-granularity</literal> attribute must be <literal>FIELD</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:315
+#, no-c-format
+msgid ""
+"Finally, let's see an example on how to use FIELD-level replication on those "
+"data classes. Notice that there is no need to call <literal>session."
+"setAttribute()</literal> after you make changes to the data object, and all "
+"changes to the fields are automatically replicated across the cluster."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:318
+#, no-c-format
+msgid ""
+"// Do this only once. So this can be in init(), e.g.\n"
+"if(firstTime)\n"
+"{\n"
+"  Person joe = new Person(\"Joe\", 40);\n"
+"  Person mary = new Person(\"Mary\", 30);\n"
+"  Address addr = new Address();\n"
+"  addr.setZip(94086);\n"
+"\n"
+"  joe.setAddress(addr);\n"
+"  mary.setAddress(addr); // joe and mary share the same address!\n"
+"\n"
+"  session.setAttribute(\"joe\", joe); // that's it.\n"
+"  session.setAttribute(\"mary\", mary); // that's it.\n"
+"}\n"
+"\n"
+"Person mary = (Person)session.getAttribute(\"mary\");\n"
+"mary.getAddress().setZip(95123); // this will update and replicate the zip "
+"code."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:319
+#, no-c-format
+msgid ""
+"Besides plain objects, you can also use regular Java collections of those "
+"objects as session attributes. JBoss cache automatically figures out how to "
+"handle those collections and replicate field changes in their member objects."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:324
+#, no-c-format
+msgid "Monitoring session replication"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:325
+#, no-c-format
+msgid ""
+"If you have deployed and accessed your application, go to the <literal>jboss."
+"cache:service=TomcatClusteringCache</literal> MBean and invoke the "
+"<literal>printDetails</literal> operation. You should see output resembling "
+"the following."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:328
+#, no-c-format
+msgid ""
+"/JSESSION\n"
+"\n"
+"/localhost\n"
+"\n"
+"/quote\n"
+"\n"
+"/FB04767C454BAB3B2E462A27CB571330\n"
+"VERSION: 6\n"
+"FB04767C454BAB3B2E462A27CB571330: org.jboss.invocation."
+"MarshalledValue at 1f13a81c\n"
+"\n"
+"/AxCI8Ovt5VQTfNyYy9Bomw**\n"
+"VERSION: 4\n"
+"AxCI8Ovt5VQTfNyYy9Bomw**: org.jboss.invocation.MarshalledValue at e076e4c8"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:330
+#, no-c-format
+msgid ""
+"This output shows two separate web sessions, in one application named "
+"<emphasis>quote</emphasis>, that are being shared via JBossCache. This "
+"example uses a <literal>replication-granularity</literal> of "
+"<literal>session</literal>. Had <literal>ATTRIBUTE</literal> level "
+"replication been used, there would be additional entries showing each "
+"replicated session attribute. In either case, the replicated values are "
+"stored in an opaque <literal>MarshelledValue</literal> container. There "
+"aren't currently any tools that allow you to inspect the contents of the "
+"replicated session values. If you do not see any output, either the "
+"application was not correctly marked as <literal>distributable</literal> or "
+"you haven't accessed a part of application that places values in the HTTP "
+"session. The <literal>org.jboss.cache</literal> and <literal>org.jboss.web</"
+"literal> logging categories provide additional insight into session "
+"replication useful for debugging purposes."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:338
+#, no-c-format
+msgid "Using Clustered Single Sign On"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:340
+#, no-c-format
+msgid ""
+"JBoss supports clustered single sign-on, allowing a user to authenticate to "
+"one web application on a JBoss server and to be recognized on all web "
+"applications, on that same machine or on another node in the cluster, that "
+"are deployed on the same virtual host. Authentication replication is handled "
+"by the same JBoss Cache Mbean that is used by the HTTP session replication "
+"service. Although session replication does not need to be explicitly enabled "
+"for the applications in question, the <literal>jboss-web-cluster.sar</"
+"literal> file needs to be deployed."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:342
+#, no-c-format
+msgid ""
+"To enable single sign-on, you must add the <literal>ClusteredSingleSignOn</"
+"literal> valve to the appropriate <literal>Host</literal> elements of the "
+"tomcat <literal>server.xml</literal> file. The valve configuration is shown "
+"here:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:345
+#, no-c-format
+msgid ""
+"&lt;Valve className=\"org.jboss.web.tomcat.tc5.sso.ClusteredSingleSignOn\" /"
+"&gt;"
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:348
+#, no-c-format
+msgid "Clustered Singleton Services"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:349
+#, no-c-format
+msgid ""
+"A clustered singleton service (also known as an HA singleton) is a service "
+"that is deployed on multiple nodes in a cluster, but is providing its "
+"service on only one of the nodes. The node running the singleton service is "
+"typically called the master node. When the master fails or is shut down, "
+"another master is selected from the remaining nodes and the service is "
+"restarted on the new master. Thus, other than a brief interval when one "
+"master has stopped and another has yet to take over, the service is always "
+"being provided by one but only one node."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:352
+#, no-c-format
+msgid "Topology after the Master Node fails"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:360
+#, no-c-format
+msgid ""
+"The JBoss Application Server (AS) provides support for a number of "
+"strategies for helping you deploy clustered singleton services. In this "
+"section we will explore the different strategies. All of the strategies are "
+"built on top of the HAPartition service described in the introduction. They "
+"rely on the <literal>HAPartition</literal> to provide notifications when "
+"different nodes in the cluster start and stop; based on those notifications "
+"each node in the cluster can independently (but consistently) determine if "
+"it is now the master node and needs to begin providing a service."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:365
+#, no-c-format
+msgid "HASingletonDeployer service"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:366
+#, no-c-format
+msgid ""
+"The simplest and most commonly used strategy for deploying an HA singleton "
+"is to take an ordinary deployment (war, ear, jar, whatever you would "
+"normally put in deploy) and deploy it in the <literal>$JBOSS_HOME/server/all/"
+"deploy-hasingleton</literal> directory instead of in <literal>deploy</"
+"literal>. The <literal>deploy-hasingleton</literal> directory does not lie "
+"under deploy or farm, so its contents are not automatically deployed when an "
+"AS instance starts. Instead, deploying the contents of this directory is the "
+"responsibility of a special service, the <literal>jboss.ha:"
+"service=HASingletonDeployer</literal> MBean (which itself is deployed via "
+"the deploy/deploy-hasingleton-service.xml file.) The HASingletonDeployer "
+"service is itself an HA Singleton, one whose provided service when it "
+"becomes master is to deploy the contents of deploy-hasingleton and whose "
+"service when it stops being the master (typically at server shutdown) is to "
+"undeploy the contents of <literal>deploy-hasingleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:369
+#, no-c-format
+msgid ""
+"So, by placing your deployments in <literal>deploy-hasingleton</literal> you "
+"know that they will be deployed only on the master node in the cluster. If "
+"the master node cleanly shuts down, they will be cleanly undeployed as part "
+"of shutdown. If the master node fails or is shut down, they will be deployed "
+"on whatever node takes over as master."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:372
+#, no-c-format
+msgid ""
+"Using deploy-hasingleton is very simple, but it does have two drawbacks:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:376
+#, no-c-format
+msgid ""
+"There is no hot-deployment feature for services in <literal>deploy-"
+"hasingleton</literal>. Redeploying a service that has been deployed to "
+"<literal>deploy-hasingleton</literal> requires a server restart."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:381
+#, no-c-format
+msgid ""
+"If the master node fails and another node takes over as master, your "
+"singleton service needs to go through the entire deployment process before "
+"it will be providing services. Depending on how complex the deployment of "
+"your service is and what sorts of startup activities it engages in, this "
+"could take a while, during which time the service is not being provided."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:393
+#, no-c-format
+msgid "Mbean deployments using HASingletonController"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:394
+#, no-c-format
+msgid ""
+"If your service is an Mbean (i.e., not a J2EE deployment like an ear or war "
+"or jar), you can deploy it along with a service called an "
+"HASingletonController in order to turn it into an HA singleton. It is the "
+"job of the HASingletonController to work with the HAPartition service to "
+"monitor the cluster and determine if it is now the master node for its "
+"service. If it determines it has become the master node, it invokes a method "
+"on your service telling it to begin providing service. If it determines it "
+"is no longer the master node, it invokes a method on your service telling it "
+"to stop providing service. Let's walk through an illustration."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:397
+#, no-c-format
+msgid ""
+"First, we have an MBean service that we want to make an HA singleton. The "
+"only thing special about it is it needs to expose in its MBean interface a "
+"method that can be called when it should begin providing service, and "
+"another that can be called when it should stop providing service:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:400
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+"public class HASingletonExample\n"
+"implements HASingletonExampleMBean { \n"
+" \n"
+"private boolean isMasterNode = false; \n"
+"  \n"
+"public void startSingleton() { \n"
+"isMasterNode = true; \n"
+"} \n"
+". \n"
+"public boolean isMasterNode() { \n"
+"return isMasterNode; \n"
+" } \n"
+"  \n"
+" public void stopSingleton() { \n"
+" isMasterNode = false; \n"
+" } \n"
+"}  ]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:402
+#, no-c-format
+msgid ""
+"We used “startSingleton” and “stopSingleton” in the above example, but you "
+"could name the methods anything."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:405
+#, no-c-format
+msgid ""
+"Next, we deploy our service, along with an HASingletonController to control "
+"it, most likely packaged in a .sar file, with the following <literal>META-"
+"INF/jboss-service.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:408
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <server> \n"
+"         <!-- This MBean is an example of a clustered singleton --> \n"
+"         <mbean code=\"org.jboss.ha.examples.HASingletonExample\" \n"
+"                name=“jboss:service=HASingletonExample\"/> \n"
+"         \n"
+"         <!-- This HASingletonController manages the cluster Singleton --> \n"
+"         <mbean code=\"org.jboss.ha.singleton.HASingletonController\" \n"
+"                name=\"jboss:service=ExampleHASingletonController\"> \n"
+"                 \n"
+"                 <!-- Inject a ref to the HAPartition -->\n"
+"                 <depends optional-attribute-name=\"ClusterPartition\" proxy-"
+"type=\"attribute\">\n"
+"                         jboss:service=${jboss.partition.name:"
+"DefaultPartition}\n"
+"                 </depends>  \n"
+"                 <!-- Inject a ref to the service being controlled -->\n"
+"                 <depends optional-attribute-name=\"TargetName\">\n"
+"                         jboss:service=HASingletonExample\n"
+"                 </depends>\n"
+"                 <!-- Methods to invoke when become master / stop being "
+"master -->\n"
+"                 <attribute name=\"TargetStartMethod\">startSingleton</"
+"attribute> \n"
+"                 <attribute name=\"TargetStopMethod\">stopSingleton</"
+"attribute> \n"
+"         </mbean> \n"
+"</server> ]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:410
+#, no-c-format
+msgid "Voila! A clustered singleton service."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:412
+#, no-c-format
+msgid ""
+"The obvious downside to this approach is it only works for MBeans. Upsides "
+"are that the above example can be placed in <literal>deploy</literal> or "
+"<literal>farm</literal> and thus can be hot deployed and farmed deployed. "
+"Also, if our example service had complex, time-consuming startup "
+"requirements, those could potentially be implemented in create() or start() "
+"methods. JBoss will invoke create() and start() as soon as the service is "
+"deployed; it doesn't wait until the node becomes the master node. So, the "
+"service could be primed and ready to go, just waiting for the controller to "
+"implement startSingleton() at which point it can immediately provide service."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:415
+#, no-c-format
+msgid ""
+"The jboss.ha:service=HASingletonDeployer service discussed above is itself "
+"an interesting example of using an HASingletonController. Here is its "
+"deployment descriptor (extracted from the <literal>deploy/deploy-hasingleton-"
+"service.xml</literal> file):"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:418
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+"<mbean code=\"org.jboss.ha.singleton.HASingletonController\" \n"
+"name=\"jboss.ha:service=HASingletonDeployer\"> \n"
+" <depends optional-attribute-name=\"ClusterPartition\" proxy-type=\"attribute"
+"\">\n"
+"  jboss:service=${jboss.partition.name:DefaultPartition}\n"
+" </depends>  \n"
+" <depends optional-attributeame=\"TargetName\">\n"
+"  jboss.system:service=MainDeployer\n"
+" </depends> \n"
+" <attribute name=\"TargetStartMethod\">deploy</attribute> \n"
+" <attribute name=\"TargetStartMethodArgument\">\n"
+"  ${jboss.server.home.url}/deploy-hasingleton\n"
+" </attribute> \n"
+" <attribute name=\"TargetStopMethod\">undeploy</attribute> \n"
+" <attribute name=\"TargetStopMethodArgument\">\n"
+"  ${jboss.server.home.url}/deploy-hasingleton\n"
+" </attribute> \n"
+"</mbean> ]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:420
+#, no-c-format
+msgid ""
+"A few interesting things here. First the service being controlled is the "
+"<literal>MainDeployer</literal> service, which is the core deployment "
+"service in JBoss. That is, it's a service that wasn't written with an intent "
+"that it be controlled by an <literal>HASingletonController</literal>. But it "
+"still works! Second, the target start and stop methods are “deploy” and "
+"“undeploy”. No requirement that they have particular names, or even that "
+"they logically have “start” and “stop” functionality. Here the functionality "
+"of the invoked methods is more like “do” and “undo”. Finally, note the "
+"“<literal>TargetStart(Stop)MethodArgument</literal>” attributes. Your "
+"singleton service's start/stop methods can take an argument, in this case "
+"the location of the directory the <literal>MainDeployer</literal> should "
+"deploy/undeploy."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:428
+#, no-c-format
+msgid "HASingleton deployments using a Barrier"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:429
+#, no-c-format
+msgid ""
+"Services deployed normally inside deploy or farm that want to be started/"
+"stopped whenever the content of deploy-hasingleton gets deployed/undeployed, "
+"(i.e., whenever the current node becomes the master), need only specify a "
+"dependency on the Barrier mbean:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_HTTP.xml:431
+#, no-c-format
+msgid ""
+"<![CDATA[<depends>jboss.ha:service=HASingletonDeployer,type=Barrier</"
+"depends>]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:433
+#, no-c-format
+msgid ""
+"The way it works is that a BarrierController is deployed along with the "
+"jboss.ha:service=HASingletonDeployer MBean and listens for JMX notifications "
+"from it. A BarrierController is a relatively simple Mbean that can subscribe "
+"to receive any JMX notification in the system. It uses the received "
+"notifications to control the lifecycle of a dynamically created Mbean called "
+"the Barrier.The Barrier is instantiated, registered and brought to the "
+"CREATE state when the BarrierController is deployed. After that, the "
+"BarrierController starts and stops the Barrier when matching JMX "
+"notifications are received. Thus, other services need only depend on the "
+"Barrier MBean using the usual &lt;depends&gt; tag, and they will be started "
+"and stopped in tandem with the Barrier. When the BarrierController is "
+"undeployed the Barrier is destroyed too."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:437
+#, no-c-format
+msgid ""
+"This provides an alternative to the deploy-hasingleton approach in that we "
+"can use farming to distribute the service, while content in deploy-"
+"hasingleton must be copied manually on all nodes."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:440
+#, no-c-format
+msgid ""
+"On the other hand, the barrier-dependent service will be instantiated/"
+"created (i.e., any create() method invoked) on all nodes, but only started "
+"on the master node. This is different with the deploy-hasingleton approach "
+"that will only deploy (instantiate/create/start) the contents of the deploy-"
+"hasingleton directory on one of the nodes."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:444
+#, no-c-format
+msgid ""
+"So services depending on the barrier will need to make sure they do minimal "
+"or no work inside their create() step, rather they should use start() to do "
+"the work."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:448
+#, no-c-format
+msgid ""
+"The Barrier controls the start/stop of dependent services, but not their "
+"destruction, which happens only when the <literal>BarrierController</"
+"literal> is itself destroyed/undeployed. Thus using the <literal>Barrier</"
+"literal> to control services that need to be \"destroyed\" as part of their "
+"normal “undeploy” operation (like, for example, an <literal>EJBContainer</"
+"literal>) will not have the desired effect."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_HTTP.xml:457
+#, no-c-format
+msgid "Determining the master node"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:458
+#, no-c-format
+msgid ""
+"The various clustered singleton management strategies all depend on the fact "
+"that each node in the cluster can independently react to changes in cluster "
+"membership and correctly decide whether it is now the “master node”. How is "
+"this done?"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:461
+#, no-c-format
+msgid ""
+"Prior to JBoss AS 4.2.0, the methodology for this was fixed and simple. For "
+"each member of the cluster, the HAPartition mbean maintains an attribute "
+"called the CurrentView, which is basically an ordered list of the current "
+"members of the cluster. As nodes join and leave the cluster, JGroups ensures "
+"that each surviving member of the cluster gets an updated view. You can see "
+"the current view by going into the JMX console, and looking at the "
+"CurrentView attribute in the <literal>jboss:service=DefaultPartition</"
+"literal> mbean. Every member of the cluster will have the same view, with "
+"the members in the same order."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:464
+#, no-c-format
+msgid ""
+"Let's say, for example, that we have a 4 node cluster, nodes A through D, "
+"and the current view can be expressed as {A, B, C, D}. Generally speaking, "
+"the order of nodes in the view will reflect the order in which they joined "
+"the cluster (although this is not always the case, and should not be assumed "
+"to be the case.)"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:467
+#, no-c-format
+msgid ""
+"To further our example, let's say there is a singleton service (i.e., an "
+"<literal>HASingletonController</literal>) named Foo that's deployed around "
+"the cluster, except, for whatever reason, on B. The <literal>HAPartition</"
+"literal> service maintains across the cluster a registry of what services "
+"are deployed where, in view order. So, on every node in the cluster, the "
+"<literal>HAPartition</literal> service knows that the view with respect to "
+"the Foo service is {A, C, D} (no B)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:471
+#, no-c-format
+msgid ""
+"Whenever there is a change in the cluster topology of the Foo service, the "
+"<literal>HAPartition</literal> service invokes a callback on Foo notifying "
+"it of the new topology. So, for example, when Foo started on D, the Foo "
+"service running on A, C and D all got callbacks telling them the new view "
+"for Foo was {A, C, D}. That callback gives each node enough information to "
+"independently decide if it is now the master. The Foo service on each node "
+"does this by checking if they are the first member of the view – if they "
+"are, they are the master; if not, they're not. Simple as that."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_HTTP.xml:475
+#, no-c-format
+msgid ""
+"If A were to fail or shutdown, Foo on C and D would get a callback with a "
+"new view for Foo of {C, D}. C would then become the master. If A restarted, "
+"A, C and D would get a callback with a new view for Foo of {C, D, A}. C "
+"would remain the master – there's nothing magic about A that would cause it "
+"to become the master again just because it was before."
+msgstr ""

Added: projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_Intro.po
===================================================================
--- projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_Intro.po	                        (rev 0)
+++ projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_Intro.po	2008-01-21 05:09:32 UTC (rev 69162)
@@ -0,0 +1,762 @@
+# Language /tmp/mike/JBEAP420/JBAS translations for JBEAP package.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBEAP 420\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-12-10 22:33+0000\n"
+"PO-Revision-Date: 2001-02-09 01:25+0100\n"
+"Last-Translator: Automatically generated\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
+#: Clustering_Guide_Intro.xml:5
+#, no-c-format
+msgid "Clustering"
+msgstr ""
+
+#. Tag: subtitle
+#: Clustering_Guide_Intro.xml:6
+#, no-c-format
+msgid "High Availability Enterprise Services via JBoss Clusters"
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:10
+#, no-c-format
+msgid ""
+"Clustering allows us to run an application on several parallel servers (a.k."
+"a cluster nodes) while providing a single view to application clients. Load "
+"is distributed across different servers, and even if one or more of the "
+"servers fails, the application is still accessible via the surviving cluster "
+"nodes. Clustering is crucial for scalable enterprise applications, as you "
+"can improve performance by simply adding more nodes to the cluster. "
+"Clustering is crucial for highly available enterprise applications, as it is "
+"the clustering infrastructure that supports the redundancy needed for high "
+"availability."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:14
+#, no-c-format
+msgid ""
+"The JBoss Application Server (AS) comes with clustering support out of the "
+"box. The simplest way to start a JBoss server cluster is to start several "
+"JBoss instances on the same local network, using the <literal>run -c all</"
+"literal> command for each instance. Those server instances, all started in "
+"the <literal>all</literal> configuration, detect each other and "
+"automatically form a cluster."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:17
+#, no-c-format
+msgid ""
+"In the first section of this chapter, we discuss basic concepts behind "
+"JBoss's clustering services. It is important that you understand these "
+"concepts before reading the rest of the chapter. Clustering configurations "
+"for specific types of applications are covered after this section."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:23
+#, no-c-format
+msgid "Cluster Definition"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:24
+#, no-c-format
+msgid ""
+"A cluster is a set of nodes that communicate with each other and work toward "
+"a common goal. In a JBoss Application Server cluster (also known as a "
+"“partition”), a node is an JBoss Application Server instance. Communication "
+"between the nodes is handled by the JGroups group communication library, "
+"with a JGroups Channel providing the core functionality of tracking who is "
+"in the cluster and reliably exchanging messages between the cluster members. "
+"JGroups channels with the same configuration and name have the ability to "
+"dynamically discover each other and form a group. This is why simply "
+"executing “run -c all” on two AS instances on the same network is enough for "
+"them to form a cluster – each AS starts a Channel (actually, several) with "
+"the same default configuration, so they dynamically discover each other and "
+"form a cluster. Nodes can be dynamically added to or removed from clusters "
+"at any time, simply by starting or stopping a Channel with a configuration "
+"and name that matches the other cluster members. In summary, a JBoss cluster "
+"is a set of AS server instances each of which is running an identically "
+"configured and named JGroups Channel."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:29
+#, no-c-format
+msgid ""
+"On the same AS instance, different services can create their own Channel. In "
+"a default 4.2.x AS, four different services create channels – the web "
+"session replication service, the EJB3 SFSB replication service, the EJB3 "
+"entity caching service, and a core general purpose clustering service known "
+"as HAPartition. In order to differentiate these channels, each must have a "
+"unique name, and its configuration must match its peers yet differ from the "
+"other channels."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:32
+#, no-c-format
+msgid ""
+"So, if you go to two AS 4.2.x instances and execute <literal>run -c all</"
+"literal>, the channels will discover each other and you'll have a conceptual "
+"<literal>cluster</literal>. It's easy to think of this as a two node "
+"cluster, but it's important to understand that you really have 4 channels, "
+"and hence 4 two node clusters."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:36
+#, no-c-format
+msgid ""
+"On the same network, even for the same service, we may have different "
+"clusters. <xref linkend=\"clustering-Partition.fig\"/> shows an example "
+"network of JBoss server instances divided into three clusters, with the "
+"third cluster only having one node. This sort of topology can be set up "
+"simply by configuring the AS instances such that within a set of nodes meant "
+"to form a cluster the Channel configurations and names match while they "
+"differ from any other channels on the same network."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:38
+#, no-c-format
+msgid "Clusters and server nodes"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:46
+#, no-c-format
+msgid ""
+"The section on “JGroups Configuration” and on “Isolating JGroups Channels” "
+"covers in detail how to configure Channels such that desired peers find each "
+"other and unwanted peers do not. As mentioned above, by default JBoss AS "
+"uses four separate JGroups Channels. These can be divided into two broad "
+"categories: the Channel used by the general purpose HAPartition service, and "
+"three Channels created by JBoss Cache for special purpose caching and "
+"cluster wide state replication."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:50
+#, no-c-format
+msgid "HAPartition"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:52
+#, no-c-format
+msgid ""
+"HAPartition is a general purpose service used for a variety of tasks in AS "
+"clustering. At its core, it is an abstraction built on top of a JGroups "
+"Channel that provides support for making/receiving RPC invocations on/from "
+"one or more cluster members. HAPartition also supports a distributed "
+"registry of which clustering services are running on which cluster members. "
+"It provides notifications to interested listeners when the cluster "
+"membership changes or the clustered service registry changes. HAPartition "
+"forms the core of many of the clustering services we'll be discussing in the "
+"rest of this guide, including smart client-side clustered proxies, EJB 2 "
+"SFSB replication and entity cache management, farming, HA-JNDI and HA "
+"singletons."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:57
+#, no-c-format
+msgid ""
+"The following example shows the <literal>HAPartition</literal> MBean "
+"definition packaged with the standard JBoss AS distribution. So, if you "
+"simply start JBoss servers with their default clustering settings on a local "
+"network, you would get a default cluster named <literal>DefaultPartition</"
+"literal> that includes all server instances as its nodes."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Intro.xml:61
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"org.jboss.ha.framework.server.ClusterPartition\"\n"
+"    name=\"jboss:service=DefaultPartition\"&gt;\n"
+"         \n"
+"    &lt;! -- Name of the partition being built --&gt;\n"
+"    &lt;attribute name=\"PartitionName\"&gt;\n"
+"        ${jboss.partition.name:DefaultPartition}\n"
+"    &lt;/attribute&gt;\n"
+"\n"
+"    &lt;! -- The address used to determine the node name --&gt;\n"
+"    &lt;attribute name=\"NodeAddress\"&gt;${jboss.bind.address}&lt;/"
+"attribute&gt;\n"
+"\n"
+"    &lt;! -- Determine if deadlock detection is enabled --&gt;\n"
+"    &lt;attribute name=\"DeadlockDetection\"&gt;False&lt;/attribute&gt;\n"
+"     \n"
+"    &lt;! -- Max time (in ms) to wait for state transfer to complete. \n"
+"        Increase for large states --&gt;\n"
+"    &lt;attribute name=\"StateTransferTimeout\"&gt;30000&lt;/attribute&gt;\n"
+"\n"
+"    &lt;! -- The JGroups protocol configuration --&gt;\n"
+"    &lt;attribute name=\"PartitionConfig\"&gt;\n"
+"        ... ...\n"
+"    &lt;/attribute&gt;\n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:62
+#, no-c-format
+msgid ""
+"Here, we omitted the detailed JGroups protocol configuration for this "
+"channel. JGroups handles the underlying peer-to-peer communication between "
+"nodes, and its configuration is discussed in <xref linkend=\"jbosscache-"
+"jgroups\"/>. The following list shows the available configuration attributes "
+"in the <literal>HAPartition</literal> MBean."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:67
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">PartitionName</emphasis> is an optional attribute to "
+"specify the name of the cluster. Its default value is "
+"<literal>DefaultPartition</literal>. Use the <literal>-g </literal> (a.k.a. "
+"--partition) command line switch to set this value at JBoss startup."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:71
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">NodeAddress</emphasis> is an optional attribute used "
+"to help generate a unique name for this node."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:74
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">DeadlockDetection</emphasis> is an optional boolean "
+"attribute that tells JGroups to run message deadlock detection algorithms "
+"with every request. Its default value is <literal>false</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:79
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">StateTransferTimeout</emphasis> is an optional "
+"attribute to specify the timeout for state replication across the cluster "
+"(in milliseconds). State replication refers to the process of obtaining "
+"initial application state from other already-running cluster members at "
+"service startup. Its default value is <literal>30000</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:82
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">PartitionConfig</emphasis> is an element to specify "
+"JGroup configuration options for this cluster (see <xref linkend="
+"\"jbosscache-jgroups\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:86
+#, no-c-format
+msgid ""
+"In order for nodes to form a cluster, they must have the exact same "
+"<literal>PartitionName</literal> and the <literal>ParitionConfig</literal> "
+"elements. Changes in either element on some but not all nodes would cause "
+"the cluster to split."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:89
+#, no-c-format
+msgid ""
+"You can view the current cluster information by pointing your browser to the "
+"JMX console of any JBoss instance in the cluster (i.e., <literal>http://"
+"hostname:8080/jmx-console/</literal>) and then clicking on the "
+"<literal>jboss:service=DefaultPartition</literal> MBean (change the MBean "
+"name to reflect your partitionr name if you use the -g startup switch). A "
+"list of IP addresses for the current cluster members is shown in the "
+"CurrentView field."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:93
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:94
+#, no-c-format
+msgid ""
+"While it is technically possible to put a JBoss server instance into "
+"multiple HAPartitions at the same time, this practice is generally not "
+"recommended, as it increases management complexity."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:100
+#, no-c-format
+msgid "JBoss Cache channels"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:101
+#, no-c-format
+msgid ""
+"JBoss Cache is a fully featured distributed cache framework that can be used "
+"in any application server environment or standalone. JBoss AS integrates "
+"JBoss Cache to provide cache services for HTTP sessions, EJB 3.0 session "
+"beans, and EJB 3.0 entity beans. Each of these cache services is defined in "
+"a separate Mbean, and each cache creates its own JGroups Channel. We will "
+"cover those MBeans when we discuss specific services in the next several "
+"sections."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:106
+#, no-c-format
+msgid "Service Architectures"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:107
+#, no-c-format
+msgid ""
+"The clustering topography defined by the <literal>HAPartition</literal> "
+"MBean on each node is of great importance to system administrators. But for "
+"most application developers, you are probably more concerned about the "
+"cluster architecture from a client application's point of view. Two basic "
+"clustering architectures are used with JBoss AS: client-side interceptors (a."
+"k.a smart proxies or stubs) and external load balancers. Which architecture "
+"your application will use will depend on what type of client you have."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:113 Clustering_Guide_Intro.xml:159
+#, no-c-format
+msgid "Client-side interceptor architecture"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:114
+#, no-c-format
+msgid ""
+"Most remote services provided by the JBoss application server, including "
+"JNDI, EJB, JMS, RMI and JBoss Remoting, require the client to obtain (e.g., "
+"to look up and download) a stub (or proxy) object. The stub object is "
+"generated by the server and it implements the business interface of the "
+"service. The client then makes local method calls against the stub object. "
+"The stub automatically routes the call across the network and where it is "
+"invoked against service objects managed in the server. In a clustering "
+"environment, the server-generated stub object includes an interceptor that "
+"understands how to route calls to multiple nodes in the cluster. The stub "
+"object figures out how to find the appropriate server node, marshal call "
+"parameters, un-marshall call results, and return the result to the caller "
+"client."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:119
+#, no-c-format
+msgid ""
+"The stub interceptors maintain up-to-date knowledge about the cluster. For "
+"instance, they know the IP addresses of all available server nodes, the "
+"algorithm to distribute load across nodes (see next section), and how to "
+"failover the request if the target node not available. As part of handling "
+"each service request, if the cluster topology has changed the server node "
+"updates the stub interceptor with the latest changes in the cluster. For "
+"instance, if a node drops out of the cluster, each of client stub "
+"interceptor is updated with the new configuration the next time it connects "
+"to any active node in the cluster. All the manipulations done by the service "
+"stub are transparent to the client application. The client-side interceptor "
+"clustering architecture is illustrated in <xref linkend=\"clustering-"
+"InterceptorArch.fig\"/>."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:122
+#, no-c-format
+msgid "The client-side interceptor (proxy) architecture for clustering"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:130
+#, no-c-format
+msgid ""
+"describes how to enable the client proxy to handle the entire cluster "
+"restart."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:135
+#, no-c-format
+msgid "Load balancer"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:136
+#, no-c-format
+msgid ""
+"Other JBoss services, in particular the HTTP-based services, do not require "
+"the client to download anything. The client (e.g., a web browser) sends in "
+"requests and receives responses directly over the wire according to certain "
+"communication protocols (e.g., the HTTP protocol). In this case, an external "
+"load balancer is required to process all requests and dispatch them to "
+"server nodes in the cluster. The client only needs to know about how to "
+"contact the load balancer; it has no knowledge of the JBoss AS instances "
+"behind the load balancer. The load balancer is logically part of the "
+"cluster, but we refer to it as “external” because it is not running in the "
+"same process as either the client or any of the JBoss AS instances. It can "
+"be implemented either in software or hardware. There are many vendors of "
+"hardware load balancers; the mod_jk Apache module is an excellent example of "
+"a software load balancer. An external load balancer implements its own "
+"mechanism for understanding the cluster configuration and provides its own "
+"load balancing and failover policies. The external load balancer clustering "
+"architecture is illustrated in <xref linkend=\"clustering-BalancerArch.fig\"/"
+">."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:140
+#, no-c-format
+msgid "The external load balancer architecture for clustering"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:147
+#, no-c-format
+msgid ""
+"A potential problem with an external load balancer architecture is that the "
+"load balancer itself may be a single point of failure. It needs to be "
+"monitored closely to ensure high availability of the entire cluster's "
+"services."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:154
+#, no-c-format
+msgid "Load-Balancing Policies"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:155
+#, no-c-format
+msgid ""
+"Both the JBoss client-side interceptor (stub) and load balancer use load "
+"balancing policies to determine which server node to which node a new "
+"request should be sent. In this section, let's go over the load balancing "
+"policies available in JBoss AS."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:160
+#, no-c-format
+msgid ""
+"In JBoss 4.2.2, the following load balancing options are available when the "
+"client-side interceptor architecture is used. The client-side stub maintains "
+"a list of all nodes providing the target service; the job of the load "
+"balance policy is to pick a node from this list for each request."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:165
+#, no-c-format
+msgid ""
+"Round-Robin (<literal>org.jboss.ha.framework.interfaces.RoundRobin</"
+"literal>): each call is dispatched to a new node, proceeding sequentially "
+"through the list of nodes. The first target node is randomly selected from "
+"the list."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:171
+#, no-c-format
+msgid ""
+"Random-Robin (<literal>org.jboss.ha.framework.interfaces.RandomRobin</"
+"literal>): for each call the target node is randomly selected from the list."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:176
+#, no-c-format
+msgid ""
+"First Available (<literal>org.jboss.ha.framework.interfaces.FirstAvailable</"
+"literal>): one of the available target nodes is elected as the main target "
+"and is thereafter used for every call; this elected member is randomly "
+"chosen from the list of members in the cluster. When the list of target "
+"nodes changes (because a node starts or dies), the policy will choose a new "
+"target node unless the currently elected node is still available. Each "
+"client-side stub elects its own target node independently of the other "
+"stubs, so if a particular client downloads two stubs for the same target "
+"service (e.g., an EJB), each stub will independently pick its target. This "
+"is an example of a policy that provides “session affinity” or “sticky "
+"sessions”, since the target node does not change once established."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:183
+#, no-c-format
+msgid ""
+"First Available Identical All Proxies (<literal>org.jboss.ha.framework."
+"interfaces.FirstAvailableIdenticalAllProxies</literal>): has the same "
+"behaviour as the \"First Available\" policy but the elected target node is "
+"shared by all stubs in the same client-side VM that are associated with the "
+"same target service. So if a particular client downloads two stubs for the "
+"same target service (e.g. an EJB), each stub will use the same target."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:189
+#, no-c-format
+msgid ""
+"Each of the above is an implementation of the org.jboss.ha.framework."
+"interfaces.LoadBalancePolicy interface; users are free to write their own "
+"implementation of this simple interface if they need some special behavior. "
+"In later sections we'll see how to configure the load balance policies used "
+"by different services."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:193
+#, no-c-format
+msgid "External load balancer architecture"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:195
+#, no-c-format
+msgid ""
+"As noted above, an external load balancer provides its own load balancing "
+"capabilities. What capabilities are supported depends on the provider of the "
+"load balancer. The only JBoss requirement is that the load balancer support "
+"“session affinitiy” (a.k.a. “sticky sessions”). With session affinitiy "
+"enabled, once the load balancer routes a request from a client to node A and "
+"the server initiates a session, all future requests associated with that "
+"session must be routed to node A, so long as node A is available."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:205
+#, no-c-format
+msgid "Farming Deployment"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:206
+#, no-c-format
+msgid ""
+"The easiest way to deploy an application into the cluster is to use the "
+"farming service. That is to hot-deploy the application archive file (e.g., "
+"the EAR, WAR or SAR file) in the <code>all/farm/</code> directory of any of "
+"the cluster members and the application will be automatically duplicated "
+"across all nodes in the same cluster. If node joins the cluster later, it "
+"will pull in all farm deployed applications in the cluster and deploy them "
+"locally at start-up time. If you delete the application from one of the "
+"running cluster server node's <literal>farm/</literal> folder, the "
+"application will be undeployed locally and then removed from all other "
+"cluster server nodes farm folder (triggers undeployment.) You should "
+"manually delete the application from the farm folder of any server node not "
+"currently connected to the cluster."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:216
+#, no-c-format
+msgid ""
+"Currently, due to an implementation weakness, the farm deployment service "
+"only works for 1) archives located in the farm/ directory of the first node "
+"to join the cluster or 2) hot-deployed archives. If you first put a new "
+"application in the farm/ directory and then start the server to have it join "
+"an already running cluster, the application will not be pushed across the "
+"cluster or deployed. This is because the farm service does not know whether "
+"the application really represents a new deployment or represents an old "
+"deployment that was removed from the rest of the cluster while the newly "
+"starting node was off-line. We are working to resolve this issue."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:219
+#, no-c-format
+msgid ""
+"You can only put zipped archive files, not exploded directories, in the farm "
+"directory. If exploded directories are placed in farm the directory contents "
+"will be replicated around the cluster piecemeal, and it is very likely that "
+"remote nodes will begin trying to deploy things before all the pieces have "
+"arrived, leading to deployment failure."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:222
+#, no-c-format
+msgid ""
+"Farmed deployment is not atomic. A problem deploying, undeploying or "
+"redeploying an application on one node in the cluster will not prevent the "
+"deployment, undeployment or redeployment being done on the other nodes. "
+"There is no rollback capability. Deployment is also not staggered; it is "
+"quite likely, for example, that a redeployment will happen on all nodes in "
+"the cluster simultaneously, briefly leaving no nodes in the cluster "
+"providing service."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:226
+#, no-c-format
+msgid ""
+"Farming is enabled by default in the <literal>all</literal> configuration in "
+"JBoss AS distributions, so you will not have to set it up yourself. The "
+"<literal>farm-service.xml</literal> configuration file is located in the "
+"deploy/deploy.last directory. If you want to enable farming in a custom "
+"configuration, simply copy the farm-service.xml file and copy it to the "
+"JBoss deploy directory <literal>$JBOSS_HOME/server/your_own_config/deploy/"
+"deploy.last</literal>. Make sure that your custom configuration has "
+"clustering enabled."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:228
+#, no-c-format
+msgid ""
+"After deploying farm-service.xml you are ready to rumble. The required "
+"FarmMemberService MBean attributes for configuring a farm are listed below."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_Intro.xml:231
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;    \n"
+"&lt;server&gt;        \n"
+"        \n"
+"    &lt;mbean code=\"org.jboss.ha.framework.server.FarmMemberService\"     \n"
+"            name=\"jboss:service=FarmMember,partition=DefaultPartition"
+"\"&gt;     \n"
+"        ...      \n"
+"        \n"
+"        &lt;depends optional-attribute-name=\"ClusterPartition\" \n"
+"        proxy-type=\"attribute\"&gt;\n"
+"                jboss:service=${jboss.partition.name:DefaultPartition}\n"
+"                &lt;/depends&gt;     \n"
+"                &lt;attribute name=\"ScanPeriod\"&gt;5000&lt;/"
+"attribute&gt;      \n"
+"                &lt;attribute name=\"URLs\"&gt;farm/&lt;/attribute&gt;     \n"
+"        ...\n"
+"        &lt;/mbean&gt;       \n"
+"&lt;/server&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:236
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ClusterPartition</emphasis> is a required attribute "
+"to inject the HAPartition service that the farm service uses for intra-"
+"cluster communication."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:239
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">URLs</emphasis> points to the directory where "
+"deployer watches for files to be deployed. This MBean will create this "
+"directory is if does not already exist. If a full URL is not provided, it is "
+"assumed that the value is a filesytem path relative to the configuration "
+"directory (e.g. <literal>$JBOSS_HOME/server/all/</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:244
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ScanPeriod</emphasis> specifies the interval at "
+"which the folder must be scanned for changes.. Its default value is "
+"<literal>5000</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:248
+#, no-c-format
+msgid ""
+"The farming service is an extension of the <literal>URLDeploymentScanner</"
+"literal>, which scans for hot deployments in the <literal>deploy/</literal> "
+"directory. So, you can use all the attributes defined in the "
+"<literal>URLDeploymentScanner</literal> MBean in the "
+"<literal>FarmMemberService</literal> MBean. In fact, the <literal>URLs</"
+"literal> and <literal>ScanPeriod</literal> attributes listed above are "
+"inherited from the <literal>URLDeploymentScanner</literal> MBean."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_Intro.xml:257
+#, no-c-format
+msgid "Distributed state replication services"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:258
+#, no-c-format
+msgid ""
+"In a clustered server environment, distributed state management is a key "
+"service the cluster must provide. For instance, in a stateful session bean "
+"application, the session state must be synchronized among all bean instances "
+"across all nodes, so that the client application reaches the same session "
+"state no matter which node serves the request. In an entity bean "
+"application, the bean object sometimes needs to be cached across the cluster "
+"to reduce the database load. Currently, the state replication and "
+"distributed cache services in JBoss AS are provided via three ways: the "
+"<literal>HASessionState</literal> Mbean, the <literal>DistributedState</"
+"literal> MBean and the JBoss Cache framework."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:265
+#, no-c-format
+msgid ""
+"The <literal>HASessionState</literal> MBean is a legacy service that "
+"provides session replication and distributed cache services for EJB 2.x "
+"stateful session beans. The MBean is defined in the <literal>all/deploy/"
+"cluster-service.xml</literal> file. We will show its configuration options "
+"in the EJB 2.x stateful session bean section later."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:268
+#, no-c-format
+msgid ""
+"The <literal>DistributedState</literal> Mbean is a legacy service built on "
+"the HAPartition service. It is supported for backwards compatibility "
+"reasons, but new applications should not use it; they should use the much "
+"more sophisticated JBoss Cache instead."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_Intro.xml:274
+#, no-c-format
+msgid ""
+"As mentioned above JBoss Cache is used to provide cache services for HTTP "
+"sessions, EJB 3.0 session beans and EJB 3.0 entity beans. It is the primary "
+"distributed state management tool in JBoss AS, and is an excellent choice "
+"for any custom caching requirements your applications may have. We will "
+"cover JBoss Cache in more detail when we discuss specific services in the "
+"next several sections.."
+msgstr ""

Added: projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JBoss_Cache_JGroups.po
===================================================================
--- projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JBoss_Cache_JGroups.po	                        (rev 0)
+++ projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JBoss_Cache_JGroups.po	2008-01-21 05:09:32 UTC (rev 69162)
@@ -0,0 +1,2343 @@
+# Language ja-JP translations for PACKAGE package.
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-12-10 22:33+0000\n"
+"PO-Revision-Date: 2007-12-10 22:33+0000\n"
+"Last-Translator: Automatically generated\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
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:5
+#, no-c-format
+msgid "JBossCache and JGroups Services"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:6
+#, no-c-format
+msgid ""
+"JGroups and JBossCache provide the underlying communication, node "
+"replication and caching services, for JBoss AS clusters. Those services are "
+"configured as MBeans. There is a set of JBossCache and JGroups MBeans for "
+"each type of clustering applications (e.g., the Stateful Session EJBs, HTTP "
+"session replication etc.)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:10
+#, no-c-format
+msgid ""
+"The JBoss AS ships with a reasonable set of default JGroups and JBossCache "
+"MBean configurations. Most applications just work out of the box with the "
+"default MBean configurations. You only need to tweak them when you are "
+"deploying an application that has special network or performance "
+"requirements."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:15
+#, no-c-format
+msgid "JGroups Configuration"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:16
+#, no-c-format
+msgid ""
+"The JGroups framework provides services to enable peer-to-peer "
+"communications between nodes in a cluster. It is built on top a stack of "
+"network communication protocols that provide transport, discovery, "
+"reliability and failure detection, and cluster membership management "
+"services. <xref linkend=\"jbosscache-JGroupsStack.fig\"/> shows the protocol "
+"stack in JGroups."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:20
+#, no-c-format
+msgid "Protocol stack in JGroups"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:27
+#, no-c-format
+msgid ""
+"JGroups configurations often appear as a nested attribute in cluster related "
+"MBean services, such as the <literal>PartitionConfig</literal> attribute in "
+"the <literal>ClusterPartition</literal> MBean or the <literal>ClusterConfig</"
+"literal> attribute in the <literal>TreeCache</literal> MBean. You can "
+"configure the behavior and properties of each protocol in JGroups via those "
+"MBean attributes. Below is an example JGroups configuration in the "
+"<literal>ClusterPartition</literal> MBean."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:32
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<mbean code=\"org.jboss.ha.framework.server.ClusterPartition\"\n"
+"        name=\"jboss:service=${jboss.partition.name:DefaultPartition}\">\n"
+"         \n"
+"         ... ...\n"
+"         \n"
+"         <attribute name=\"PartitionConfig\">\n"
+"                 <Config>\n"
+"                         \n"
+"                         <UDP mcast_addr=\"${jboss.partition."
+"udpGroup:228.1.2.3}\" \n"
+"                              mcast_port=\"${jboss.hapartition."
+"mcast_port:45566}\"\n"
+"                              tos=\"8\"\n"
+"                              ucast_recv_buf_size=\"20000000\"\n"
+"                              ucast_send_buf_size=\"640000\"\n"
+"                              mcast_recv_buf_size=\"25000000\"\n"
+"                              mcast_send_buf_size=\"640000\"\n"
+"                              loopback=\"false\"\n"
+"                              discard_incompatible_packets=\"true\"\n"
+"                              enable_bundling=\"false\"\n"
+"                              max_bundle_size=\"64000\"\n"
+"                              max_bundle_timeout=\"30\"\n"
+"                              use_incoming_packet_handler=\"true\"\n"
+"                              use_outgoing_packet_handler=\"false\"\n"
+"                              ip_ttl=\"${jgroups.udp.ip_ttl:2}\"\n"
+"                              down_thread=\"false\" up_thread=\"false\"/>\n"
+"                         \n"
+"                         <PING timeout=\"2000\"\n"
+"                               down_thread=\"false\" up_thread=\"false\" "
+"num_initial_members=\"3\"/>\n"
+"                         \n"
+"                         <MERGE2 max_interval=\"100000\"\n"
+"                                 down_thread=\"false\" up_thread=\"false\" "
+"min_interval=\"20000\"/>\n"
+"                         <FD_SOCK down_thread=\"false\" up_thread=\"false\"/"
+">\n"
+"                         \n"
+"                         <FD timeout=\"10000\" max_tries=\"5\" \n"
+"                             down_thread=\"false\" up_thread=\"false\" shun="
+"\"true\"/>\n"
+"                         <VERIFY_SUSPECT timeout=\"1500\" down_thread=\"false"
+"\" up_thread=\"false\"/>\n"
+"                         <pbcast.NAKACK max_xmit_size=\"60000\"\n"
+"                                        use_mcast_xmit=\"false\" gc_lag=\"0"
+"\"\n"
+"                                        retransmit_timeout="
+"\"300,600,1200,2400,4800\"\n"
+"                                        down_thread=\"false\" up_thread="
+"\"false\"\n"
+"                                        discard_delivered_msgs=\"true\"/>\n"
+"                         <UNICAST timeout=\"300,600,1200,2400,3600\"\n"
+"                                  down_thread=\"false\" up_thread=\"false\"/"
+">\n"
+"                         <pbcast.STABLE stability_delay=\"1000\" "
+"desired_avg_gossip=\"50000\"\n"
+"                                        down_thread=\"false\" up_thread="
+"\"false\"\n"
+"                                        max_bytes=\"400000\"/>\n"
+"                         <pbcast.GMS print_local_addr=\"true\" join_timeout="
+"\"3000\"\n"
+"                                     down_thread=\"false\" up_thread=\"false"
+"\"\n"
+"                                     join_retry_timeout=\"2000\" shun=\"true"
+"\"\n"
+"                                     view_bundling=\"true\"/>\n"
+"                         <FRAG2 frag_size=\"60000\" down_thread=\"false\" "
+"up_thread=\"false\"/>\n"
+"                         <pbcast.STATE_TRANSFER down_thread=\"false\" \n"
+"                                                up_thread=\"false\" "
+"use_flush=\"false\"/>\n"
+"                 </Config>\n"
+"         </attribute>\n"
+"</mbean> ]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:33
+#, no-c-format
+msgid ""
+"All the JGroups configuration data is contained in the &lt;Config&gt; "
+"element under the JGroups config MBean attribute. This information is used "
+"to configure a JGroups Channel; the Channel is conceptually similar to a "
+"socket, and manages communication between peers in a cluster. Each element "
+"inside the &lt;Config&gt; element defines a particular JGroups Protocol; "
+"each Protocol performs one function, and the combination of those functions "
+"is what defines the characteristics of the overall Channel. In the next "
+"several sections, we will dig into the commonly used protocols and their "
+"options and explain exactly what they mean."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:38
+#, no-c-format
+msgid "Common Configuration Properties"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:39
+#, no-c-format
+msgid ""
+"The following common properties are exposed by all of the JGroups protocols "
+"discussed below:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:43
+#, no-c-format
+msgid ""
+"<literal>down_thread</literal> whether the protocol should create an "
+"internal queue and a queue processing thread (aka the down_thread) for "
+"messages passed down from higher layers. The higher layer could be another "
+"protocol higher in the stack, or the application itself, if the protocol is "
+"the top one on the stack. If true (the default), when a message is passed "
+"down from a higher layer, the calling thread places the message in the "
+"protocol's queue, and then returns immediately. The protocol's down_thread "
+"is responsible for reading messages off the queue, doing whatever protocol-"
+"specific processing is required, and passing the message on to the next "
+"protocol in the stack."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:47
+#, no-c-format
+msgid ""
+"<literal>up_thread</literal> is conceptually similar to down_thread, but "
+"here the queue and thread are for messages received from lower layers in the "
+"protocol stack."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:51
+#, no-c-format
+msgid ""
+"Generally speaking, <literal>up_thread</literal> and <literal>down_thread</"
+"literal> should be set to false."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:57
+#, no-c-format
+msgid "Transport Protocols"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:58
+#, no-c-format
+msgid ""
+"The transport protocols send messages from one cluster node to another "
+"(unicast) or from cluster node to all other nodes in the cluster (mcast). "
+"JGroups supports UDP, TCP, and TUNNEL as transport protocols."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:62
+#, no-c-format
+msgid ""
+"The <literal>UDP</literal>, <literal>TCP</literal>, and <literal>TUNNEL</"
+"literal> elements are mutually exclusive. You can only have one transport "
+"protocol in each JGroups <literal>Config</literal> element"
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:67
+#, no-c-format
+msgid "UDP configuration"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:68
+#, no-c-format
+msgid ""
+"UDP is the preferred protocol for JGroups. UDP uses multicast or multiple "
+"unicasts to send and receive messages. If you choose UDP as the transport "
+"protocol for your cluster service, you need to configure it in the "
+"<literal>UDP</literal> sub-element in the JGroups <literal>Config</literal> "
+"element. Here is an example."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:72
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<UDP mcast_addr=\"${jboss.partition.udpGroup:228.1.2.3}\" \n"
+"     mcast_port=\"${jboss.hapartition.mcast_port:45566}\"\n"
+"     tos=\"8\"\n"
+"     ucast_recv_buf_size=\"20000000\"\n"
+"     ucast_send_buf_size=\"640000\"\n"
+"     mcast_recv_buf_size=\"25000000\"\n"
+"     mcast_send_buf_size=\"640000\"\n"
+"     loopback=\"false\"\n"
+"     discard_incompatible_packets=\"true\"\n"
+"     enable_bundling=\"false\"\n"
+"     max_bundle_size=\"64000\"\n"
+"     max_bundle_timeout=\"30\"\n"
+"     use_incoming_packet_handler=\"true\"\n"
+"     use_outgoing_packet_handler=\"false\"\n"
+"     ip_ttl=\"${jgroups.udp.ip_ttl:2}\"\n"
+" down_thread=\"false\" up_thread=\"false\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:75
+#, no-c-format
+msgid ""
+"The available attributes in the above JGroups configuration are listed below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:78
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ip_mcast</emphasis> specifies whether or not to use "
+"IP multicasting. The default is <literal>true</literal>. If set to false, it "
+"will send n unicast packets rather than 1 multicast packet. Either way, "
+"packets are UDP datagrams."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:83
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">mcast_addr</emphasis> specifies the multicast "
+"address (class D) for joining a group (i.e., the cluster). If omitted, the "
+"default is <literal>228.8.8.8 </literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:88
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">mcast_port</emphasis> specifies the multicast port "
+"number. If omitted, the default is <literal>45566</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:92
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">bind_addr</emphasis> specifies the interface on "
+"which to receive and send multicasts (uses the <literal>-Djgroups."
+"bind_address</literal> system property, if present). If you have a "
+"multihomed machine, set the <literal>bind_addr</literal> attribute or system "
+"property to the appropriate NIC IP address. By default, system property "
+"setting takes priority over XML attribute unless -Djgroups.ignore.bind_addr "
+"system property is set."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:95
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">receive_on_all_interfaces </emphasis> specifies "
+"whether this node should listen on all interfaces for multicasts. The "
+"default is <literal>false</literal>. It overrides the <literal>bind_addr</"
+"literal> property for receiving multicasts. However, <literal>bind_addr</"
+"literal> (if set) is still used to send multicasts."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:100
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">send_on_all_interfaces</emphasis> specifies whether "
+"this node send UDP packets via all the NICs if you have a multi NIC machine. "
+"This means that the same multicast message is sent N times, so use with care."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:105
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">receive_interfaces</emphasis> specifies a list of of "
+"interfaces to receive multicasts on. The multicast receive socket will "
+"listen on all of these interfaces. This is a comma-separated list of IP "
+"addresses or interface names. E.g. \"<literal>192.168.5.1,eth1,127.0.0.1</"
+"literal>\"."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:111
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ip_ttl</emphasis> specifies time-to-live for IP "
+"Multicast packets. TTL is the commonly used term in multicast networking, "
+"but is actually something of a misnomer, since the value here refers to how "
+"many network hops a packet will be allowed to travel before networking "
+"equipment will drop it."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:115
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">use_incoming_packet_handler</emphasis> specifies "
+"whether to use a separate thread to process incoming messages. Sometimes "
+"receivers are overloaded (they have to handle de-serialization etc). Packet "
+"handler is a separate thread taking care of de-serialization, receiver thread"
+"(s) simply put packet in queue and return immediately. Setting this to true "
+"adds one more thread. The default is <literal>true</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:118
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">use_outgoing_packet_handler</emphasis> specifies "
+"whether to use a separate thread to process outgoing messages. The default "
+"is false."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:121
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">enable_bundling</emphasis> specifies whether to "
+"enable message bundling. If it is <literal>true</literal>, the node would "
+"queue outgoing messages until <literal>max_bundle_size</literal> bytes have "
+"accumulated, or <literal>max_bundle_time</literal> milliseconds have "
+"elapsed, whichever occurs first. Then bundle queued messages into a large "
+"message and send it. The messages are unbundled at the receiver. The default "
+"is <literal>false</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:129
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">loopback</emphasis> specifies whether to loop "
+"outgoing message back up the stack. In <literal>unicast</literal> mode, the "
+"messages are sent to self. In <literal>mcast</literal> mode, a copy of the "
+"mcast message is sent. The default is <literal>false</literal>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:134
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">discard_incompatibe_packets</emphasis> specifies "
+"whether to discard packets from different JGroups versions. Each message in "
+"the cluster is tagged with a JGroups version. When a message from a "
+"different version of JGroups is received, it will be discarded if set to "
+"true, otherwise a warning will be logged. The default is <literal>false</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:140
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">mcast_send_buf_size, mcast_recv_buf_size, "
+"ucast_send_buf_size, ucast_recv_buf_size</emphasis> define receive and send "
+"buffer sizes. It is good to have a large receiver buffer size, so packets "
+"are less likely to get dropped due to buffer overflow."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:146
+#, no-c-format
+msgid ""
+"<literal>tos</literal> specifies traffic class for sending unicast and "
+"multicast datagrams."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:152
+#, no-c-format
+msgid ""
+"On Windows 2000 machines, because of the media sense feature being broken "
+"with multicast (even after disabling media sense), you need to set the UDP "
+"protocol's <literal>loopback</literal> attribute to <literal>true</literal>."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:160
+#, no-c-format
+msgid "TCP configuration"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:161
+#, no-c-format
+msgid ""
+"Alternatively, a JGroups-based cluster can also work over TCP connections. "
+"Compared with UDP, TCP generates more network traffic when the cluster size "
+"increases. TCP is fundamentally a unicast protocol. To send multicast "
+"messages, JGroups uses multiple TCP unicasts. To use TCP as a transport "
+"protocol, you should define a <literal>TCP</literal> element in the JGroups "
+"<literal>Config</literal> element. Here is an example of the <literal>TCP</"
+"literal> element."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:167
+#, no-c-format
+msgid ""
+"&lt;TCP start_port=\"7800\"\n"
+"    bind_addr=\"192.168.5.1\"\n"
+"    loopback=\"true\"\n"
+"    down_thread=\"false\" up_thread=\"false\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:168
+#, no-c-format
+msgid ""
+"Below are the attributes available in the <literal>TCP</literal> element."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:171
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">bind_addr</emphasis> specifies the binding address. "
+"It can also be set with the <literal>-Djgroups.bind_address</literal> "
+"command line option at server startup."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:176
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">start_port, end_port</emphasis> define the range of "
+"TCP ports the server should bind to. The server socket is bound to the first "
+"available port from <literal>start_port</literal>. If no available port is "
+"found (e.g., because of a firewall) before the <literal>end_port</literal>, "
+"the server throws an exception. If no <literal>end_port</literal> is "
+"provided or <literal>end_port &lt; start_port</literal> then there is no "
+"upper limit on the port range. If <literal>start_port == end_port</literal>, "
+"then we force JGroups to use the given port (start fails if port is not "
+"available). The default is 7800. If set to 0, then the operating system will "
+"pick a port. Please, bear in mind that setting it to 0 will work only if we "
+"use MPING or TCPGOSSIP as discovery protocol because <literal>TCCPING</"
+"literal> requires listing the nodes and their corresponding ports."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:182
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">loopback</emphasis> specifies whether to loop "
+"outgoing message back up the stack. In <literal>unicast</literal> mode, the "
+"messages are sent to self. In <literal>mcast</literal> mode, a copy of the "
+"mcast message is sent. The default is false."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:187
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">recv_buf_size, send_buf_size</emphasis> define "
+"receive and send buffer sizes. It is good to have a large receiver buffer "
+"size, so packets are less likely to get dropped due to buffer overflow."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:190
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">conn_expire_time</emphasis> specifies the time (in "
+"milliseconds) after which a connection can be closed by the reaper if no "
+"traffic has been received."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:195
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">reaper_interval</emphasis> specifies interval (in "
+"milliseconds) to run the reaper. If both values are 0, no reaping will be "
+"done. If either value is &gt; 0, reaping will be enabled. By default, "
+"reaper_interval is 0, which means no reaper."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:200
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">sock_conn_timeout</emphasis> specifies max time in "
+"millis for a socket creation. When doing the initial discovery, and a peer "
+"hangs, don't wait forever but go on after the timeout to ping other members. "
+"Reduces chances of *not* finding any members at all. The default is 2000."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:203
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">use_send_queues</emphasis> specifies whether to use "
+"separate send queues for each connection. This prevents blocking on write if "
+"the peer hangs. The default is true."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:206
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">external_addr</emphasis> specifies external IP "
+"address to broadcast to other group members (if different to local address). "
+"This is useful when you have use (Network Address Translation) NAT, e.g. a "
+"node on a private network, behind a firewall, but you can only route to it "
+"via an externally visible address, which is different from the local address "
+"it is bound to. Therefore, the node can be configured to broadcast its "
+"external address, while still able to bind to the local one. This avoids "
+"having to use the TUNNEL protocol, (and hence a requirement for a central "
+"gossip router) because nodes outside the firewall can still route to the "
+"node inside the firewall, but only on its external address. Without setting "
+"the external_addr, the node behind the firewall will broadcast its private "
+"address to the other nodes which will not be able to route to it."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:209
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">skip_suspected_members</emphasis> specifies whether "
+"unicast messages should not be sent to suspected members. The default is "
+"true."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:212
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">tcp_nodelay</emphasis> specifies TCP_NODELAY. TCP by "
+"default nagles messages, that is, conceptually, smaller messages are bundled "
+"into larger ones. If we want to invoke synchronous cluster method calls, "
+"then we need to disable nagling in addition to disabling message bundling "
+"(by setting <literal>enable_bundling</literal> to false). Nagling is "
+"disabled by setting <literal>tcp_nodelay</literal> to true. The default is "
+"false."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:220
+#, no-c-format
+msgid "TUNNEL configuration"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:221
+#, no-c-format
+msgid ""
+"The TUNNEL protocol uses an external router to send messages. The external "
+"router is known as a <literal>GossipRouter</literal>. Each node has to "
+"register with the router. All messages are sent to the router and forwarded "
+"on to their destinations. The TUNNEL approach can be used to setup "
+"communication with nodes behind firewalls. A node can establish a TCP "
+"connection to the GossipRouter through the firewall (you can use port 80). "
+"The same connection is used by the router to send messages to nodes behind "
+"the firewall as most firewalls do not permit outside hosts to initiate a TCP "
+"connection to a host inside the firewall. The TUNNEL configuration is "
+"defined in the TUNNEL element in the JGroups Config element. Here is an "
+"example.."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:226
+#, no-c-format
+msgid ""
+"&lt;TUNNEL router_port=\"12001\"\n"
+"    router_host=\"192.168.5.1\"\n"
+"    down_thread=\"false\" up_thread=\"false/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:229
+#, no-c-format
+msgid ""
+"The available attributes in the <literal>TUNNEL</literal> element are listed "
+"below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:232
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">router_host</emphasis> specifies the host on which "
+"the GossipRouter is running."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:236
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">router_port</emphasis> specifies the port on which "
+"the GossipRouter is listening."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:240
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">loopback</emphasis> specifies whether to loop "
+"messages back up the stack. The default is <literal>true</literal>."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:251
+#, no-c-format
+msgid "Discovery Protocols"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:252
+#, no-c-format
+msgid ""
+"The cluster needs to maintain a list of current member nodes at all times so "
+"that the load balancer and client interceptor know how to route their "
+"requests. Discovery protocols are used to discover active nodes in the "
+"cluster and detect the oldest member of the cluster, which is the "
+"coordinator. All initial nodes are discovered when the cluster starts up. "
+"When a new node joins the cluster later, it is only discovered after the "
+"group membership protocol (GMS, see <xref linkend=\"jbosscache-jgroups-other-"
+"gms\"/>) admits it into the group."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:256
+#, no-c-format
+msgid ""
+"Since the discovery protocols sit on top of the transport protocol, you can "
+"choose to use different discovery protocols based on your transport "
+"protocol. These are also configured as sub-elements in the JGroups MBean "
+"<literal>Config</literal> element."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:262
+#, no-c-format
+msgid "PING"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:263
+#, no-c-format
+msgid ""
+"PING is a discovery protocol that works by either multicasting PING requests "
+"to an IP multicast address or connecting to a gossip router. As such, PING "
+"normally sits on top of the UDP or TUNNEL transport protocols. Each node "
+"responds with a packet {C, A}, where C=coordinator's address and A=own "
+"address. After timeout milliseconds or num_initial_members replies, the "
+"joiner determines the coordinator from the responses, and sends a JOIN "
+"request to it (handled by). If nobody responds, we assume we are the first "
+"member of a group."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:266
+#, no-c-format
+msgid "Here is an example PING configuration for IP multicast."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:270
+#, no-c-format
+msgid ""
+"&lt;PING timeout=\"2000\"\n"
+"    num_initial_members=\"2\"\n"
+"    down_thread=\"false\" up_thread=\"false\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:271
+#, no-c-format
+msgid ""
+"Here is another example PING configuration for contacting a Gossip Router."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:273
+#, no-c-format
+msgid ""
+"<![CDATA[        \n"
+"<PING gossip_host=\"localhost\"\n"
+"      gossip_port=\"1234\"\n"
+"              timeout=\"3000\" \n"
+"              num_initial_members=\"3\"\n"
+"              down_thread=\"false\" up_thread=\"false\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:278
+#, no-c-format
+msgid ""
+"The available attributes in the <literal>PING</literal> element are listed "
+"below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:281
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:329
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:358
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:392
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">timeout</emphasis> specifies the maximum number of "
+"milliseconds to wait for any responses. The default is 3000."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:285
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:333
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:362
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">num_initial_members</emphasis> specifies the maximum "
+"number of responses to wait for unless timeout has expired. The default is 2."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:289
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">gossip_host</emphasis> specifies the host on which "
+"the GossipRouter is running."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:293
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">gossip_port</emphasis> specifies the port on which "
+"the GossipRouter is listening on."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:297
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">gossip_refresh</emphasis> specifies the interval (in "
+"milliseconds) for the lease from the GossipRouter. The default is 20000."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:301
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">initial_hosts</emphasis> is a comma-seperated list "
+"of addresses (e.g., <literal>host1[12345],host2[23456]</literal>), which are "
+"pinged for discovery."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:306
+#, no-c-format
+msgid ""
+"If both <literal>gossip_host</literal> and <literal>gossip_port</literal> "
+"are defined, the cluster uses the GossipRouter for the initial discovery. If "
+"the <literal>initial_hosts</literal> is specified, the cluster pings that "
+"static list of addresses for discovery. Otherwise, the cluster uses IP "
+"multicasting for discovery."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:311
+#, no-c-format
+msgid ""
+"The discovery phase returns when the <literal>timeout</literal> ms have "
+"elapsed or the <literal>num_initial_members</literal> responses have been "
+"received."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:319
+#, no-c-format
+msgid "TCPGOSSIP"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:320
+#, no-c-format
+msgid ""
+"The TCPGOSSIP protocol only works with a GossipRouter. It works essentially "
+"the same way as the PING protocol configuration with valid "
+"<literal>gossip_host</literal> and <literal>gossip_port</literal> "
+"attributes. It works on top of both UDP and TCP transport protocols. Here is "
+"an example."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:323
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<TCPGOSSIP timeout=\"2000\"\n"
+"            initial_hosts=\"192.168.5.1[12000],192.168.0.2[12000]\"\n"
+"            num_initial_members=\"3\"\n"
+"  down_thread=\"false\" up_thread=\"false\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:326
+#, no-c-format
+msgid ""
+"The available attributes in the <literal>TCPGOSSIP</literal> element are "
+"listed below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:337
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">initial_hosts</emphasis> is a comma-seperated list "
+"of addresses (e.g., <literal>host1[12345],host2[23456]</literal>) for "
+"GossipRouters to register with."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:347
+#, no-c-format
+msgid "TCPPING"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:348
+#, no-c-format
+msgid ""
+"The TCPPING protocol takes a set of known members and ping them for "
+"discovery. This is essentially a static configuration. It works on top of "
+"TCP. Here is an example of the <literal>TCPPING</literal> configuration "
+"element in the JGroups <literal>Config</literal> element."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:352
+#, no-c-format
+msgid ""
+"&lt;TCPPING timeout=\"2000\"\n"
+"        initial_hosts=\"hosta[2300],hostb[3400],hostc[4500]\"\n"
+"        port_range=\"3\"\n"
+"        num_initial_members=\"3\"\n"
+"         down_thread=\"false\" up_thread=\"false\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:355
+#, no-c-format
+msgid ""
+"The available attributes in the <literal>TCPPING</literal> element are "
+"listed below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:366
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">initial_hosts</emphasis> is a comma-seperated list "
+"of addresses (e.g., <literal>host1[12345],host2[23456]</literal>) for "
+"pinging."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:370
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">port_range</emphasis> specifies the number of "
+"consecutive ports to be probed when getting the initial membership, starting "
+"with the port specified in the initial_hosts parameter. Given the current "
+"values of port_range and initial_hosts above, the TCPPING layer will try to "
+"connect to hosta:2300, hosta:2301, hosta:2302, hostb:3400, hostb:3401, "
+"hostb:3402, hostc:4500, hostc:4501, hostc:4502. The configuration options "
+"allows for multiple nodes on the same host to be pinged."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:381
+#, no-c-format
+msgid "MPING"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:382
+#, no-c-format
+msgid ""
+"MPING uses IP multicast to discover the initial membership. It can be used "
+"with all transports, but usually this is used in combination with TCP. TCP "
+"usually requires TCPPING, which has to list all group members explicitly, "
+"but MPING doesn't have this requirement. The typical use case for this is "
+"when we want TCP as transport, but multicasting for discovery so we don't "
+"have to define a static list of initial hosts in TCPPING or require external "
+"Gossip Router."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:386
+#, no-c-format
+msgid ""
+"&lt;MPING timeout=\"2000\"\n"
+"    bind_to_all_interfaces=\"true\"\n"
+"    mcast_addr=\"228.8.8.8\"\n"
+"    mcast_port=\"7500\"\n"
+"    ip_ttl=\"8\"\n"
+"    num_initial_members=\"3\"\n"
+"    down_thread=\"false\" up_thread=\"false\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:389
+#, no-c-format
+msgid ""
+"The available attributes in the <literal>MPING</literal> element are listed "
+"below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:396
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">num_initial_members</emphasis> specifies the maximum "
+"number of responses to wait for unless timeout has expired. The default is "
+"2.."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:400
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">bind_addr</emphasis> specifies the interface on "
+"which to send and receive multicast packets."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:404
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">bind_to_all_interfaces</emphasis> overrides the "
+"<literal>bind_addr</literal> and uses all interfaces in multihome nodes."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:408
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">mcast_addr, mcast_port, ip_ttl</emphasis> attributes "
+"are the same as related attributes in the UDP protocol configuration."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:418
+#, no-c-format
+msgid "Failure Detection Protocols"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:419
+#, no-c-format
+msgid ""
+"The failure detection protocols are used to detect failed nodes. Once a "
+"failed node is detected, a suspect verification phase can occur after which, "
+"if the node is still considered dead, the cluster updates its view so that "
+"the load balancer and client interceptors know to avoid the dead node. The "
+"failure detection protocols are configured as sub-elements in the JGroups "
+"MBean <literal>Config</literal> element."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:425
+#, no-c-format
+msgid "<title>FD</title>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:426
+#, no-c-format
+msgid ""
+"FD is a failure detection protocol based on heartbeat messages. This "
+"protocol requires each node to periodically send are-you-alive messages to "
+"its neighbour. If the neighbour fails to respond, the calling node sends a "
+"SUSPECT message to the cluster. The current group coordinator can optionally "
+"double check whether the suspected node is indeed dead after which, if the "
+"node is still considered dead, updates the cluster's view. Here is an "
+"example FD configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:430
+#, no-c-format
+msgid ""
+"&lt;FD timeout=\"2000\"\n"
+"    max_tries=\"3\"\n"
+"    shun=\"true\"\n"
+"    down_thread=\"false\" up_thread=\"false\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:433
+#, no-c-format
+msgid ""
+"The available attributes in the <literal>FD</literal> element are listed "
+"below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:436
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">timeout</emphasis> specifies the maximum number of "
+"milliseconds to wait for the responses to the are-you-alive messages. The "
+"default is 3000."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:440
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">max_tries</emphasis> specifies the number of missed "
+"are-you-alive messages from a node before the node is suspected. The default "
+"is 2."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:444
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">shun</emphasis> specifies whether a failed node will "
+"be shunned. Once shunned, the node will be expelled from the cluster even if "
+"it comes back later. The shunned node would have to re-join the cluster "
+"through the discovery process. JGroups allows to configure itself such that "
+"shunning leads to automatic rejoins and state transfer, which is the default "
+"behaivour within JBoss Application Server."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:450
+#, no-c-format
+msgid ""
+"Regular traffic from a node counts as if it is a live. So, the are-you-alive "
+"messages are only sent when there is no regular traffic to the node for "
+"sometime."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:459
+#, no-c-format
+msgid "FD_SOCK"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:460
+#, no-c-format
+msgid ""
+"FD_SOCK is a failure detection protocol based on a ring of TCP sockets "
+"created between group members. Each member in a group connects to its "
+"neighbor (last member connects to first) thus forming a ring. Member B is "
+"suspected when its neighbor A detects abnormally closed TCP socket "
+"(presumably due to a node B crash). However, if a member B is about to leave "
+"gracefully, it lets its neighbor A know, so that it does not become "
+"suspected. The simplest FD_SOCK configuration does not take any attribute. "
+"You can just declare an empty <literal>FD_SOCK</literal> element in "
+"JGroups's <literal>Config</literal> element."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:464
+#, no-c-format
+msgid "&lt;FD_SOCK_down_thread=\"false\" up_thread=\"false\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:466
+#, no-c-format
+msgid ""
+"There available attributes in the <literal>FD_SOCK</literal> element are "
+"listed below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:469
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">bind_addr</emphasis> specifies the interface to "
+"which the server socket should bind to. If -Djgroups.bind_address system "
+"property is defined, XML value will be ignore. This behaivour can be "
+"reversed setting -Djgroups.ignore.bind_addr=true system property."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:477
+#, no-c-format
+msgid "VERIFY_SUSPECT"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:478
+#, no-c-format
+msgid ""
+"This protocol verifies whether a suspected member is really dead by pinging "
+"that member once again. This verification is performed by the coordinator of "
+"the cluster. The suspected member is dropped from the cluster group if "
+"confirmed to be dead. The aim of this protocol is to minimize false "
+"suspicions. Here's an example."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:482
+#, no-c-format
+msgid ""
+"<![CDATA[                        \n"
+"<VERIFY_SUSPECT timeout=\"1500\"\n"
+"        down_thread=\"false\" up_thread=\"false\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:484
+#, no-c-format
+msgid "The available attributes in the FD_SOCK element are listed below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:489
+#, no-c-format
+msgid ""
+"timeout specifies how long to wait for a response from the suspected member "
+"before considering it dead."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:500
+#, no-c-format
+msgid "FD versus FD_SOCK"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:501
+#, no-c-format
+msgid ""
+"FD and FD_SOCK, each taken individually, do not provide a solid failure "
+"detection layer. Let's look at the the differences between these failure "
+"detection protocols to understand how they complement each other:"
+msgstr ""
+
+#. Tag: emphasis
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:505
+#, no-c-format
+msgid "<emphasis>FD</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:510
+#, no-c-format
+msgid "An overloaded machine might be slow in sending are-you-alive responses."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:515
+#, no-c-format
+msgid "A member will be suspected when suspended in a debugger/profiler."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:520
+#, no-c-format
+msgid ""
+"Low timeouts lead to higher probability of false suspicions and higher "
+"network traffic."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:525
+#, no-c-format
+msgid "High timeouts will not detect and remove crashed members for some time."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:532
+#, no-c-format
+msgid "<emphasis>FD_SOCK</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:538
+#, no-c-format
+msgid ""
+"Suspended in a debugger is no problem because the TCP connection is still "
+"open."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:543
+#, no-c-format
+msgid "High load no problem either for the same reason."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:548
+#, no-c-format
+msgid "Members will only be suspected when TCP connection breaks"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:557
+#, no-c-format
+msgid "So hung members will not be detected."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:562
+#, no-c-format
+msgid ""
+"Also, a crashed switch will not be detected until the connection runs into "
+"the TCP timeout (between 2-20 minutes, depending on TCP/IP stack "
+"implementation)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:569
+#, no-c-format
+msgid ""
+"The aim of a failure detection layer is to report real failures and "
+"therefore avoid false suspicions. There are two solutions:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:574
+#, no-c-format
+msgid ""
+"By default, JGroups configures the FD_SOCK socket with KEEP_ALIVE, which "
+"means that TCP sends a heartbeat on socket on which no traffic has been "
+"received in 2 hours. If a host crashed (or an intermediate switch or router "
+"crashed) without closing the TCP connection properly, we would detect this "
+"after 2 hours (plus a few minutes). This is of course better than never "
+"closing the connection (if KEEP_ALIVE is off), but may not be of much help. "
+"So, the first solution would be to lower the timeout value for KEEP_ALIVE. "
+"This can only be done for the entire kernel in most operating systems, so if "
+"this is lowered to 15 minutes, this will affect all TCP sockets."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:579
+#, no-c-format
+msgid ""
+"The second solution is to combine FD_SOCK and FD; the timeout in FD can be "
+"set such that it is much lower than the TCP timeout, and this can be "
+"configured individually per process. FD_SOCK will already generate a suspect "
+"message if the socket was closed abnormally. However, in the case of a "
+"crashed switch or host, FD will make sure the socket is eventually closed "
+"and the suspect message generated. Example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:584
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<FD_SOCK down_thread=\"false\" up_thread=\"false\"/>\n"
+"<FD timeout=\"10000\" max_tries=\"5\" shun=\"true\" \n"
+"down_thread=\"false\" up_thread=\"false\" /> ]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:586
+#, no-c-format
+msgid ""
+"This suspects a member when the socket to the neighbor has been closed "
+"abonormally (e.g. process crash, because the OS closes all sockets). "
+"However, f a host or switch crashes, then the sockets won't be closed, "
+"therefore, as a seond line of defense, FD will suspect the neighbor after 50 "
+"seconds. Note that with this example, if you have your system stopped in a "
+"breakpoint in the debugger, the node you're debugging will be suspected "
+"after ca 50 seconds."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:589
+#, no-c-format
+msgid ""
+"A combination of FD and FD_SOCK provides a solid failure detection layer and "
+"for this reason, such technique is used accross JGroups configurations "
+"included within JBoss Application Server."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:598
+#, no-c-format
+msgid "Reliable Delivery Protocols"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:599
+#, no-c-format
+msgid ""
+"Reliable delivery protocols within the JGroups stack ensure that data "
+"pockets are actually delivered in the right order (FIFO) to the destination "
+"node. The basis for reliable message delivery is positive and negative "
+"delivery acknowledgments (ACK and NAK). In the ACK mode, the sender resends "
+"the message until the acknowledgment is received from the receiver. In the "
+"NAK mode, the receiver requests retransmission when it discovers a gap."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:606
+#, no-c-format
+msgid "UNICAST"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:607
+#, no-c-format
+msgid ""
+"The UNICAST protocol is used for unicast messages. It uses ACK. It is "
+"configured as a sub-element under the JGroups Config element. If the JGroups "
+"stack is configured with TCP transport protocol, UNICAST is not necessary "
+"because TCP itself guarantees FIFO delivery of unicast messages. Here is an "
+"example configuration for the <literal>UNICAST</literal> protocol."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:610
+#, no-c-format
+msgid ""
+"&lt;UNICAST timeout=\"100,200,400,800\"\n"
+"down_thread=\"false\" up_thread=\"false\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:612
+#, no-c-format
+msgid ""
+"There is only one configurable attribute in the <literal>UNICAST</literal> "
+"element."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:615
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">timeout</emphasis> specifies the retransmission "
+"timeout (in milliseconds). For instance, if the timeout is \"100,200,400,800"
+"\", the sender resends the message if it hasn't received an ACK after 100 ms "
+"the first time, and the second time it waits for 200 ms before resending, "
+"and so on."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:625
+#, no-c-format
+msgid "NAKACK"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:626
+#, no-c-format
+msgid ""
+"The NAKACK protocol is used for multicast messages. It uses NAK. Under this "
+"protocol, each message is tagged with a sequence number. The receiver keeps "
+"track of the sequence numbers and deliver the messages in order. When a gap "
+"in the sequence number is detected, the receiver asks the sender to "
+"retransmit the missing message. The NAKACK protocol is configured as the "
+"<literal>pbcast.NAKACK</literal> sub-element under the JGroups "
+"<literal>Config</literal> element. Here is an example configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:633
+#, no-c-format
+msgid ""
+"&lt;pbcast.NAKACK max_xmit_size=\"60000\" use_mcast_xmit=\"false\" \n"
+"   \n"
+"   retransmit_timeout=\"300,600,1200,2400,4800\" gc_lag=\"0\"\n"
+"   discard_delivered_msgs=\"true\"\n"
+"   down_thread=\"false\" up_thread=\"false\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:636
+#, no-c-format
+msgid ""
+"The configurable attributes in the <literal>pbcast.NAKACK</literal> element "
+"are as follows."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:639
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">retransmit_timeout</emphasis> specifies the "
+"retransmission timeout (in milliseconds). It is the same as the "
+"<literal>timeout</literal> attribute in the UNICAST protocol."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:644
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">use_mcast_xmit</emphasis> determines whether the "
+"sender should send the retransmission to the entire cluster rather than just "
+"the node requesting it. This is useful when the sender drops the pocket -- "
+"so we do not need to retransmit for each node."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:650
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">max_xmit_size</emphasis> specifies maximum size for "
+"a bundled retransmission, if multiple packets are reported missing."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:654
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">discard_delivered_msgs</emphasis> specifies whether "
+"to discard delivery messages on the receiver nodes. By default, we save all "
+"delivered messages. However, if we only ask the sender to resend their "
+"messages, we can enable this option and discard delivered messages."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:661
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">gc_lag specifies</emphasis> the number of messages "
+"garbage collection lags behind."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:672
+#, no-c-format
+msgid "Other Configuration Options"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:673
+#, no-c-format
+msgid ""
+"In addition to the protocol stacks, you can also configure JGroups network "
+"services in the <literal>Config</literal> element."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:677
+#, no-c-format
+msgid "Group Membership"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:678
+#, no-c-format
+msgid ""
+"The group membership service in the JGroups stack maintains a list of active "
+"nodes. It handles the requests to join and leave the cluster. It also "
+"handles the SUSPECT messages sent by failure detection protocols. All nodes "
+"in the cluster, as well as the load balancer and client side interceptors, "
+"are notified if the group membership changes. The group membership service "
+"is configured in the <literal>pbcast.GMS</literal> sub-element under the "
+"JGroups <literal>Config</literal> element. Here is an example configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:684
+#, no-c-format
+msgid ""
+"&lt;pbcast.GMS print_local_addr=\"true\"\n"
+"    join_timeout=\"3000\"\n"
+"    down_thread=\"false\" up_thread=\"false\"\n"
+"    join_retry_timeout=\"2000\"\n"
+"    shun=\"true\"\n"
+"    view_bundling=\"true\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:688
+#, no-c-format
+msgid ""
+"The configurable attributes in the <literal>pbcast.GMS</literal> element are "
+"as follows."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:691
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">join_timeout</emphasis> specifies the maximum number "
+"of milliseconds to wait for a new node JOIN request to succeed. Retry "
+"afterwards."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:695
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">join_retry_timeout</emphasis> specifies the maximum "
+"number of milliseconds to wait after a failed JOIN to re-submit it."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:699
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">print_local_addr</emphasis> specifies whether to "
+"dump the node's own address to the output when started."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:703
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">shun</emphasis> specifies whether a node should shun "
+"itself if it receives a cluster view that it is not a member node."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:707
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">disable_initial_coord</emphasis> specifies whether "
+"to prevent this node as the cluster coordinator."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:711
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">view_bundling</emphasis> specifies whether multiple "
+"JOIN or LEAVE request arriving at the same time are bundled and handled "
+"together at the same time, only sending out 1 new view / bundle. This is is "
+"more efficient than handling each request separately."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:720
+#, no-c-format
+msgid "Flow Control"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:721
+#, no-c-format
+msgid ""
+"The flow control service tries to adapt the sending data rate and the "
+"receiving data among nodes. If a sender node is too fast, it might overwhelm "
+"the receiver node and result in dropped packets that have to be "
+"retransmitted. In JGroups, the flow control is implemented via a credit-"
+"based system. The sender and receiver nodes have the same number of credits "
+"(bytes) to start with. The sender subtracts credits by the number of bytes "
+"in messages it sends. The receiver accumulates credits for the bytes in the "
+"messages it receives. When the sender's credit drops to a threshold, the "
+"receivers sends some credit to the sender. If the sender's credit is used "
+"up, the sender blocks until it receives credits from the receiver. The flow "
+"control service is configured in the <literal>FC</literal> sub-element under "
+"the JGroups <literal>Config</literal> element. Here is an example "
+"configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:732
+#, no-c-format
+msgid ""
+"&lt;FC max_credits=\"1000000\"\n"
+"down_thread=\"false\" up_thread=\"false\" \n"
+"    min_threshold=\"0.10\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:735
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:831
+#, no-c-format
+msgid ""
+"The configurable attributes in the <literal>FC</literal> element are as "
+"follows."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:738
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">max_credits</emphasis> specifies the maximum number "
+"of credits (in bytes). This value should be smaller than the JVM heap size."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:742
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">min_credits</emphasis> specifies the threshold "
+"credit on the sender, below which the receiver should send in more credits."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:746
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">min_threshold</emphasis> specifies percentage value "
+"of the threshold. It overrides the <literal>min_credits</literal> attribute."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:751
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:775
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:752
+#, no-c-format
+msgid ""
+"Applications that use synchronous group RPC calls primarily do not require "
+"FC protocol in their JGroups protocol stack because synchronous "
+"communication, where the hread that makes the call blocks waiting for "
+"responses from all the members of the group, already slows overall rate of "
+"calls. Even though TCP provides flow control by itself, FC is still required "
+"in TCP based JGroups stacks because of group communication, where we "
+"essentially have to send group messages at the highest speed the slowest "
+"receiver can keep up with. TCP flow control only takes into account "
+"individual node communications and has not a notion of who's the slowest in "
+"the group, which is why FC is required."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:761
+#, no-c-format
+msgid "Fragmentation"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:762
+#, no-c-format
+msgid ""
+"This protocol fragments messages larger than certain size. Unfragments at "
+"the receiver's side. It works for both unicast and multicast messages. It is "
+"configured in the FRAG2 sub-element under the JGroups Config element. Here "
+"is an example configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:765
+#, no-c-format
+msgid ""
+"<![CDATA[        \n"
+"                <FRAG2 frag_size=\"60000\" down_thread=\"false\" up_thread="
+"\"false\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:767
+#, no-c-format
+msgid "The configurable attributes in the FRAG2 element are as follows."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:772
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">frag_size</emphasis> specifies the max frag size in "
+"bytes. Messages larger than that are fragmented."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:776
+#, no-c-format
+msgid ""
+"TCP protocol already provides fragmentation but a fragmentation JGroups "
+"protocol is still needed if FC is used. The reason for this is that if you "
+"send a message larger than FC.max_bytes, FC protocol would block. So, "
+"frag_size within FRAG2 needs to be set to always be less than FC.max_bytes."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:785
+#, no-c-format
+msgid "State Transfer"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:786
+#, no-c-format
+msgid ""
+"The state transfer service transfers the state from an existing node (i.e., "
+"the cluster coordinator) to a newly joining node. It is configured in the "
+"<literal>pbcast.STATE_TRANSFER</literal> sub-element under the JGroups "
+"<literal>Config</literal> element. It does not have any configurable "
+"attribute. Here is an example configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:790
+#, no-c-format
+msgid ""
+"&lt;pbcast.STATE_TRANSFER down_thread=\"false\" up_thread=\"false\"/&gt;"
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:794
+#, no-c-format
+msgid "Distributed Garbage Collection"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:795
+#, no-c-format
+msgid ""
+"In a JGroups cluster, all nodes have to store all messages received for "
+"potential retransmission in case of a failure. However, if we store all "
+"messages forever, we will run out of memory. So, the distributed garbage "
+"collection service in JGroups periodically purges messages that have seen by "
+"all nodes from the memory in each node. The distributed garbage collection "
+"service is configured in the <literal>pbcast.STABLE</literal> sub-element "
+"under the JGroups <literal>Config</literal> element. Here is an example "
+"configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:799
+#, no-c-format
+msgid ""
+"&lt;pbcast.STABLE stability_delay=\"1000\"\n"
+"    desired_avg_gossip=\"5000\" \n"
+"    down_thread=\"false\" up_thread=\"false\"\n"
+"       max_bytes=\"400000\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:801
+#, no-c-format
+msgid ""
+"The configurable attributes in the <literal>pbcast.STABLE</literal> element "
+"are as follows."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:804
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">desired_avg_gossip</emphasis> specifies intervals "
+"(in milliseconds) of garbage collection runs. Value <literal>0</literal> "
+"disables this service."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:809
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">max_bytes</emphasis> specifies the maximum number of "
+"bytes received before the cluster triggers a garbage collection run. Value "
+"<literal>0</literal> disables this service."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:814
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">stability_delay</emphasis> specifies delay before we "
+"send STABILITY msg (give others a change to send first). If used together "
+"with max_bytes, this attribute should be set to a small number."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:818
+#, no-c-format
+msgid ""
+"Set the <literal>max_bytes</literal> attribute when you have a high traffic "
+"cluster."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:823
+#, no-c-format
+msgid "Merging"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:824
+#, no-c-format
+msgid ""
+"When a network error occurs, the cluster might be partitioned into several "
+"different partitions. JGroups has a MERGE service that allows the "
+"coordinators in partitions to communicate with each other and form a single "
+"cluster back again. The flow control service is configured in the "
+"<literal>MERGE2</literal> sub-element under the JGroups <literal>Config</"
+"literal> element. Here is an example configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:828
+#, no-c-format
+msgid ""
+"&lt;MERGE2 max_interval=\"10000\"\n"
+"    min_interval=\"2000\"\n"
+"    down_thread=\"false\" up_thread=\"false\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:834
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">max_interval</emphasis> specifies the maximum number "
+"of milliseconds to send out a MERGE message."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:838
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">min_interval</emphasis> specifies the minimum number "
+"of milliseconds to send out a MERGE message."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:842
+#, no-c-format
+msgid ""
+"JGroups chooses a random value between <literal>min_interval</literal> and "
+"<literal>max_interval</literal> to send out the MERGE message."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:845
+#, no-c-format
+msgid ""
+"The cluster states are not merged in a merger. This has to be done by the "
+"application. If <literal>MERGE2</literal> is used in conjunction with "
+"TCPPING, the <literal>initial_hosts</literal> attribute must contain all the "
+"nodes that could potentially be merged back, in order for the merge process "
+"to work properly. Otherwise, the merge process would not merge all the nodes "
+"even though shunning is disabled. Alternatively use MPING, which is commonly "
+"used with TCP to provide multicast member discovery capabilities, instead of "
+"TCPPING to avoid having to specify all the nodes."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:851
+#, no-c-format
+msgid "Binding JGroups Channels to a particular interface"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:852
+#, no-c-format
+msgid ""
+"In the Transport Protocols section above, we briefly touched on how the "
+"interface to which JGroups will bind sockets is configured. Let's get into "
+"this topic in more depth:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:855
+#, no-c-format
+msgid ""
+"First, it's important to understand that the value set in any bind_addr "
+"element in an XML configuration file will be ignored by JGroups if it finds "
+"that system property jgroups.bind_addr (or a deprecated earlier name for the "
+"same thing, <literal>bind.address</literal>) has been set. The system "
+"property trumps XML. If JBoss AS is started with the -b (a.k.a. --host) "
+"switch, the AS will set <literal>jgroups.bind_addr</literal> to the "
+"specified value."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:858
+#, no-c-format
+msgid ""
+"Beginning with AS 4.2.0, for security reasons the AS will bind most services "
+"to localhost if -b is not set. The effect of this is that in most cases "
+"users are going to be setting -b and thus jgroups.bind_addr is going to be "
+"set and any XML setting will be ignored."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:861
+#, no-c-format
+msgid ""
+"So, what are <emphasis>best practices</emphasis> for managing how JGroups "
+"binds to interfaces?"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:866
+#, no-c-format
+msgid ""
+"Binding JGroups to the same interface as other services. Simple, just use -b:"
+msgstr ""
+
+#. Tag: screen
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:868
+#, no-c-format
+msgid "./run.sh -b 192.168.1.100 -c all"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:872
+#, no-c-format
+msgid ""
+"Binding services (e.g., JBoss Web) to one interface, but use a different one "
+"for JGroups: <screen>./run.sh -b 10.0.0.100 -Djgroups."
+"bind_addr=192.168.1.100 -c all</screen> Specifically setting the system "
+"property overrides the -b value. This is a common usage pattern; put client "
+"traffic on one network, with intra-cluster traffic on another."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:880
+#, no-c-format
+msgid ""
+"Binding services (e.g., JBoss Web) to all interfaces. This can be done like "
+"this: <screen>./run.sh -b 0.0.0.0 -c all</screen> However, doing this will "
+"not cause JGroups to bind to all interfaces! Instead , JGroups will bind to "
+"the machine's default interface. See the Transport Protocols section for how "
+"to tell JGroups to receive or send on all interfaces, if that is what you "
+"really want."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:888
+#, no-c-format
+msgid ""
+"Binding services (e.g., JBoss Web) to all interfaces, but specify the "
+"JGroups interface: <screen>./run.sh -b 0.0.0.0 -Djgroups."
+"bind_addr=192.168.1.100 -c all</screen> Again, specifically setting the "
+"system property overrides the -b value."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:896
+#, no-c-format
+msgid "Using different interfaces for different channels:"
+msgstr ""
+
+#. Tag: screen
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:898
+#, no-c-format
+msgid "./run.sh -b 10.0.0.100 -Djgroups.ignore.bind_addr=true -c all"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:903
+#, no-c-format
+msgid ""
+"This setting tells JGroups to ignore the <literal>jgroups.bind_addr</"
+"literal> system property, and instead use whatever is specfied in XML. You "
+"would need to edit the various XML configuration files to set the "
+"<literal>bind_addr</literal> to the desired interfaces."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:908
+#, no-c-format
+msgid "Isolating JGroups Channels"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:909
+#, no-c-format
+msgid ""
+"Within JBoss AS, there are a number of services that independently create "
+"JGroups channels -- 3 different JBoss Cache services (used for HttpSession "
+"replication, EJB3 SFSB replication and EJB3 entity replication) along with "
+"the general purpose clustering service called HAPartition that underlies "
+"most other JBossHA services."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:912
+#, no-c-format
+msgid ""
+"It is critical that these channels only communicate with their intended "
+"peers; not with the channels used by other services and not with channels "
+"for the same service opened on machines not meant to be part of the group. "
+"Nodes improperly communicating with each other is one of the most common "
+"issues users have with JBoss AS clustering."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:915
+#, no-c-format
+msgid ""
+"Whom a JGroups channel will communicate with is defined by its group name, "
+"multicast address, and multicast port, so isolating JGroups channels comes "
+"down to ensuring different channels use different values for the group name, "
+"multicast address and multicast port."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:918
+#, no-c-format
+msgid ""
+"To isolate JGroups channels for different services on the same set of AS "
+"instances from each other, you MUST change the group name and the multicast "
+"port. In other words, each channel must have its own set of values."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:921
+#, no-c-format
+msgid ""
+"For example, say we have a production cluster of 3 machines, each of which "
+"has an HAPartition deployed along with a JBoss Cache used for web session "
+"clustering. The HAPartition channels should not communicate with the JBoss "
+"Cache channels. They should use a different group name and multicast port. "
+"They can use the same multicast address, although they don't need to."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:924
+#, no-c-format
+msgid ""
+"To isolate JGroups channels for the same service from other instances of the "
+"service on the network, you MUST change ALL three values. Each channel must "
+"have its own group name, multicast address, and multicast port."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:927
+#, no-c-format
+msgid ""
+"For example, say we have a production cluster of 3 machines, each of which "
+"has an HAPartition deployed. On the same network there is also a QA cluster "
+"of 3 machines, which also has an HAPartition deployed. The HAPartition group "
+"name, multicast address, and multicast port for the production machines must "
+"be different from those used on the QA machines."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:933
+#, no-c-format
+msgid "Changing the Group Name"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:934
+#, no-c-format
+msgid ""
+"The group name for a JGroups channel is configured via the service that "
+"starts the channel. Unfortunately, different services use different "
+"attribute names for configuring this. For HAPartition and related services "
+"configured in the deploy/cluster-service.xml file, this is configured via a "
+"PartitionName attribute. For JBoss Cache services, the name of the attribute "
+"is ClusterName."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:937
+#, no-c-format
+msgid ""
+"Starting with JBoss AS 4.0.4, for the HAPartition and all the standard JBoss "
+"Cache services, we make it easy for you to create unique groups names simply "
+"by using the -g (a.k.a. –partition) switch when starting JBoss: <screen>./"
+"run.sh -g QAPartition -b 192.168.1.100 -c all</screen> This switch sets the "
+"jboss.partition.name system property, which is used as a component in the "
+"configuration of the group name in all the standard clustering configuration "
+"files. For example,"
+msgstr ""
+
+#. Tag: screen
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:941
+#, no-c-format
+msgid ""
+"<![CDATA[<attribute name=\"ClusterName\">Tomcat-${jboss.partition.name:"
+"Cluster}</attribute>]]>"
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:947
+#, no-c-format
+msgid "Changing the multicast address and port"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:948
+#, no-c-format
+msgid ""
+"The -u (a.k.a. --udp) command line switch may be used to control the "
+"multicast address used by the JGroups channels opened by all standard AS "
+"services. <screen><![CDATA[/run.sh -u 230.1.2.3 -g QAPartition -b "
+"192.168.1.100 -c all]]></screen> This switch sets the jboss.partition."
+"udpGroup system property, which you can see referenced in all of the "
+"standard protocol stack configs in JBoss AS:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:954
+#, no-c-format
+msgid ""
+"<![CDATA[<Config>\n"
+"<UDP mcast_addr=\"${jboss.partition.udpGroup:228.1.2.3}\"\n"
+" ....]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:955
+#, no-c-format
+msgid ""
+"Unfortunately, setting the multicast ports is not so simple. As described "
+"above, by default there are four separate JGroups channels in the standard "
+"JBoss AS all configuration, and each should be given a unique port. There "
+"are no command line switches to set these, but the standard configuration "
+"files do use system properties to set them. So, they can be configured from "
+"the command line by using -D. For example,"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:958
+#, no-c-format
+msgid ""
+"/run.sh -u 230.1.2.3 -g QAPartition -Djboss.hapartition.mcast_port=12345 -"
+"Djboss.webpartition.mcast_port=23456 -Djboss.ejb3entitypartition."
+"mcast_port=34567 -Djboss.ejb3sfsbpartition.mcast_port=45678 -b 192.168.1.100 "
+"-c all"
+msgstr ""
+
+#. Tag: emphasis
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:960
+#, no-c-format
+msgid "Why isn't it sufficient to change the group name?"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:961
+#, no-c-format
+msgid ""
+"If channels with different group names share the same multicast address and "
+"port, the lower level JGroups protocols in each channel will see, process "
+"and eventually discard messages intended for the other group. This will at a "
+"minimum hurt performance and can lead to anomalous behavior."
+msgstr ""
+
+#. Tag: emphasis
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:965
+#, no-c-format
+msgid "Why do I need to change the multicast port if I change the address?"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:966
+#, no-c-format
+msgid ""
+"It should be sufficient to just change the address, but there is a problem "
+"on several operating systems whereby packets addressed to a particular "
+"multicast port are delivered to all listeners on that port, regardless of "
+"the multicast address they are listening on. So the recommendation is to "
+"change both the address and the port."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:972
+#, no-c-format
+msgid "JGroups Troubleshooting"
+msgstr ""
+
+#. Tag: emphasis
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:973
+#, no-c-format
+msgid "Nodes do not form a cluster"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:975
+#, no-c-format
+msgid ""
+"Make sure your machine is set up correctly for IP multicast. There are 2 "
+"test programs that can be used to detect this: McastReceiverTest and "
+"McastSenderTest. Go to the <literal>$JBOSS_HOME/server/all/lib</literal> "
+"directory and start McastReceiverTest, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:977
+#, no-c-format
+msgid ""
+"java -cp jgroups.jar org.jgroups.tests.McastReceiverTest -mcast_addr "
+"224.10.10.10 -port 5555"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:980
+#, no-c-format
+msgid "Then in another window start <literal>McastSenderTest</literal>:"
+msgstr ""
+
+#. Tag: screen
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:982
+#, no-c-format
+msgid ""
+"java -cp jgroups.jar org.jgroups.tests.McastSenderTest -mcast_addr "
+"224.10.10.10 -port 5555"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:985
+#, no-c-format
+msgid ""
+"If you want to bind to a specific network interface card (NIC), use "
+"<literal>-bind_addr 192.168.0.2</literal>, where 192.168.0.2 is the IP "
+"address of the NIC to which you want to bind. Use this parameter in both the "
+"sender and the receiver."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:988
+#, no-c-format
+msgid ""
+"You should be able to type in the <literal>McastSenderTest</literal> window "
+"and see the output in the <literal>McastReceiverTest</literal> window. If "
+"not, try to use -ttl 32 in the sender. If this still fails, consult a system "
+"administrator to help you setup IP multicast correctly, and ask the admin to "
+"make sure that multicast will work on the interface you have chosen or, if "
+"the machines have multiple interfaces, ask to be told the correct interface. "
+"Once you know multicast is working properly on each machine in your cluster, "
+"you can repeat the above test to test the network, putting the sender on one "
+"machine and the receiver on another."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:995
+#, no-c-format
+msgid "Causes of missing heartbeats in FD"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:996
+#, no-c-format
+msgid ""
+"Sometimes a member is suspected by FD because a heartbeat ack has not been "
+"received for some time T (defined by timeout and max_tries). This can have "
+"multiple reasons, e.g. in a cluster of A,B,C,D; C can be suspected if (note "
+"that A pings B, B pings C, C pings D and D pings A):"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:1002
+#, no-c-format
+msgid ""
+"B or C are running at 100% CPU for more than T seconds. So even if C sends a "
+"heartbeat ack to B, B may not be able to process it because it is at 100%"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:1007
+#, no-c-format
+msgid "B or C are garbage collecting, same as above."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:1012
+#, no-c-format
+msgid "A combination of the 2 cases above"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:1017
+#, no-c-format
+msgid ""
+"The network loses packets. This usually happens when there is a lot of "
+"traffic on the network, and the switch starts dropping packets (usually "
+"broadcasts first, then IP multicasts, TCP packets last)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JBoss_Cache_JGroups.xml:1022
+#, no-c-format
+msgid ""
+"B or C are processing a callback. Let's say C received a remote method call "
+"over its channel and takes T+1 seconds to process it. During this time, C "
+"will not process any other messages, including heartbeats, and therefore B "
+"will not receive the heartbeat ack and will suspect C."
+msgstr ""

Added: projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JMS.po
===================================================================
--- projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JMS.po	                        (rev 0)
+++ projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JMS.po	2008-01-21 05:09:32 UTC (rev 69162)
@@ -0,0 +1,511 @@
+# Language /tmp/mike/JBEAP420/JBAS translations for JBEAP package.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBEAP 420\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-12-10 22:33+0000\n"
+"PO-Revision-Date: 2001-02-09 01:25+0100\n"
+"Last-Translator: Automatically generated\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
+#: Clustering_Guide_JMS.xml:5
+#, no-c-format
+msgid "Clustered JMS Services"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:7
+#, no-c-format
+msgid ""
+"JBoss AS 3.2.4 and above support high availability JMS (HA-JMS) services in "
+"the <literal>all</literal> server configuration. In the current production "
+"release of JBoss AS, the HA-JMS service is implemented as a clustered "
+"singleton fail-over service."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:12
+#, no-c-format
+msgid ""
+"If you are willing to configure HA-JMS yourself, you can get it to work with "
+"earlier versions of JBoss AS. We have a customer who uses HA-JMS "
+"successfully in JBoss AS 3.0.7. Please contact JBoss support for more "
+"questions."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:16
+#, no-c-format
+msgid ""
+"The HA-JMS in JBoss AS 4.2.2 and earlier is based on the JBoss MQ messaging "
+"product. In later releases of the AS, JBoss MQ will be replaced by the newer "
+"JBoss Messaging project. JBoss Messaging's clustering implementation is "
+"considerably different from HA-JMS based on JBoss MQ; most notably it is not "
+"based on a singleton service only running on one node in the cluster."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JMS.xml:25
+#, no-c-format
+msgid "High Availability Singleton Fail-over"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:26
+#, no-c-format
+msgid ""
+"The JBoss HA-JMS service (i.e., message queues topics and supporting "
+"services) only runs on a single node (i.e., the master node) in the cluster "
+"at any given time. If that node fails, the cluster simply elects another "
+"node to run the JMS service, and the queues, topics and supporting services "
+"are deployed on that server (fail-over). This setup provides redundancy "
+"against server failures but does not reduce the work load on the JMS server "
+"node."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:28
+#, no-c-format
+msgid ""
+"While you cannot load balance HA-JMS queues (there is only one master node "
+"that runs the queues), you can load balance the MDBs that process messages "
+"from those queues (see <xref linkend=\"clustering-jms-loadbalanced\"/>)."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JMS.xml:33
+#, no-c-format
+msgid "Server Side Configuration"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:35
+#, no-c-format
+msgid ""
+"The biggest configuration difference between HA-JMS in the all configuration "
+"and the non-HA version found in the default configuration is the location of "
+"most configuration files. For HA-JMS, most configuration files are found in "
+"the deploy-hasingleton/jms directory, not in deploy/jms. Your queues and "
+"topics must be deployed in deploy-hasingleton (or a subdirectory of it like "
+"deploy-hasingleton/jms.) Application components that act as clients to HA-"
+"JMS (e.g., MDBs and other JMS clients) do not need to be deployed in deploy-"
+"hasingleton. They should only be deployed there if you only want them "
+"running on one node in the cluster at a time."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:38
+#, no-c-format
+msgid ""
+"To use the singleton fail-over HA-JMS service, you must configure JMS "
+"services identically on all nodes in the cluster. That includes all JMS "
+"related service MBeans and all deployed queues and topics. However, "
+"applications that use JMS (e.g., MDBs and other JMS clients) do not need to "
+"be deployed identically across the cluster."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:44
+#, no-c-format
+msgid ""
+"The JMS server is configured to persist its data in the <literal>DefaultDS</"
+"literal>. By default, that is the embedded HSQLDB. However, for the HA-JMS "
+"service fail-over to work, the newly started HA-JMS server needs to be able "
+"to find the data persisted by the old server. That's not likely to happen if "
+"the data is persisted in files written by the old servers' HSQLDB. In almost "
+"any cluster environments, all nodes need to persist data against a shared "
+"database. So, the first thing to do before you start clustered JMS is to "
+"setup a shared database for JMS. You need to do the following:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:50
+#, no-c-format
+msgid ""
+"Configure <literal>DefaultDS</literal> to point to the database server of "
+"your choice. That is to replace the <literal>deploy/hsqlsb-ds.xml</literal> "
+"file with the <literal>xxx-ds.xml</literal> file in the <literal>docs/"
+"examples/jca</literal> directory, where <literal>xxx</literal> is the name "
+"of the target shared database (e.g., <literal>mysql-ds.xml</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:57
+#, no-c-format
+msgid ""
+"Replace the <literal>hsqldb-jdbc2-service.xml</literal> file under the "
+"<literal>server/all/deploy-hasingleton/jms</literal> directory with one "
+"tuned to the specific database. For example if you use MySQL the file is "
+"<literal>mysql-jdbc2-service.xml</literal>. Configuration files for a number "
+"of RDBMS are bundled with the JBoss AS distribution. They can be found under "
+"<literal>docs/examples/jms</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:66
+#, no-c-format
+msgid ""
+"There is no need to replace the <literal>hsqldb-jdbc-state-service.xml</"
+"literal> file under the <literal>server/all/deploy-hasingleton/jms</literal> "
+"directory. Despite the <literal>hsql</literal> in its name, it works with "
+"all SQL92 compliant databases, including HSQL, MySQL, SQL Server, and more. "
+"It automatically uses the <literal>DefaultDS</literal> for storage, which we "
+"configured above."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JMS.xml:77
+#, no-c-format
+msgid "Non-MDB HA-JMS Clients"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:79
+#, no-c-format
+msgid ""
+"The HA-JMS client is different from regular JMS clients in two important "
+"aspects."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:83
+#, no-c-format
+msgid ""
+"The HA-JMS client must look up JMS connection factories as well as queues "
+"and topicsusing HA-JNDI (the default port is 1100). This ensures the factory/"
+"queue/topic can be found no matter which cluster node is running the HA-JMS "
+"server."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:91
+#, no-c-format
+msgid ""
+"If the client is a J2EE component (session bean or web application) running "
+"inside the AS, the lookup via HA-JNDI can be configured using the "
+"component's deployment descriptors: In the standard deployment descriptor "
+"(ejb-jar.xml or web.xml):"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JMS.xml:99
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<resource-ref>\n"
+"         <res-ref-name>jms/ConnectionFactory</res-ref-name>\n"
+"         <res-type>javax.jms.QueueConnectionFactory</res-type>\n"
+"         <res-auth>Container</res-auth>\n"
+"</resource-ref>\n"
+"         \n"
+"<resource-ref>\n"
+"         <res-ref-name>jms/Queue</res-ref-name>\n"
+"         <res-type>javax.jms.Queue</res-type>\n"
+"         <res-auth>Container</res-auth>\n"
+"</resource-ref>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:101
+#, no-c-format
+msgid "And in the JBoss-specific descriptor (jboss.xml or jboss-web.xml):"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JMS.xml:105
+#, no-c-format
+msgid ""
+"<![CDATA[ \n"
+"<resource-ref>\n"
+"         <res-ref-name>jms/ConnectionFactory</res-ref-name>\n"
+"        <!-- Use the JMS Resource Adapter, let it deal\n"
+"         with knowing where the JMS server is -->\n"
+"        <jndi-name>java:/JmsXA</jndi-name>\n"
+" </resource-ref>\n"
+" \n"
+"<resource-ref>\n"
+"         <res-ref-name>jms/Queue</res-ref-name>\n"
+"         <!-- Use HA-JNDI so we can find the queue on any node -->\n"
+"         <jndi-name>jnp://localhost:1100/queue/A</jndi-name>\n"
+"</resource-ref>]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:110
+#, no-c-format
+msgid ""
+"The HA-JMS client must deal with exceptions that will occur on the JMS "
+"connection if server failover occurs. Unlike, for example, clustered EJB "
+"proxies, the JMS connection object does not include automatic failover "
+"logic. If the HA-JMS service fails over to a different master node, all "
+"client operations on the current connection will fail with a JMSException. "
+"To deal with this:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:118
+#, no-c-format
+msgid ""
+"If the client is running inside the application server, the client should "
+"obtain the ConnectionFactory by looking up java:/JmsXAin JNDI. This will "
+"find the JBoss JMS Resource Adapter; the resource adapter will handle the "
+"task of detecting server failover and reconnecting to the new server when it "
+"starts."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:122
+#, no-c-format
+msgid ""
+"For clients outside the application server, the best approach is to register "
+"an ExceptionListener with the connection; the listener will get a callback "
+"if there is an exception on the connection. The callback should then handle "
+"the task of closing the old connection and reconnecting. Following is a "
+"example application that continuously sends messages to a queue, handling "
+"any exceptions that occur:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JMS.xml:128
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"package com.test.hajms.client;\n"
+"\n"
+"import javax.naming.InitialContext;\n"
+"import javax.jms.ConnectionFactory;\n"
+"import javax.jms.Destination;\n"
+"import javax.jms.Connection;\n"
+"import javax.jms.Session;\n"
+"import javax.jms.MessageProducer;\n"
+"import javax.jms.Message;\n"
+"import javax.jms.ExceptionListener;\n"
+"import javax.jms.JMSException;\n"
+"import javax.jms.DeliveryMode;\n"
+"\n"
+"import org.apache.commons.logging.Log;\n"
+"import org.apache.commons.logging.LogFactory;\n"
+" \n"
+"public class FailoverJMSClient\n"
+"{\n"
+"private static final Log log = LogFactory.getLog(FailoverJMSClient.class);\n"
+"\n"
+"public static final int NUM_RETRIES = 3;\n"
+"\n"
+"volatile boolean doSend = true;\n"
+"ConnectionFactory connectionFactory;\n"
+"Destination queue;\n"
+"Connection connection;\n"
+"Session session;\n"
+"MessageProducer producer;\n"
+"\n"
+"\n"
+"public static void main(String[] args) throws Exception\n"
+"{\n"
+"FailoverJMSClient jmsClient = new FailoverJMSClient();\n"
+"jmsClient.setUpJMS();\n"
+"jmsClient.sendMessages();\n"
+"}\n"
+"\n"
+"\n"
+"public boolean setUpJMS()\n"
+"{\n"
+"InitialContext ic;\n"
+"try\n"
+"{\n"
+"// assume jndi.properties is configured for HA-JNDI\n"
+"ic = new InitialContext();\n"
+"connectionFactory = (ConnectionFactory)ic.lookup(\"ConnectionFactory\");\n"
+"queue = (Destination)ic.lookup(\"queue/FailoverTestQueue\");\n"
+"connection = connectionFactory.createConnection();\n"
+"try\n"
+"{\n"
+"log.debug(\"Connection created ...\");\n"
+"\n"
+"// KEY - register for exception callbacks\n"
+"connection.setExceptionListener(new ExceptionListenerImpl());\n"
+"\n"
+"session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);\n"
+"log.debug(\"Session created ...\");\n"
+"producer = session.createProducer(queue);\n"
+"\n"
+"producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);\n"
+"log.debug(\"Producer created ...\");\n"
+"\n"
+"return true;\n"
+"}\n"
+"catch (Exception e)\n"
+"{\n"
+"// We failed so close the connection\n"
+"try\n"
+"{\n"
+"connection.close();\n"
+"}\n"
+"catch (JMSException ignored)\n"
+"{\n"
+"// Pointless\n"
+"}\n"
+"// Rethrow the initial problem to where we will log it\n"
+"throw e;\n"
+"} \n"
+"finally\n"
+"{\n"
+"// And close the initial context\n"
+"// We don't want to wait for the garbage collector to close it\n"
+"// otherwise we'll have useless hanging network connections\n"
+"ic.close();\n"
+"}\n"
+"}\n"
+"catch (Exception e)\n"
+"{\n"
+"log.error(\"Error setting up JMS\", e);\n"
+"return false;\n"
+"}\n"
+"}\n"
+"\n"
+"public void sendMessages()\n"
+"{\n"
+"int cnt = 0;\n"
+"while(doSend)\n"
+"{\n"
+"try\n"
+"{\n"
+"Thread.sleep(100);\n"
+"\n"
+"Message m = session.createObjectMessage(new Integer(cnt++));\n"
+"producer.send(m);\n"
+"\n"
+"log.trace(\"message \" + cnt + \" sent\");\n"
+"\n"
+"}\n"
+"catch(Exception e)\n"
+"{\n"
+"cnt--;\n"
+"log.error(e.getMessage());\n"
+"}\n"
+"}\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"private class ExceptionListenerImpl implements ExceptionListener\n"
+"{\n"
+"public void onException(JMSException e)\n"
+"{\n"
+"                         \n"
+"for(int i = 0; i < NUM_RETRIES; i++)\n"
+"            {\n"
+"            log.warn(\"Connection has problems, trying to re-create it, "
+"attempt \" +\n"
+"            (i + 1) + \" ...\");\n"
+"            \n"
+"            try \n"
+"            {\n"
+"            connection.close();  // unregisters the ExceptionListener\n"
+"            }\n"
+"            catch(Exception e2) {\n"
+"            // I will get an Exception anyway, since the connection to "
+"the                     \n"
+"            //server is broken, but close() frees up resources associated \n"
+"            // with the connection\n"
+"            }\n"
+"            \n"
+"            boolean setupOK = setUpJMS();\n"
+"            \n"
+"            if (setupOK)\n"
+"            {\n"
+"            log.info(\"Connection re-established\");\n"
+"            return;\n"
+"            }\n"
+"            else\n"
+"            {\n"
+"            log.warn(\"Re-creating connection failed, retrying ...\");\n"
+"           }\n"
+"            }\n"
+"            \n"
+"            log.error(\"Cannot re-establish connection, giving up ...\");\n"
+"            doSend = false;\n"
+"            }\n"
+"            }\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JMS.xml:132
+#, no-c-format
+msgid "MDBs and HA-JMS Failover"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:133
+#, no-c-format
+msgid ""
+"When you deploy an MDB in JBoss, JBoss' MDB container handles for you all "
+"issues associated with finding the cluster singleton HA-JMS server and with "
+"reconnecting to it if it fails over."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JMS.xml:143
+#, no-c-format
+msgid "Load Balanced HA-JMS MDBs"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:144
+#, no-c-format
+msgid ""
+"While the HA-JMS queues and topics only run on a single node at a time, MDBs "
+"on multiple nodes can receive and process messages from the HA-JMS master "
+"node. The contested queues and topics result in load balancing behavior for "
+"MDBs. To enable loading balancing for MDBs, you can specify a receiver for "
+"the queue. The receiver records which node is waiting for a message and in "
+"which order the messages should be processed. JBoss provides three receiver "
+"implementations."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:151
+#, no-c-format
+msgid ""
+"The <literal>org.jboss.mq.server.ReceiversImpl</literal> is the default "
+"implementation using a <literal>HashSet</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:155
+#, no-c-format
+msgid ""
+"The <literal>org.jboss.mq.server.ReceiversImplArrayList</literal> is the "
+"implementation using an <literal>ArrayList</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:159
+#, no-c-format
+msgid ""
+"The <literal>org.jboss.mq.server.ReceiversImplLinkedList</literal> is the "
+"implementation using a <literal>LinkedList</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JMS.xml:163
+#, no-c-format
+msgid ""
+"You can specify the receiver implementation class name as an attribute in "
+"the MBean that defines the permanent JMS <literal>Queue</literal> or "
+"<literal>DestinationManager</literal> on each node. For best load balancing "
+"performance, we suggest you to use the <literal>ReceiversImplArrayList</"
+"literal> or <literal>ReceiversImplLinkedList</literal> implementations due "
+"to an undesirable implementation detail of <literal>HashSet</literal> in the "
+"JVM."
+msgstr ""

Added: projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JNDI.po
===================================================================
--- projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JNDI.po	                        (rev 0)
+++ projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Clustering_Guide_JNDI.po	2008-01-21 05:09:32 UTC (rev 69162)
@@ -0,0 +1,784 @@
+# Language /tmp/mike/JBEAP420/JBAS translations for JBEAP package.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBEAP 420\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-12-10 22:33+0000\n"
+"PO-Revision-Date: 2001-02-09 01:25+0100\n"
+"Last-Translator: Automatically generated\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
+#: Clustering_Guide_JNDI.xml:5
+#, no-c-format
+msgid "Clustered JNDI Services"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:6
+#, no-c-format
+msgid ""
+"JNDI is one of the most important services provided by the application "
+"server. The JBoss HA-JNDI (High Availability JNDI) service brings the "
+"following features to JNDI:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:10
+#, no-c-format
+msgid ""
+"Transparent failover of naming operations. If an HA-JNDI naming Context is "
+"connected to the HA-JNDI service on a particular JBoss AS instance, and that "
+"service fails or is shut down, the HA-JNDI client can transparently fail "
+"over to another AS instance."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:15
+#, no-c-format
+msgid ""
+"Load balancing of naming operations. An HA-JNDI naming Context will "
+"automatically load balance its requests across all the HA-JNDI servers in "
+"the cluster."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:20
+#, no-c-format
+msgid "Automatic client discovery of HA-JNDI servers (using multicast)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:25
+#, no-c-format
+msgid ""
+"Unified view of JNDI trees cluster-wide. Client can connect to the HA-JNDI "
+"service running on any node in the cluster and find objects bound in JNDI on "
+"any other node. This is accomplished via two mechanisms:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:33
+#, no-c-format
+msgid ""
+"Cross-cluster lookups. A client can perform a lookup and the server side HA-"
+"JNDI service has the ability to find things bound in regular JNDI on any "
+"node in the cluster."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:37
+#, no-c-format
+msgid ""
+"A replicated cluster-wide context tree. An object bound into the HA-JNDI "
+"service will be replicated around the cluster, and a copy of that object "
+"will be available in-VM on each node in the cluster."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:46
+#, no-c-format
+msgid ""
+"JNDI is a key component for many other interceptor-based clustering "
+"services: those services register themselves with the JNDI so that the "
+"client can lookup their proxies and make use of their services. HA-JNDI "
+"completes the picture by ensuring that clients have a highly-available means "
+"to look up those proxies. However, it is important to understand that using "
+"HA-JNDI (or not) has no effect whatsoever on the clustering behavior of the "
+"objects that are looked up. To illustrate:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:51
+#, no-c-format
+msgid ""
+"If an EJB is not configured as clustered, looking up the EJB via HA-JNDI "
+"does not somehow result in the addition of clustering capabilities (load "
+"balancing of EJB calls, transparent failover, state replication) to the EJB."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:56
+#, no-c-format
+msgid ""
+"If an EJB is configured as clustered, looking up the EJB via regular JNDI "
+"instead of HA-JNDI does not somehow result in the removal of the bean "
+"proxy's clustering capabilities."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JNDI.xml:66
+#, no-c-format
+msgid "How it works"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:67
+#, no-c-format
+msgid ""
+"The JBoss client-side HA-JNDI naming Context is based on the client-side "
+"interceptor architecture. The client obtains an HA-JNDI proxy object (via "
+"the InitialContext object) and invokes JNDI lookup services on the remote "
+"server through the proxy. The client specifies that it wants an HA-JNDI "
+"proxy by configuring the naming properties used by the InitialContext "
+"object. This is covered in detail in the “Client Configuration” section. "
+"Other than the need to ensure the appropriate naming properties are provided "
+"to the InitialContext, the fact that the naming Context is using HA-JNDI is "
+"completely transparent to the client."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:70
+#, no-c-format
+msgid ""
+"On the server side, he the HA-JNDI service maintains a cluster-wide context "
+"tree. The cluster wide tree is always available as long as there is one node "
+"left in the cluster. Each node in the cluster also maintains its own local "
+"JNDI context tree. The HA-JNDI service on that node is able to find objects "
+"bound into the local JNDI context tree. An application can bind its objects "
+"to either tree. The design rationale for this architecture is as follows:"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:75
+#, no-c-format
+msgid ""
+"It avoids migration issues with applications that assume that their JNDI "
+"implementation is local. This allows clustering to work out-of-the-box with "
+"just a few tweaks of configuration files."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:81
+#, no-c-format
+msgid ""
+"In a homogeneous cluster, this configuration actually cuts down on the "
+"amount of network traffic. A homogenous cluster is one where the same types "
+"of objects are bound under the same names on each node."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:86
+#, no-c-format
+msgid ""
+"Designing it in this way makes the HA-JNDI service an optional service since "
+"all underlying cluster code uses a straight new <literal>InitialContext()</"
+"literal> to lookup or create bindings."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:92
+#, no-c-format
+msgid ""
+"On the server side, a naming <literal>Context</literal> obtained via a call "
+"to new <literal>InitialContext()</literal> will be bound to the local-only, "
+"non-cluster-wide JNDI Context (this is actually basic JNDI). So, all EJB "
+"homes and such will not be bound to the cluster-wide JNDI Context, but "
+"rather, each home will be bound into the local JNDI."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:95
+#, no-c-format
+msgid ""
+"When a remote client does a lookup through HA-JNDI, HA-JNDI will delegate to "
+"the local JNDI Context when it cannot find the object within the global "
+"cluster-wide Context. The detailed lookup rule is as follows."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:100
+#, no-c-format
+msgid "If the binding is available in the cluster-wide JNDI tree, return it."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:103
+#, no-c-format
+msgid ""
+"If the binding is not in the cluster-wide tree, delegate the lookup query to "
+"the local JNDI service and return the received answer if available."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:106
+#, no-c-format
+msgid ""
+"If not available, the HA-JNDI services asks all other nodes in the cluster "
+"if their local JNDI service owns such a binding and returns the answer from "
+"the set it receives."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:109
+#, no-c-format
+msgid ""
+"If no local JNDI service owns such a binding, a "
+"<literal>NameNotFoundException</literal> is finally raised."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:113
+#, no-c-format
+msgid ""
+"In practice, objects are rarely bound in the cluster-wide JNDI tree; rather "
+"they are bound in the local JNDI tree. For example, when EJBs are deployed, "
+"their proxies are always bound in local JNDI, not HA-JNDI. So, an EJB home "
+"lookup done through HA-JNDI will always be delegated to the local JNDI "
+"instance."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JNDI.xml:117 Clustering_Guide_JNDI.xml:124
+#: Clustering_Guide_JNDI.xml:130
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:118
+#, no-c-format
+msgid ""
+"If different beans (even of the same type, but participating in different "
+"clusters) use the same JNDI name, this means that each JNDI server will have "
+"a logically different \"target\" bound (JNDI on node 1 will have a binding "
+"for bean A and JNDI on node 2 will have a binding, under the same name, for "
+"bean B). Consequently, if a client performs a HA-JNDI query for this name, "
+"the query will be invoked on any JNDI server of the cluster and will return "
+"the locally bound stub. Nevertheless, it may not be the correct stub that "
+"the client is expecting to receive! So, it is always best practice to ensure "
+"that across the cluster different names are used for logically different "
+"bindings."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:125
+#, no-c-format
+msgid ""
+"You cannot currently use a non-JNP JNDI implementation (i.e. LDAP) for your "
+"local JNDI implementation if you want to use HA-JNDI. However, you can use "
+"JNDI federation using the ExternalContext MBean to bind non-JBoss JNDI trees "
+"into the JBoss JNDI namespace. Furthermore, nothing prevents you using one "
+"centralized JNDI server for your whole cluster and scrapping HA-JNDI and JNP."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:131
+#, no-c-format
+msgid ""
+"If a binding is only made available on a few nodes in the cluster (for "
+"example because a bean is only deployed on a small subset of nodes in the "
+"cluster), the probability that a lookup will hit a HA-JNDI server that does "
+"not own this binding is higher and thus the lookup will need to be forwarded "
+"to all nodes in the cluster. Consequently, the query time will be longer "
+"than if the binding would have been available locally. Moral of the story: "
+"as much as possible, cache the result of your JNDI queries in your client."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:139
+#, no-c-format
+msgid ""
+"So, an EJB home lookup through HA-JNDI, will always be delegated to the "
+"local JNDI instance. If different beans (even of the same type, but "
+"participating in different clusters) use the same JNDI name, it means that "
+"each JNDI server will have a different \"target\" bound (JNDI on node 1 will "
+"have a binding for bean A and JNDI on node 2 will have a binding, under the "
+"same name, for bean B). Consequently, if a client performs a HA-JNDI query "
+"for this name, the query will be invoked on any JNDI server of the cluster "
+"and will return the locally bound stub. Nevertheless, it may not be the "
+"correct stub that the client is expecting to receive!"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:147
+#, no-c-format
+msgid ""
+"You cannot currently use a non-JNP JNDI implementation (i.e. LDAP) for your "
+"local JNDI implementation if you want to use HA-JNDI. However, you can use "
+"JNDI federation using the <literal>ExternalContext</literal> MBean to bind "
+"non-JBoss JNDI trees into the JBoss JNDI namespace. Furthermore, nothing "
+"prevents you though of using one centralized JNDI server for your whole "
+"cluster and scrapping HA-JNDI and JNP."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:154
+#, no-c-format
+msgid ""
+"If a binding is only made available on a few nodes in the cluster (for "
+"example because a bean is only deployed on a small subset of nodes in the "
+"cluster), the probability to lookup a HA-JNDI server that does not own this "
+"binding is higher and the lookup will need to be forwarded to all nodes in "
+"the cluster. Consequently, the query time will be longer than if the binding "
+"would have been available locally. Moral of the story: as much as possible, "
+"cache the result of your JNDI queries in your client."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JNDI.xml:166
+#, no-c-format
+msgid "Client configuration"
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JNDI.xml:168
+#, no-c-format
+msgid "For clients running inside the application server"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:169
+#, no-c-format
+msgid ""
+"If you want to access HA-JNDI from inside the application server, you must "
+"explicitly get an InitialContext by passing in JNDI properties. The "
+"following code shows how to create a naming Context bound to HA-JNDI:"
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JNDI.xml:172
+#, no-c-format
+msgid ""
+"Properties p = new Properties();  \n"
+"        p.put(Context.INITIAL_CONTEXT_FACTORY,   \n"
+"        \"org.jnp.interfaces.NamingContextFactory\");  \n"
+"        p.put(Context.URL_PKG_PREFIXES, \"jboss.naming:org.jnp.interfaces"
+"\");  \n"
+"        p.put(Context.PROVIDER_URL, \"localhost:1100\"); // HA-JNDI port.  \n"
+"        return new InitialContext(p);"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:173
+#, no-c-format
+msgid ""
+"The Context.PROVIDER_URL property points to the HA-JNDI service configured "
+"in the HANamingService MBean (see the section called “JBoss configuration”)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:176
+#, no-c-format
+msgid ""
+"Do not attempt to simplify things by placing a jndi.properties file in your "
+"deployment or by editing the AS's conf/jndi.properties file. Doing either "
+"will almost certainly break things for your application and quite possibly "
+"across the application server. If you want to externalize your client "
+"configuration, one approach is to deploy a properties file not named jndi."
+"properties, and then programatically create a Properties object that loads "
+"that file's contents."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JNDI.xml:183
+#, no-c-format
+msgid "For clients running outside the application server"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:185
+#, no-c-format
+msgid ""
+"The JNDI client needs to be aware of the HA-JNDI cluster. You can pass a "
+"list of JNDI servers (i.e., the nodes in the HA-JNDI cluster) to the "
+"<literal>java.naming.provider.url</literal> JNDI setting in the "
+"<literal>jndi.properties</literal> file. Each server node is identified by "
+"its IP address and the JNDI port number. The server nodes are separated by "
+"commas (see <xref linkend=\"clustering-jndi-jboss\"/> for how to configure "
+"the servers and ports)."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JNDI.xml:187
+#, no-c-format
+msgid ""
+"java.naming.provier.url=server1:1100,server2:1100,server3:1100,server4:1100"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:188
+#, no-c-format
+msgid ""
+"When initialising, the JNP client code will try to get in touch with each "
+"server node from the list, one after the other, stopping as soon as one "
+"server has been reached. It will then download the HA-JNDI stub from this "
+"node."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:192
+#, no-c-format
+msgid ""
+"There is no load balancing behavior in the JNP client lookup process itself. "
+"It just goes through the provider lists and uses the first available server "
+"to obtain the stub. The HA-JNDI provider list only needs to contain a subset "
+"of HA-JNDI nodes in the cluster."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:195
+#, no-c-format
+msgid ""
+"The downloaded smart proxy contains the list of currently running nodes and "
+"the logic to load balance naming requests and to fail-over to another node "
+"if necessary. Furthermore, each time a JNDI invocation is made to the "
+"server, the list of targets in the proxy interceptor is updated (only if the "
+"list has changed since the last call)."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:199
+#, no-c-format
+msgid ""
+"If the property string java.naming.provider.url is empty or if all servers "
+"it mentions are not reachable, the JNP client will try to discover a HA-JNDI "
+"server through a multicast call on the network (auto-discovery). See the "
+"section called “JBoss configuration” on how to configure auto-discovery on "
+"the JNDI server nodes. Through auto-discovery, the client might be able to "
+"get a valid HA-JNDI server node without any configuration. Of course, for "
+"auto-discovery to work, the network segment(s) between the client and the "
+"server cluster must be configured to propagate such multicast datagrams."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:203
+#, no-c-format
+msgid ""
+"By default the auto-discovery feature uses multicast group address 230.0.0.4 "
+"and port1102."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:205
+#, no-c-format
+msgid ""
+"In addition to the <literal>java.naming.provider.url</literal> property, you "
+"can specify a set of other properties. The following list shows all "
+"clustering-related client side properties you can specify when creating a "
+"new InitialContext. (All of the standard, non-clustering-related environment "
+"properties used with regular JNDI are also available.)"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:208
+#, no-c-format
+msgid ""
+"<literal>java.naming.provider.url</literal>: Provides a list of IP addresses "
+"and port numbers for HA-JNDI provider nodes in the cluster. The client tries "
+"those providers one by one and uses the first one that responds."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:213
+#, no-c-format
+msgid ""
+"<literal>jnp.disableDiscovery</literal>: When set to <literal>true</"
+"literal>, this property disables the automatic discovery feature. Default is "
+"<literal>false</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:218
+#, no-c-format
+msgid ""
+"<literal>jnp.partitionName</literal>: In an environment where multiple HA-"
+"JNDI services bound to distinct clusters (a.k.a. partitions), are running, "
+"this property allows you to ensure that your client only accepts automatic-"
+"discovery responses from servers in the desired partition. If you do not use "
+"the automatic discovery feature (i.e. jnp.disableDiscovery is true), this "
+"property is not used. By default, this property is not set and the automatic "
+"discovery select the first HA-JNDI server that responds, irregardless of the "
+"cluster partition name."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:221
+#, no-c-format
+msgid ""
+"<literal>jnp.discoveryTimeout</literal>: Determines how much time the "
+"context will wait for a response to its automatic discovery packet. Default "
+"is 5000 ms."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:225
+#, no-c-format
+msgid ""
+"<literal>jnp.discoveryGroup</literal>: Determines which multicast group "
+"address is used for the automatic discovery. Default is 230.0.0.4. Must "
+"match the value of the AutoDiscoveryAddress configured on the server side HA-"
+"JNDI service."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:228
+#, no-c-format
+msgid ""
+"<literal>jnp.discoveryPort</literal>: Determines which multicast group port "
+"is used for the automatic discovery. Default is 1102. Must match the value "
+"of the AutoDiscoveryPort configured on the server side HA-JNDI service."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:231
+#, no-c-format
+msgid ""
+"<literal>jnp.discoveryTTL</literal>: specifies the TTL (time-to-live) for "
+"autodiscovery IP multicast packets. This value represents the number of "
+"network hops a multicast packet can be allowed to propagate before "
+"networking equipment should drop the packet. Despite its name, it does not "
+"represent a unit of time."
+msgstr ""
+
+#. Tag: title
+#: Clustering_Guide_JNDI.xml:242
+#, no-c-format
+msgid "JBoss configuration"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:243
+#, no-c-format
+msgid ""
+"The <literal>cluster-service.xml</literal> file in the <literal>all/deploy</"
+"literal> directory includes the following MBean to enable HA-JNDI services."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JNDI.xml:245
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"org.jboss.ha.jndi.HANamingService\"            \n"
+"       name=\"jboss:service=HAJNDI\"&gt;       \n"
+"       &lt;depends optional-attribute-name=\"ClusterPartition\" \n"
+"                proxy-type=\"attribute\"&gt;jboss:service=${jboss.partition."
+"name:DefaultPartition}&lt;/depends&gt; \n"
+"       \n"
+"&lt;mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:246
+#, no-c-format
+msgid ""
+"You can see that this MBean depends on the <literal>DefaultPartition</"
+"literal> MBean defined above it (discussed earlier in this chapter). In "
+"other configurations, you can put that element in the <literal>jboss-service."
+"xml</literal> file or any other JBoss configuration files in the <literal>/"
+"deploy</literal> directory to enable HA-JNDI services. The available "
+"attributes for this MBean are listed below."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:252
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">Cluster Partition</emphasis> is a required attribute "
+"to inject the HAPartition service that HA-JNDI uses for intra-cluster "
+"communication."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:255
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">BindAddress</emphasis> is an optional attribute to "
+"specify the address to which the HA-JNDI server will bind waiting for JNP "
+"clients. Only useful for multi-homed computers. The default value is the "
+"value of the jboss.bind.address system property, or the host's default "
+"addresss if that property is not set. The jboss.bind.address system property "
+"is set if the -b command line switch is used when JBoss is started."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:258
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">Port</emphasis> is an optional attribute to specify "
+"the port to which the HA-JNDI server will bind waiting for JNP clients. The "
+"default value is <literal>1100</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:263
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">Backlog</emphasis> is an optional attribute to "
+"specify the backlog value used for the TCP server socket waiting for JNP "
+"clients. The default value is <literal>50</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:268
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">RmiPort</emphasis> determines which port the server "
+"should use to communicate with the downloaded stub. This attribute is "
+"optional. The default value is 1101. If no value is set, the server "
+"automatically assigns a RMI port."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:271
+#, no-c-format
+msgid ""
+"<literal>DiscoveryDisabled</literal> is a boolean flag that disables "
+"configuration of the auto discovery multicast listener."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:277
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">AutoDiscoveryAddress</emphasis> is an optional "
+"attribute to specify the multicast address to listen to for JNDI automatic "
+"discovery. The default value is the value of the jboss.partition.udpGroup "
+"system property, or 230.0.0.4 if that is not set. The jboss.partition."
+"udpGroup system property is set if the -u command line switch is used when "
+"JBoss is started."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:280
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">AutoDiscoveryGroup</emphasis> is an optional "
+"attribute to specify the multicast group to listen to for JNDI automatic "
+"discovery.. The default value is <literal>1102</literal>."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:286
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">AutoDiscoveryBindAddress</emphasis> sets the "
+"interface on which HA-JNDI should listen for auto-discovery request packets. "
+"If this attribute is not specified and a <literal>BindAddress</literal> is "
+"specified, the <literal>BindAddress</literal> will be used.."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:289
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">AutoDiscoveryTTL</emphasis> specifies the TTL (time-"
+"to-live) for autodiscovery IP multicast packets. This value represents the "
+"number of network hops a multicast packet can be allowed to propagate before "
+"networking equipment should drop the packet. Despite its name, it does not "
+"represent a unit of time."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:292
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">LoadBalancePolicy</emphasis> specifies the class "
+"name of the LoadBalancePolicyimplementation that should be included in the "
+"client proxy. See the earlier section on “Load-Balancing Policies” for "
+"details."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:297
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">LookupPool</emphasis> specifies the thread pool "
+"service used to control the bootstrap and auto discovery lookups."
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:302
+#, no-c-format
+msgid ""
+"The full default configuration of the <literal>HANamingService</literal> "
+"MBean is as follows."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JNDI.xml:303
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <mbean code=\"org.jboss.ha.jndi.HANamingService\" \n"
+"        name=\"jboss:service=HAJNDI\"> \n"
+"         <!-- We now inject the partition into the HAJNDI service instead \n"
+"         of requiring that the partition name be passed --> \n"
+"         <depends optional-attribute-name=\"ClusterPartition\" \n"
+"         proxy-type=\"attribute\">jboss:service=${jboss.partition.name:"
+"DefaultPartition}</depends> \n"
+"         <!-- Bind address of bootstrap and HA-JNDI RMI endpoints --> \n"
+"         <attribute name=\"BindAddress\">${jboss.bind.address}</attribute> \n"
+"         <!-- Port on which the HA-JNDI stub is made available --> \n"
+"         <attribute name=\"Port\">1100</attribute> \n"
+"         <!-- RmiPort to be used by the HA-JNDI service once bound. 0 => "
+"auto. --> \n"
+"         <attribute name=\"RmiPort\">1101</attribute> \n"
+"         <!-- Accept backlog of the bootstrap socket --> \n"
+"         <attribute name=\"Backlog\">50</attribute> \n"
+"         <!-- The thread pool service used to control the bootstrap and auto "
+"discovery lookups --> \n"
+"        <depends optional-attribute-name=\"LookupPool\" \n"
+"         proxy-type=\"attribute\">jboss.system:service=ThreadPool</"
+"depends> \n"
+"         <!-- A flag to disable the auto discovery via multicast --> \n"
+"        <attribute name=\"DiscoveryDisabled\">false</attribute> \n"
+"        <!-- Set the auto-discovery bootstrap multicast bind address. If "
+"not \n"
+"         specified and a BindAddress is specified, the BindAddress will be "
+"used. --> \n"
+"         <attribute name=\"AutoDiscoveryBindAddress\">${jboss.bind.address}</"
+"attribute> \n"
+"         <!-- Multicast Address and group port used for auto-discovery --> \n"
+"         <attribute name=\"AutoDiscoveryAddress\">${jboss.partition."
+"udpGroup:230.0.0.4}</attribute> \n"
+"         <attribute name=\"AutoDiscoveryGroup\">1102</attribute> \n"
+"         <!-- The TTL (time-to-live) for autodiscovery IP multicast packets "
+"--> \n"
+"         <attribute name=\"AutoDiscoveryTTL\">16</attribute> \n"
+"         <!-- The load balancing policy for HA-JNDI --> \n"
+"         <attribute name=\"LoadBalancePolicy\">org.jboss.ha.framework."
+"interfaces.RoundRobin</attribute> \n"
+"        \n"
+"         <!-- Client socket factory to be used for client-server \n"
+"         RMI invocations during JNDI queries \n"
+"         <attribute name=\"ClientSocketFactory\">custom</attribute> \n"
+"         --> \n"
+"         <!-- Server socket factory to be used for client-server \n"
+"         RMI invocations during JNDI queries \n"
+"         <attribute name=\"ServerSocketFactory\">custom</attribute> \n"
+"          --> \n"
+"   </mbean>]]>"
+msgstr ""
+
+#. Tag: para
+#: Clustering_Guide_JNDI.xml:304
+#, no-c-format
+msgid ""
+"It is possible to start several HA-JNDI services that use different "
+"clusters. This can be used, for example, if a node is part of many clusters. "
+"In this case, make sure that you set a different port or IP address for "
+"eachservices. For instance, if you wanted to hook up HA-JNDI to the example "
+"cluster you set up and change the binding port, the Mbean descriptor would "
+"look as follows."
+msgstr ""
+
+#. Tag: programlisting
+#: Clustering_Guide_JNDI.xml:307
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<mbean code=\"org.jboss.ha.jndi.HANamingService\"    \n"
+"      name=\"jboss:service=HAJNDI\">    \n"
+"\n"
+"      <depends optional-attribute-name=\"ClusterPartition\" \n"
+"   proxy-type=\"attribute\">jboss:service=MySpecialPartition</depends>  \n"
+" <attribute name=\"Port\">56789</attribute>  \n"
+"</mbean> ]]>"
+msgstr ""

Added: projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/J2EE_Naming_On_JBOSS.po
===================================================================
--- projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/J2EE_Naming_On_JBOSS.po	                        (rev 0)
+++ projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/J2EE_Naming_On_JBOSS.po	2008-01-21 05:09:32 UTC (rev 69162)
@@ -0,0 +1,3862 @@
+# Language /tmp/mike/JBEAP420/JBAS translations for JBEAP package.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBEAP 420\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-11-05 06:01+0000\n"
+"PO-Revision-Date: 2001-02-09 01:25+0100\n"
+"Last-Translator: Automatically generated\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
+#: J2EE_Naming_On_JBOSS.xml:6
+#, no-c-format
+msgid "Naming on JBoss"
+msgstr ""
+
+#. Tag: subtitle
+#: J2EE_Naming_On_JBOSS.xml:7
+#, no-c-format
+msgid "The JNDI Naming Service"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:8
+#, no-c-format
+msgid ""
+"The naming service plays a key role in enterprise Java applications, "
+"providing the core infrastructure that is used to locate objects or services "
+"in an application server. It is also the mechanism that clients external to "
+"the application server use to locate services inside the application server. "
+"Application code, whether it is internal or external to the JBoss instance, "
+"need only know that it needs to talk to the a message queue named "
+"<literal>queue/IncomingOrders</literal> and would not need to worry about "
+"any of the details of how the queue is configured. In a clustered "
+"environment, naming services are even more valuable. A client of a service "
+"would desire to look up the <literal>ProductCatalog</literal> session bean "
+"from the cluster without worrying which machine the service is residing. "
+"Whether it is a big clustered service, a local resource or just a simple "
+"application component that is needed, the JNDI naming service provides the "
+"glue that lets code find the objects in the system by name."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:12
+#, no-c-format
+msgid "An Overview of JNDI"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:13
+#, no-c-format
+msgid ""
+"JNDI is a standard Java API that is bundled with JDK1.3 and higher. JNDI "
+"provides a common interface to a variety of existing naming services: DNS, "
+"LDAP, Active Directory, RMI registry, COS registry, NIS, and file systems. "
+"The JNDI API is divided logically into a client API that is used to access "
+"naming services, and a service provider interface (SPI) that allows the user "
+"to create JNDI implementations for naming services."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:16
+#, no-c-format
+msgid ""
+"The SPI layer is an abstraction that naming service providers must implement "
+"to enable the core JNDI classes to expose the naming service using the "
+"common JNDI client interface. An implementation of JNDI for a naming service "
+"is referred to as a JNDI provider. JBoss naming is an example JNDI "
+"implementation, based on the SPI classes. Note that the JNDI SPI is not "
+"needed by J2EE component developers."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:19
+#, no-c-format
+msgid ""
+"For a thorough introduction and tutorial on JNDI, which covers both the "
+"client and service provider APIs, see the Sun tutorial at <ulink url="
+"\"http://java.sun.com/products/jndi/tutorial/\"></ulink>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:22
+#, no-c-format
+msgid ""
+"The main JNDI API package is the <literal>javax.naming</literal> package. It "
+"contains five interfaces, 10 classes, and several exceptions. There is one "
+"key class, <literal>InitialContext</literal>, and two key interfaces, "
+"<literal>Context</literal> and <literal>Name</literal>"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:26
+#, no-c-format
+msgid "Names"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:27
+#, no-c-format
+msgid ""
+"The notion of a name is of fundamental importance in JNDI. The naming system "
+"determines the syntax that the name must follow. The syntax of the naming "
+"system allows the user to parse string representations of names into its "
+"components. A name is used with a naming system to locate objects. In the "
+"simplest sense, a naming system is just a collection of objects with unique "
+"names. To locate an object in a naming system you provide a name to the "
+"naming system, and the naming system returns the object store under the name."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:30
+#, no-c-format
+msgid ""
+"As an example, consider the Unix file system&#39;s naming convention. Each "
+"file is named from its path relative to the root of the file system, with "
+"each component in the path separated by the forward slash character "
+"(\"<literal>/</literal>\"). The file&#39;s path is ordered from left to "
+"right. The pathname<literal>/usr/jboss/readme.txt</literal>, for example, "
+"names a file <literal>readme.txt</literal> in the directory <literal>jboss</"
+"literal>, under the directory <literal>usr</literal>, located in the root of "
+"the file system. JBoss naming uses a UNIX-style namespace as its naming "
+"convention."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:33
+#, no-c-format
+msgid ""
+"The <literal>javax.naming.Name</literal> interface represents a generic name "
+"as an ordered sequence of components. It can be a composite name (one that "
+"spans multiple namespaces), or a compound name (one that is used within a "
+"single hierarchical naming system). The components of a name are numbered. "
+"The indexes of a name with N components range from 0 up to, but not "
+"including, N. The most significant component is at index 0. An empty name "
+"has no components."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:36
+#, no-c-format
+msgid ""
+"A composite name is a sequence of component names that span multiple "
+"namespaces. An example of a composite name would be the hostname and file "
+"combination commonly used with UNIX commands like <literal>scp</literal>. "
+"For example, the following command copies <literal>localfile.txt</literal> "
+"to the file <literal>remotefile.txt</literal> in the <literal>tmp</literal> "
+"directory on host <literal>ahost.someorg.org</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:39
+#, no-c-format
+msgid "scp localfile.txt ahost.someorg.org:/tmp/remotefile.txt"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:40
+#, no-c-format
+msgid ""
+"A compound name is derived from a hierarchical namespace. Each component in "
+"a compound name is an atomic name, meaning a string that cannot be parsed "
+"into smaller components. A file pathname in the UNIX file system is an "
+"example of a compound name. <literal>ahost.someorg.org:/tmp/remotefile.txt</"
+"literal> is a composite name that spans the DNS and UNIX file system "
+"namespaces. The components of the composite name are <literal>ahost.someorg."
+"org</literal> and <literal>/tmp/remotefile.txt</literal>. A component is a "
+"string name from the namespace of a naming system. If the component comes "
+"from a hierarchical namespace, that component can be further parsed into its "
+"atomic parts by using the <literal>javax.naming.CompoundName</literal> "
+"class. The JNDI API provides the <literal>javax.naming.CompositeName</"
+"literal> class as the implementation of the <literal>Name</literal> "
+"interface for composite names."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:44
+#, no-c-format
+msgid ""
+"Since the upgrade to 3.2.7 / 4.0.2, components accessing the ejb local homes "
+"assuming they know what the global jndi binding is will not work. The old "
+"JNDI name has been appended by the \"@\" character and a random number. This "
+"also applies to MDBs. This is further discussed below."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:48
+#, no-c-format
+msgid ""
+"Because jboss has to guarantee that the generated jndi name it uses to bind "
+"the local home under is globally unique since there is no requirement that "
+"every ejb-name associated with a local home is unique. Its an implementation "
+"detail of jboss that the local homes are even stored in jndi. In 4.0.1sp1, a "
+"change was made to use a more robust default local home jndi name to avoid "
+"conflicting what showed up if two separate ejb jars with the same ejb-name "
+"that only exposed local interfaces were deployed. Previously this required "
+"that a jboss.xml local-jndi-name be specified. Since this effectively was "
+"requiring the user to deal with a jboss implementation detail, we changed "
+"the default jndi name for local homes. The side-effect of this is that apps "
+"using lookups into the global jndi tree for local homes now have to specify "
+"the ejb-local-ref elements that should have been used all along, or use a "
+"local-jndi-name in the jboss.xml descriptor to provide a globally unique "
+"name for the local home binding. The use of the ejb-local-ref is the "
+"standard and portable solution."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:52
+#, no-c-format
+msgid ""
+"This also applies to MDBs because they happen to use a semantic similar to "
+"local ejb interfaces for their invoker. If you need to know the object name "
+"for an MDB container as in the case of dependencies, use the local-jndi-name "
+"in the jboss.xml descriptor."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:56
+#, no-c-format
+msgid ""
+"To avoid clashes between two identically-named EJBs, a generated hash-code "
+"is now appended to the JNDI name to make them unique unless a local-jndi-"
+"name value is provided in the deployment descriptor."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:59
+#, no-c-format
+msgid ""
+"The solution to this is to put in a value for the attribute ejb-link in ejb-"
+"jar.xml/web.xml or a local-jndi-name in jboss.xml/jboss-web.xml and look up "
+"by that value."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:62
+#, no-c-format
+msgid ""
+"An mdb local-jndi-name example: "
+"<programlisting>                                \n"
+"&lt;enterprise-beans&gt;\n"
+"        &lt;message-driven&gt;\n"
+"                &lt;ejb-name&gt;TestMDB&lt;/ejb-name&gt;\n"
+"                &lt;local-jndi-name&gt;TestMDB&lt;/local-jndi-name&gt;\n"
+"                &lt;mdb-user&gt;...&lt;/mdb-user&gt;\n"
+"                &lt;mdb-passwd&gt;...&lt;/mdb-passwd&gt;\n"
+"        &lt;/message-driven&gt;\n"
+"&lt;/enterprise-beans&gt;\n"
+"</programlisting> An ejb-link example that does not need to know the jndi "
+"name:"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:66
+#, no-c-format
+msgid ""
+"&lt;ejb-jar&gt;\n"
+"        &lt;description&gt;a.jar Test ENC ejb-jar.xml descriptor&lt;/"
+"description&gt;\n"
+"        &lt;enterprise-beans&gt;\n"
+"                &lt;session&gt;\n"
+"                        &lt;description&gt;Session Bean&lt;/description&gt;\n"
+"                        &lt;ejb-name&gt;SessionA&lt;/ejb-name&gt;\n"
+"                        &lt;home&gt;org.jboss.test.naming.interfaces."
+"TestEjbLinkHome&lt;/home&gt;\n"
+"                        &lt;remote&gt;org.jboss.test.naming.interfaces."
+"TestEjbLink&lt;/remote&gt;\n"
+"                        &lt;local-home&gt;org.jboss.test.naming.interfaces."
+"TestEjbLinkLocalHome&lt;/local-home&gt;\n"
+"                        &lt;local&gt;org.jboss.test.naming.interfaces."
+"TestEjbLinkLocal&lt;/local&gt;\n"
+"                        &lt;ejb-class&gt;org.jboss.test.naming.ejb."
+"TestEjbLinkBean&lt;/ejb-class&gt;\n"
+"                        &lt;session-type&gt;Stateless&lt;/session-type&gt;\n"
+"                        &lt;transaction-type&gt;Container&lt;/transaction-"
+"type&gt;\n"
+"                &lt;/session&gt;\n"
+"                                \n"
+"                &lt;session&gt;\n"
+"                        &lt;description&gt;Session Bean&lt;/description&gt;\n"
+"                        &lt;ejb-name&gt;SessionB&lt;/ejb-name&gt;\n"
+"                        &lt;home&gt;org.jboss.test.naming.interfaces."
+"TestEjbLinkHome&lt;/home&gt;\n"
+"                        &lt;remote&gt;org.jboss.test.naming.interfaces."
+"TestEjbLink&lt;/remote&gt;\n"
+"                        &lt;local-home&gt;org.jboss.test.naming.interfaces."
+"TestEjbLinkLocalHome&lt;/local-home&gt;\n"
+"                        &lt;local&gt;org.jboss.test.naming.interfaces."
+"TestEjbLinkLocal&lt;/local&gt;\n"
+"                        \n"
+"                        &lt;ejb-class&gt;org.jboss.test.naming.ejb."
+"TestEjbLinkBean&lt;/ejb-class&gt;\n"
+"                        &lt;session-type&gt;Stateless&lt;/session-type&gt;\n"
+"                        &lt;transaction-type&gt;Container&lt;/transaction-"
+"type&gt;\n"
+"                        &lt;ejb-local-ref&gt;\n"
+"                                &lt;ejb-ref-name&gt;ejb/LocalSessionA&lt;/"
+"ejb-ref-name&gt;\n"
+"                                &lt;ejb-ref-type&gt;Session&lt;/ejb-ref-"
+"type&gt;\n"
+"                                &lt;local-home&gt;org.jboss.test.naming."
+"interfaces.TestEjbLinkLocalHome&lt;/local-home&gt;\n"
+"                                &lt;local&gt;org.jboss.test.naming."
+"interfaces.TestEjbLinkLocal&lt;/local&gt;\n"
+"                                &lt;ejb-link&gt;SessionA&lt;/ejb-link&gt;\n"
+"                        &lt;/ejb-local-ref&gt;\n"
+"                &lt;/session&gt;\n"
+"......"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:74
+#, no-c-format
+msgid "Contexts"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:75
+#, no-c-format
+msgid ""
+"The <literal>javax.naming.Context</literal> interface is the primary "
+"interface for interacting with a naming service. The <literal>Context</"
+"literal> interface represents a set of name-to-object bindings. Every "
+"context has an associated naming convention that determines how the context "
+"parses string names into <literal>javax.naming.Name</literal> instances. To "
+"create a name to object binding you invoke the bind method of a "
+"<literal>Context</literal> and specify a name and an object as arguments. "
+"The object can later be retrieved using its name using the <literal>Context</"
+"literal> lookup method. A <literal>Context</literal> will typically provide "
+"operations for binding a name to an object, unbinding a name, and obtaining "
+"a listing of all name-to-object bindings. The object you bind into a "
+"<literal>Context</literal> can itself be of type <literal>Context</"
+"literal> . The <literal>Context</literal> object that is bound is referred "
+"to as a subcontext of the <literal>Context</literal> on which the bind "
+"method was invoked."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:78
+#, no-c-format
+msgid ""
+"As an example, consider a file directory with a pathname <literal>/usr</"
+"literal>, which is a context in the UNIX file system. A file directory named "
+"relative to another file directory is a subcontext (commonly referred to as "
+"a subdirectory). A file directory with a pathname <literal>/usr/jboss</"
+"literal> names a <literal>jboss</literal> context that is a subcontext of "
+"<literal>usr</literal>. In another example, a DNS domain, such as "
+"<literal>org</literal>, is a context. A DNS domain named relative to another "
+"DNS domain is another example of a subcontext. In the DNS domain "
+"<literal>jboss.org</literal>, the DNS domain <literal>jboss</literal> is a "
+"subcontext of <literal>org</literal> because DNS names are parsed right to "
+"left."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:82
+#, no-c-format
+msgid "Obtaining a Context using InitialContext"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:83
+#, no-c-format
+msgid ""
+"All naming service operations are performed on some implementation of the "
+"<literal>Context</literal> interface. Therefore, you need a way to obtain a "
+"<literal>Context</literal> for the naming service you are interested in "
+"using. The <literal>javax.naming.IntialContext</literal> class implements "
+"the <literal>Context</literal> interface, and provides the starting point "
+"for interacting with a naming service."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:86
+#, no-c-format
+msgid ""
+"When you create an <literal>InitialContext</literal>, it is initialized with "
+"properties from the environment. JNDI determines each property&#39;s value "
+"by merging the values from the following two sources, in order."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:91
+#, no-c-format
+msgid ""
+"The first occurrence of the property from the constructor&#39;s environment "
+"parameter and (for appropriate properties) the applet parameters and system "
+"properties."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:96
+#, no-c-format
+msgid ""
+"All <literal>jndi.properties</literal> resource files found on the classpath."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:101
+#, no-c-format
+msgid ""
+"For each property found in both of these two sources, the property&#39;s "
+"value is determined as follows. If the property is one of the standard JNDI "
+"properties that specify a list of JNDI factories, all of the values are "
+"concatenated into a single colon-separated list. For other properties, only "
+"the first value found is used. The preferred method of specifying the JNDI "
+"environment properties is through a <literal>jndi.properties</literal> file, "
+"which allows your code to externalize the JNDI provider specific information "
+"so that changing JNDI providers will not require changes to your code or "
+"recompilation."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:104
+#, no-c-format
+msgid ""
+"The <literal>Context</literal> implementation used internally by the "
+"<literal>InitialContext</literal> class is determined at runtime. The "
+"default policy uses the environment property <literal>java.naming.factory."
+"initial</literal>, which contains the class name of the <literal>javax."
+"naming.spi.InitialContextFactory</literal> implementation. You obtain the "
+"name of the <literal>InitialContextFactory</literal> class from the naming "
+"service provider you are using."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:107
+#, no-c-format
+msgid ""
+"gives a sample <literal>jndi.properties</literal> file a client application "
+"would use to connect to a JBossNS service running on the local host at port "
+"1099. The client application would need to have the <literal>jndi."
+"properties</literal> file available on the application classpath. These are "
+"the properties that the JBossNS JNDI implementation requires. Other JNDI "
+"providers will have different properties and values."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:110
+#, no-c-format
+msgid "A sample jndi.properties file"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:111
+#, no-c-format
+msgid ""
+"### JBossNS properties\n"
+"java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory\n"
+"java.naming.provider.url=jnp://localhost:1099\n"
+"java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:120
+#, no-c-format
+msgid "The JBossNS Architecture"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:121
+#, no-c-format
+msgid ""
+"The JBossNS architecture is a Java socket/RMI based implementation of the "
+"<literal>javax.naming.Context</literal> interface. It is a client/server "
+"implementation that can be accessed remotely. The implementation is "
+"optimized so that access from within the same VM in which the JBossNS server "
+"is running does not involve sockets. Same VM access occurs through an object "
+"reference available as a global singleton. <xref linkend="
+"\"The_JBossNS_Architecture-Key_components_in_the_JBossNS_architecture.\"/> "
+"illustrates some of the key classes in the JBossNS implementation and their "
+"relationships."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:125
+#, no-c-format
+msgid "Key components in the JBossNS architecture."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:132
+#, no-c-format
+msgid ""
+"We will start with the <literal>NamingService</literal> MBean. The "
+"<literal>NamingService</literal> MBean provides the JNDI naming service. "
+"This is a key service used pervasively by the J2EE technology components. "
+"The configurable attributes for the <literal>NamingService</literal> are as "
+"follows."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:137
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">Port</emphasis>: The jnp protocol listening port for "
+"the <literal>NamingService</literal>. If not specified default is 1099, the "
+"same as the RMI registry default port."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:142
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">RmiPort</emphasis>: The RMI port on which the RMI "
+"Naming implementation will be exported. If not specified the default is 0 "
+"which means use any available port."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:147
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">BindAddress</emphasis>: The specific address the "
+"<literal>NamingService</literal> listens on. This can be used on a multi-"
+"homed host for a <literal>java.net.ServerSocket</literal> that will only "
+"accept connect requests on one of its addresses."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:152
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">RmiBindAddress</emphasis>: The specific address the "
+"RMI server portion of the <literal>NamingService</literal> listens on. This "
+"can be used on a multi-homed host for a <literal>java.net.ServerSocket</"
+"literal> that will only accept connect requests on one of its addresses. If "
+"this is not specified and the <literal>BindAddress</literal> is, the "
+"<literal>RmiBindAddress</literal> defaults to the <literal>BindAddress</"
+"literal> value."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:157
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">Backlog</emphasis>: The maximum queue length for "
+"incoming connection indications (a request to connect) is set to the "
+"<literal>backlog</literal> parameter. If a connection indication arrives "
+"when the queue is full, the connection is refused."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:162
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ClientSocketFactory</emphasis>: An optional custom "
+"<literal>java.rmi.server.RMIClientSocketFactory</literal> implementation "
+"class name. If not specified the default <literal>RMIClientSocketFactory</"
+"literal> is used."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:167
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ServerSocketFactory</emphasis>: An optional custom "
+"<literal>java.rmi.server.RMIServerSocketFactory</literal> implementation "
+"class name. If not specified the default <literal>RMIServerSocketFactory</"
+"literal> is used."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:172
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">JNPServerSocketFactory</emphasis>: An optional "
+"custom <literal>javax.net.ServerSocketFactory</literal> implementation class "
+"name. This is the factory for the <literal>ServerSocket</literal> used to "
+"bootstrap the download of the JBossNS <literal>Naming</literal> interface. "
+"If not specified the <literal>javax.net.ServerSocketFactory.getDefault()</"
+"literal> method value is used."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:177
+#, no-c-format
+msgid ""
+"The <literal>NamingService</literal> also creates the <literal>java:comp</"
+"literal> context such that access to this context is isolated based on the "
+"context class loader of the thread that accesses the <literal>java:comp</"
+"literal> context. This provides the application component private ENC that "
+"is required by the J2EE specs. This segregation is accomplished by binding a "
+"<literal>javax.naming.Reference</literal> to a context that uses the "
+"<literal>org.jboss.naming.ENCFactory</literal> as its <literal>javax.naming."
+"ObjectFactory</literal>. When a client performs a lookup of <literal>java:"
+"comp</literal>, or any subcontext, the <literal>ENCFactory</literal> checks "
+"the thread context <literal>ClassLoader</literal>, and performs a lookup "
+"into a map using the <literal>ClassLoader</literal> as the key."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:180
+#, no-c-format
+msgid ""
+"If a context instance does not exist for the class loader instance, one is "
+"created and associated with that class loader in the <literal>ENCFactory</"
+"literal> map. Thus, correct isolation of an application component&#39;s ENC "
+"relies on each component receiving a unique <literal>ClassLoader</literal> "
+"that is associated with the component threads of execution."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:183
+#, no-c-format
+msgid ""
+"The <literal>NamingService</literal> delegates its functionality to an "
+"<literal>org.jnp.server.Main</literal> MBean. The reason for the duplicate "
+"MBeans is because JBossNS started out as a stand-alone JNDI implementation, "
+"and can still be run as such. The <literal>NamingService</literal> MBean "
+"embeds the <literal>Main</literal> instance into the JBoss server so that "
+"usage of JNDI with the same VM as the JBoss server does not incur any socket "
+"overhead. The configurable attributes of the NamingService are really the "
+"configurable attributes of the JBossNS <literal>Main</literal> MBean. The "
+"setting of any attributes on the <literal>NamingService</literal> MBean "
+"simply set the corresponding attributes on the <literal>Main</literal> MBean "
+"the <literal>NamingService</literal> contains. When the "
+"<literal>NamingService</literal> is started, it starts the contained "
+"<literal>Main</literal> MBean to activate the JNDI naming service."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:186
+#, no-c-format
+msgid ""
+"In addition, the <literal>NamingService</literal> exposes the "
+"<literal>Naming</literal> interface operations through a JMX detyped invoke "
+"operation. This allows the naming service to be accessed via JMX adaptors "
+"for arbitrary protocols. We will look at an example of how HTTP can be used "
+"to access the naming service using the invoke operation later in this "
+"chapter."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:189
+#, no-c-format
+msgid ""
+"The details of threads and the thread context class loader won&#39;t be "
+"explored here, but the JNDI tutorial provides a concise discussion that is "
+"applicable. See <ulink url=\"http://java.sun.com/products/jndi/tutorial/"
+"beyond/misc/classloader.html\"></ulink> for the details."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:192
+#, no-c-format
+msgid ""
+"When the <literal>Main</literal> MBean is started, it performs the following "
+"tasks:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:197
+#, no-c-format
+msgid ""
+"Instantiates an <literal>org.jnp.naming.NamingService</literal> instance and "
+"sets this as the local VM server instance. This is used by any <literal>org."
+"jnp.interfaces.NamingContext</literal> instances that are created within the "
+"JBoss server VM to avoid RMI calls over TCP/IP."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:202
+#, no-c-format
+msgid ""
+"Exports the <literal>NamingServer</literal> instance&#39;s <literal>org.jnp."
+"naming.interfaces.Naming</literal> RMI interface using the configured "
+"<literal>RmiPort</literal>, <literal>ClientSocketFactory</literal>, "
+"<literal>ServerSocketFactory</literal>attributes."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:207
+#, no-c-format
+msgid ""
+"Creates a socket that listens on the interface given by the "
+"<literal>BindAddress</literal> and <literal>Port</literal> attributes."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:212
+#, no-c-format
+msgid "Spawns a thread to accept connections on the socket."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:220
+#, no-c-format
+msgid "The Naming InitialContext Factories"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:221
+#, no-c-format
+msgid ""
+"The JBoss JNDI provider currently supports several different "
+"<literal>InitialContext</literal> factory implementations."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:225
+#, no-c-format
+msgid "The standard naming context factory"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:226
+#, no-c-format
+msgid ""
+"The most commonly used factory is the <literal>org.jnp.interfaces."
+"NamingContextFactory</literal> implementation. Its properties include:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:231
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.factory.initial</emphasis>: The name of "
+"the environment property for specifying the initial context factory to use. "
+"The value of the property should be the fully qualified class name of the "
+"factory class that will create an initial context. If it is not specified, a "
+"<literal>javax.naming.NoInitialContextException</literal> will be thrown "
+"when an <literal>InitialContext</literal> object is created."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:236
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.provider.url</emphasis>: The name of the "
+"environment property for specifying the location of the JBoss JNDI service "
+"provider the client will use. The <literal>NamingContextFactory</literal> "
+"class uses this information to know which JBossNS server to connect to. The "
+"value of the property should be a URL string. For JBossNS the URL format is "
+"<literal>jnp://host:port/[jndi_path]</literal>. The <literal>jnp:</literal> "
+"portion of the URL is the protocol and refers to the socket/RMI based "
+"protocol used by JBoss. The <literal>jndi_path</literal> portion of the URL "
+"is an optional JNDI name relative to the root context, for example, "
+"<literal>apps</literal> or <literal>apps/tmp</literal>. Everything but the "
+"host component is optional. The following examples are equivalent because "
+"the default port value is 1099."
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:242
+#, no-c-format
+msgid "jnp://www.jboss.org:1099/"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:247
+#, no-c-format
+msgid "www.jboss.org:1099"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:252
+#, no-c-format
+msgid "www.jboss.org"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:258
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.factory.url.pkgs</emphasis>: The name of "
+"the environment property for specifying the list of package prefixes to use "
+"when loading in URL context factories. The value of the property should be a "
+"colon-separated list of package prefixes for the class name of the factory "
+"class that will create a URL context factory. For the JBoss JNDI provider "
+"this must be <literal>org.jboss.naming:org.jnp.interfaces</literal>. This "
+"property is essential for locating the <literal>jnp:</literal> and "
+"<literal>java:</literal> URL context factories of the JBoss JNDI provider."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:263
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">jnp.socketFactory</emphasis>: The fully qualified "
+"class name of the <literal>javax.net.SocketFactory</literal> implementation "
+"to use to create the bootstrap socket. The default value is <literal>org.jnp."
+"interfaces.TimedSocketFactory</literal>. The <literal>TimedSocketFactory</"
+"literal> is a simple <literal>SocketFactory</literal> implementation that "
+"supports the specification of a connection and read timeout. These two "
+"properties are specified by:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:268
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">jnp.timeout</emphasis>: The connection timeout in "
+"milliseconds. The default value is 0 which means the connection will block "
+"until the VM TCP/IP layer times out."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:273
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">jnp.sotimeout</emphasis>: The connected socket read "
+"timeout in milliseconds. The default value is 0 which means reads will "
+"block. This is the value passed to the <literal>Socket.setSoTimeout</"
+"literal> on the newly connected socket."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:278
+#, no-c-format
+msgid ""
+"When a client creates an <literal>InitialContext</literal> with these "
+"JBossNS properties available, the <literal>org.jnp.interfaces."
+"NamingContextFactory</literal> object is used to create the "
+"<literal>Context</literal> instance that will be used in subsequent "
+"operations. The <literal>NamingContextFactory</literal> is the JBossNS "
+"implementation of the <literal>javax.naming.spi.InitialContextFactory</"
+"literal> interface. When the <literal>NamingContextFactory</literal> class "
+"is asked to create a <literal>Context</literal>, it creates an <literal>org."
+"jnp.interfaces.NamingContext</literal> instance with the "
+"<literal>InitialContext</literal> environment and name of the context in the "
+"global JNDI namespace. It is the <literal>NamingContext</literal> instance "
+"that actually performs the task of connecting to the JBossNS server, and "
+"implements the <literal>Context</literal> interface. The <literal>Context."
+"PROVIDER_URL</literal> information from the environment indicates from which "
+"server to obtain a <literal>NamingServer</literal> RMI reference."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:281
+#, no-c-format
+msgid ""
+"The association of the <literal>NamingContext</literal> instance to a "
+"<literal>NamingServer</literal> instance is done in a lazy fashion on the "
+"first <literal>Context</literal> operation that is performed. When a "
+"<literal>Context</literal> operation is performed and the "
+"<literal>NamingContext</literal> has no <literal>NamingServer</literal> "
+"associated with it, it looks to see if its environment properties define a "
+"<literal>Context.PROVIDER_URL</literal>. A <literal>Context.PROVIDER_URL</"
+"literal> defines the host and port of the JBossNS server the "
+"<literal>Context</literal> is to use. If there is a provider URL, the "
+"<literal>NamingContext</literal> first checks to see if a <literal>Naming</"
+"literal> instance keyed by the host and port pair has already been created "
+"by checking a <literal>NamingContext</literal> class static map. It simply "
+"uses the existing <literal>Naming</literal> instance if one for the host "
+"port pair has already been obtained. If no <literal>Naming</literal> "
+"instance has been created for the given host and port, the "
+"<literal>NamingContext</literal> connects to the host and port using a "
+"<literal>java.net.Socket</literal>, and retrieves a <literal>Naming</"
+"literal> RMI stub from the server by reading a <literal>java.rmi."
+"MarshalledObject</literal> from the socket and invoking its get method. The "
+"newly obtained Naming instance is cached in the <literal>NamingContext</"
+"literal> server map under the host and port pair. If no provider URL was "
+"specified in the JNDI environment associated with the context, the "
+"<literal>NamingContext</literal> simply uses the in VM Naming instance set "
+"by the <literal>Main</literal> MBean."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:284
+#, no-c-format
+msgid ""
+"The <literal>NamingContext</literal> implementation of the <literal>Context</"
+"literal> interface delegates all operations to the <literal>Naming</literal> "
+"instance associated with the <literal>NamingContext</literal>. The "
+"<literal>NamingServer</literal> class that implements the <literal>Naming</"
+"literal> interface uses a <literal>java.util.Hashtable</literal> as the "
+"<literal>Context</literal> store. There is one unique <literal>NamingServer</"
+"literal> instance for each distinct JNDI Name for a given JBossNS server. "
+"There are zero or more transient <literal>NamingContext</literal> instances "
+"active at any given moment that refers to a <literal>NamingServer</literal> "
+"instance. The purpose of the <literal>NamingContext</literal> is to act as a "
+"<literal>Context</literal> to the <literal>Naming</literal> interface "
+"adaptor that manages translation of the JNDI names passed to the "
+"<literal>NamingContext</literal> . Because a JNDI name can be relative or a "
+"URL, it needs to be converted into an absolute name in the context of the "
+"JBossNS server to which it refers. This translation is a key function of the "
+"<literal>NamingContext</literal>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:290
+#, no-c-format
+msgid "The org.jboss.naming.NamingContextFactory"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:291
+#, no-c-format
+msgid ""
+"This version of the <literal>InitialContextFactory</literal> implementation "
+"is a simple extension of the jnp version which differs from the jnp version "
+"in that it stores the last configuration passed to its "
+"<literal>InitialContextFactory.getInitialContext(Hashtable env)</literal> "
+"method in a public thread local variable. This is used by EJB handles and "
+"other JNDI sensitive objects like the <literal>UserTransaction</literal> "
+"factory to keep track of the JNDI context that was in effect when they were "
+"created. If you want this environment to be bound to the object even after "
+"its serialized across vm boundaries, then you should the <literal>org.jboss."
+"naming.NamingContextFactory</literal>. If you want the environment that is "
+"defined in the current VM <literal>jndi.properties</literal> or system "
+"properties, then you should use the <literal>org.jnp.interfaces."
+"NamingContextFactory</literal> version."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:297
+#, no-c-format
+msgid "Naming Discovery in Clustered Environments"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:298
+#, no-c-format
+msgid ""
+"When running in a clustered JBoss environment, you can choose not to specify "
+"a <literal>Context.PROVIDER_URL</literal> value and let the client query the "
+"network for available naming services. This only works with JBoss servers "
+"running with the <literal>all</literal> configuration, or an equivalent "
+"configuration that has <literal>org.jboss.ha.framework.server."
+"ClusterPartition</literal> and <literal>org.jboss.ha.jndi.HANamingService</"
+"literal> services deployed. The discovery process consists of sending a "
+"multicast request packet to the discovery address/port and waiting for any "
+"node to respond. The response is a HA-RMI version of the <literal>Naming</"
+"literal> interface. The following <literal>InitialContext</literal> "
+"properties affect the discovery configuration:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:303
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">jnp.partitionName</emphasis>: The cluster partition "
+"name discovery should be restricted to. If you are running in an environment "
+"with multiple clusters, you may want to restrict the naming discovery to a "
+"particular cluster. There is no default value, meaning that any cluster "
+"response will be accepted."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:308
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">jnp.discoveryGroup</emphasis>: The multicast IP/"
+"address to which the discovery query is sent. The default is 230.0.0.4."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:313
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">jnp.discoveryPort</emphasis>: The port to which the "
+"discovery query is sent. The default is 1102."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:318
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">jnp.discoveryTimeout</emphasis>: The time in "
+"milliseconds to wait for a discovery query response. The default value is "
+"5000 (5 seconds)."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:323
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">jnp.disableDiscovery</emphasis>: A flag indicating "
+"if the discovery process should be avoided. Discovery occurs when either no "
+"<literal>Context.PROVIDER_URL</literal> is specified, or no valid naming "
+"service could be located among the URLs specified. If the <literal>jnp."
+"disableDiscovery</literal> flag is true, then discovery will not be "
+"attempted."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:331
+#, no-c-format
+msgid "The HTTP InitialContext Factory Implementation"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:332
+#, no-c-format
+msgid ""
+"The JNDI naming service can be accessed over HTTP. From a JNDI client&#39;s "
+"perspective this is a transparent change as they continue to use the JNDI "
+"<literal>Context</literal> interface. Operations through the "
+"<literal>Context</literal> interface are translated into HTTP posts to a "
+"servlet that passes the request to the NamingService using its JMX invoke "
+"operation. Advantages of using HTTP as the access protocol include better "
+"access through firewalls and proxies setup to allow HTTP, as well as the "
+"ability to secure access to the JNDI service using standard servlet role "
+"based security."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:335
+#, no-c-format
+msgid ""
+"To access JNDI over HTTP you use the <literal>org.jboss.naming."
+"HttpNamingContextFactory</literal> as the factory implementation. The "
+"complete set of support <literal>InitialContext</literal> environment "
+"properties for this factory are:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:340
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.factory.initial</emphasis>: The name of "
+"the environment property for specifying the initial context factory, which "
+"must be <literal>org.jboss.naming.HttpNamingContextFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:345
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.provider.url</emphasis> (or "
+"<literal>Context.PROVIDER_URL</literal>): This must be set to the HTTP URL "
+"of the JNDI factory. The full HTTP URL would be the public URL of the JBoss "
+"servlet container plus <literal>/invoker/JNDIFactory</literal>. Examples "
+"include:"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:351
+#, no-c-format
+msgid "http://www.jboss.org:8080/invoker/JNDIFactory"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:356
+#, no-c-format
+msgid "http://www.jboss.org/invoker/JNDIFactory"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:361
+#, no-c-format
+msgid "https://www.jboss.org/invoker/JNDIFactory"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:365
+#, no-c-format
+msgid ""
+"The first example accesses the servlet using the port 8080. The second uses "
+"the standard HTTP port 80, and the third uses an SSL encrypted connection to "
+"the standard HTTPS port 443."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:370 J2EE_Naming_On_JBOSS.xml:400
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.factory.url.pkgs</emphasis>: For all "
+"JBoss JNDI provider this must be <literal>org.jboss.naming:org.jnp."
+"interfaces</literal>. This property is essential for locating the "
+"<literal>jnp:</literal> and <literal>java:</literal> URL context factories "
+"of the JBoss JNDI provider."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:375
+#, no-c-format
+msgid ""
+"The JNDI <literal>Context</literal> implementation returned by the "
+"<literal>HttpNamingContextFactory</literal> is a proxy that delegates "
+"invocations made on it to a bridge servlet which forwards the invocation to "
+"the <literal>NamingService</literal> through the JMX bus and marshalls the "
+"reply back over HTTP. The proxy needs to know what the URL of the bridge "
+"servlet is in order to operate. This value may have been bound on the server "
+"side if the JBoss web server has a well known public interface. If the JBoss "
+"web server is sitting behind one or more firewalls or proxies, the proxy "
+"cannot know what URL is required. In this case, the proxy will be associated "
+"with a system property value that must be set in the client VM. For more "
+"information on the operation of JNDI over HTTP see <xref linkend="
+"\"JNDI_over_HTTP-Accessing_JNDI_over_HTTP\"/>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:381
+#, no-c-format
+msgid "The Login InitialContext Factory Implementation"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:382
+#, no-c-format
+msgid ""
+"JAAS is the preferred method for authenticating a remote client to JBoss. "
+"However, for simplicity and to ease the migration from other application "
+"server environment that do not use JAAS, JBoss allows you the security "
+"credentials to be passed through the <literal>InitialContext</literal>. JAAS "
+"is still used under the covers, but there is no manifest use of the JAAS "
+"interfaces in the client application."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:385
+#, no-c-format
+msgid ""
+"The factory class that provides this capability is the <literal>org.jboss."
+"security.jndi.LoginInitialContextFactory</literal>. The complete set of "
+"support <literal>InitialContext</literal> environment properties for this "
+"factory are:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:390
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.factory.initial</emphasis>: The name of "
+"the environment property for specifying the initial context factory, which "
+"must be <literal>org.jboss.security.jndi.LoginInitialContextFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:395
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.provider.url</emphasis>: This must be "
+"set to a <literal>NamingContextFactory</literal> provider URL. The "
+"<literal>LoginIntialContext</literal> is really just a wrapper around the "
+"<literal>NamingContextFactory</literal> that adds a JAAS login to the "
+"existing <literal>NamingContextFactory</literal> behavior."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:405
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.security.principal</emphasis> (or "
+"<literal>Context.SECURITY_PRINCIPAL</literal>): The principal to "
+"authenticate. This may be either a <literal>java.security.Principal</"
+"literal> implementation or a string representing the name of a principal."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:410
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.security.credentials</emphasis> (or "
+"<literal>Context.SECURITY_CREDENTIALS</literal>), The credentials that "
+"should be used to authenticate the principal, e.g., password, session key, "
+"etc."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:415
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">java.naming.security.protocol</emphasis>: "
+"(<literal>Context.SECURITY_PROTOCOL</literal>) This gives the name of the "
+"JAAS login module to use for the authentication of the principal and "
+"credentials."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:423
+#, no-c-format
+msgid "The ORBInitialContextFactory"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:424
+#, no-c-format
+msgid ""
+"When using Sun&#39;s CosNaming it is necessary to use a different naming "
+"context factory from the default. CosNaming looks for the ORB in JNDI "
+"instead of using the the ORB configured in <literal>deploy/iiop-service.xml?"
+"</literal>. It is necessary to set the global context factory to "
+"<literal>org.jboss.iiop.naming.ORBInitialContextFactory</literal>, which "
+"sets the ORB to JBoss&#39;s ORB. This is done in the <literal>conf/jndi."
+"properties</literal> file:"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:427
+#, no-c-format
+msgid ""
+"# DO NOT EDIT THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING\n"
+"#\n"
+"java.naming.factory.initial=org.jboss.iiop.naming.ORBInitialContextFactory\n"
+"java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:428
+#, no-c-format
+msgid ""
+"It is also necessary to use <literal>ORBInitialContextFactory</literal> when "
+"using CosNaming in an application client."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:436
+#, no-c-format
+msgid "JNDI over HTTP"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:437
+#, no-c-format
+msgid ""
+"In addition to the legacy RMI/JRMP with a socket bootstrap protocol, JBoss "
+"provides support for accessing its JNDI naming service over HTTP."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:441
+#, no-c-format
+msgid "Accessing JNDI over HTTP"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:442
+#, no-c-format
+msgid ""
+"This capability is provided by <literal>http-invoker.sar</literal>. The "
+"structure of the <literal>http-invoker.sar</literal> is:"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:445
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">http-invoker.sar</emphasis>\n"
+"+- META-INF/jboss-service.xml\n"
+"+- invoker.war\n"
+"| +- WEB-INF/jboss-web.xml\n"
+"| +- WEB-INF/classes/org/jboss/invocation/http/servlet/InvokerServlet.class\n"
+"| +- WEB-INF/classes/org/jboss/invocation/http/servlet/NamingFactoryServlet."
+"class\n"
+"| +- WEB-INF/classes/org/jboss/invocation/http/servlet/ReadOnlyAccessFilter."
+"class\n"
+"| +- WEB-INF/classes/roles.properties\n"
+"| +- WEB-INF/classes/users.properties\n"
+"| +- WEB-INF/web.xml\n"
+"| +- META-INF/MANIFEST.MF\n"
+"+- META-INF/MANIFEST.MF"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:446
+#, no-c-format
+msgid ""
+"The <literal>jboss-service.xml</literal> descriptor defines the "
+"<literal>HttpInvoker</literal> and <literal>HttpInvokerHA</literal> MBeans. "
+"These services handle the routing of methods invocations that are sent via "
+"HTTP to the appropriate target MBean on the JMX bus."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:449
+#, no-c-format
+msgid ""
+"The <literal>http-invoker.war</literal> web application contains servlets "
+"that handle the details of the HTTP transport. The "
+"<literal>NamingFactoryServlet</literal> handles creation requests for the "
+"JBoss JNDI naming service <literal>javax.naming.Context</literal> "
+"implementation. The <literal>InvokerServlet</literal> handles invocations "
+"made by RMI/HTTP clients. The <literal>ReadOnlyAccessFilter</literal> allows "
+"one to secure the JNDI naming service while making a single JNDI context "
+"available for read-only access by unauthenticated clients."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:453
+#, no-c-format
+msgid "The HTTP invoker proxy/server structure for a JNDI Context"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:460
+#, no-c-format
+msgid ""
+"Before looking at the configurations let&#39;s look at the operation of the "
+"<literal>http-invoker</literal> services. <xref linkend="
+"\"Accessing_JNDI_over_HTTP-"
+"The_HTTP_invoker_proxyserver_structure_for_a_JNDI_Context\"/> shows a "
+"logical view of the structure of a JBoss JNDI proxy and its relationship to "
+"the JBoss server side components of the <literal>http-invoker</literal>. The "
+"proxy is obtained from the <literal>NamingFactoryServlet</literal> using an "
+"<literal>InitialContext</literal> with the <literal>Context."
+"INITIAL_CONTEXT_FACTORY</literal> property set to <literal>org.jboss.naming."
+"HttpNamingContextFactory</literal>, and the <literal>Context.PROVIDER_URL</"
+"literal> property set to the HTTP URL of the <literal>NamingFactoryServlet</"
+"literal>. The resulting proxy is embedded in an <literal>org.jnp.interfaces."
+"NamingContext</literal> instance that provides the <literal>Context</"
+"literal> interface implementation."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:463
+#, no-c-format
+msgid ""
+"The proxy is an instance of <literal>org.jboss.invocation.http.interfaces."
+"HttpInvokerProxy</literal>, and implements the <literal>org.jnp.interfaces."
+"Naming</literal> interface. Internally the <literal>HttpInvokerProxy</"
+"literal> contains an invoker that marshalls the <literal>Naming</literal> "
+"interface method invocations to the <literal>InvokerServlet</literal> via "
+"HTTP posts. The <literal>InvokerServlet</literal> translates these posts "
+"into JMX invocations to the <literal>NamingService</literal>, and returns "
+"the invocation response back to the proxy in the HTTP post response."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:466
+#, no-c-format
+msgid ""
+"There are several configuration values that need to be set to tie all of "
+"these components together and <xref linkend=\"Accessing_JNDI_over_HTTP-"
+"The_relationship_between_configuration_files_and_JNDIHTTP_component\"/> "
+"illustrates the relationship between configuration files and the "
+"corresponding components."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:470
+#, no-c-format
+msgid "The relationship between configuration files and JNDI/HTTP component"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:477
+#, no-c-format
+msgid ""
+"The <literal>http-invoker.sar/META-INF/jboss-service.xml</literal> "
+"descriptor defines the <literal>HttpProxyFactory</literal> that creates the "
+"<literal>HttpInvokerProxy</literal> for the <literal>NamingService</"
+"literal>. The attributes that need to be configured for the "
+"<literal>HttpProxyFactory</literal> include:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:482
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">InvokerName</emphasis>: The JMX <literal>ObjectName</"
+"literal> of the <literal>NamingService</literal> defined in the "
+"<literal>conf/jboss-service.xml</literal> descriptor. The standard setting "
+"used in the JBoss distributions is <literal>jboss:service=Naming</literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:487
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">InvokerURL</emphasis> or <emphasis role=\"bold"
+"\">InvokerURLPrefix</emphasis> + InvokerURLSuffix + <emphasis role=\"bold"
+"\">UseHostName</emphasis>. You can specify the full HTTP URL to the "
+"<literal>InvokerServlet</literal> using the <literal>InvokerURL</literal> "
+"attribute, or you can specify the hostname independent parts of the URL and "
+"have the <literal>HttpProxyFactory</literal> fill them in. An example "
+"<literal>InvokerURL</literal> value would be <literal>http://jbosshost1.dot."
+"com:8080/invoker/JMXInvokerServlet</literal>. This can be broken down into:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:490
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">InvokerURLPrefix</emphasis>: the URL prefix prior to "
+"the hostname. Typically this will be <literal>http://</literal> or "
+"<literal>https://</literal> if SSL is to be used."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:495
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">InvokerURLSuffix</emphasis>: the URL suffix after "
+"the hostname. This will include the port number of the web server as well as "
+"the deployed path to the <literal>InvokerServlet</literal> . For the example "
+"<literal>InvokerURL</literal> value the <literal>InvokerURLSuffix</literal> "
+"would be <literal>:8080/invoker/JMXInvokerServlet</literal> without the "
+"quotes. The port number is determined by the web container service settings. "
+"The path to the <literal>InvokerServlet</literal> is specified in the "
+"<literal>http-invoker.sar/invoker.war/WEB-INF/web.xml</literal> descriptor."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:500
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">UseHostName</emphasis>: a flag indicating if the "
+"hostname should be used in place of the host IP address when building the "
+"hostname portion of the full <literal>InvokerURL</literal>. If true, "
+"<literal>InetAddress.getLocalHost().getHostName</literal> method will be "
+"used. Otherwise, the <literal>InetAddress.getLocalHost().getHostAddress()</"
+"literal> method is used."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:508
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ExportedInterface</emphasis>: The <literal>org.jnp."
+"interfaces.Naming</literal> interface the proxy will expose to clients. The "
+"actual client of this proxy is the JBoss JNDI implementation "
+"<literal>NamingContext</literal> class, which JNDI client obtain from "
+"<literal>InitialContext</literal> lookups when using the JBoss JNDI provider."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:513
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">JndiName</emphasis>: The name in JNDI under which "
+"the proxy is bound. This needs to be set to a blank/empty string to indicate "
+"the interface should not be bound into JNDI. We can&#39;t use the JNDI to "
+"bootstrap itself. This is the role of the <literal>NamingFactoryServlet</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:518
+#, no-c-format
+msgid ""
+"The <literal>http-invoker.sar/invoker.war/WEB-INF/web.xml</literal> "
+"descriptor defines the mappings of the <literal>NamingFactoryServlet</"
+"literal> and <literal>InvokerServlet</literal> along with their "
+"initialization parameters. The configuration of the "
+"<literal>NamingFactoryServlet</literal> relevant to JNDI/HTTP is the "
+"<literal>JNDIFactory</literal> entry which defines:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:523
+#, no-c-format
+msgid ""
+"A <literal>namingProxyMBean</literal> initialization parameter that maps to "
+"the <literal>HttpProxyFactory</literal> MBean name. This is used by the "
+"<literal>NamingFactoryServlet</literal> to obtain the <literal>Naming</"
+"literal> proxy which it will return in response to HTTP posts. For the "
+"default <literal>http-invoker.sar/META-INF/jboss-service.xml</literal> "
+"settings the name <literal>jboss:service=invoker,type=http,target=Naming</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:528
+#, no-c-format
+msgid ""
+"A proxy initialization parameter that defines the name of the "
+"<literal>namingProxyMBean</literal> attribute to query for the Naming proxy "
+"value. This defaults to an attribute name of <literal>Proxy</literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:533
+#, no-c-format
+msgid ""
+"The servlet mapping for the <literal>JNDIFactory</literal> configuration. "
+"The default setting for the unsecured mapping is <literal>/JNDIFactory/*</"
+"literal>. This is relative to the context root of the <literal>http-invoker."
+"sar/invoker.war</literal>, which by default is the WAR name minus the "
+"<literal>.war</literal> suffix."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:538
+#, no-c-format
+msgid ""
+"The configuration of the <literal>InvokerServlet</literal> relevant to JNDI/"
+"HTTP is the <literal>JMXInvokerServlet</literal> which defines:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:543
+#, no-c-format
+msgid ""
+"The servlet mapping of the <literal>InvokerServlet</literal>. The default "
+"setting for the unsecured mapping is <literal>/JMXInvokerServlet/*</"
+"literal>. This is relative to the context root of the <literal>http-invoker."
+"sar/invoker.war</literal>, which by default is the WAR name minus the "
+"<literal>.war</literal> suffix."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:551
+#, no-c-format
+msgid "Accessing JNDI over HTTPS"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:552
+#, no-c-format
+msgid ""
+"To be able to access JNDI over HTTP/SSL you need to enable an SSL connector "
+"on the web container. The details of this are covered in the Integrating "
+"Servlet Containers for Tomcat. We will demonstrate the use of HTTPS with a "
+"simple example client that uses an HTTPS URL as the JNDI provider URL. We "
+"will provide an SSL connector configuration for the example, so unless you "
+"are interested in the details of the SSL connector setup, the example is "
+"self contained."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:555
+#, no-c-format
+msgid ""
+"We also provide a configuration of the <literal>HttpProxyFactory</literal> "
+"setup to use an HTTPS URL. The following example shows the section of the "
+"<literal>http-invoker.sar</literal><literal>jboss-service.xml</literal> "
+"descriptor that the example installs to provide this configuration. All that "
+"has changed relative to the standard HTTP configuration are the "
+"<literal>InvokerURLPrefix</literal> and <literal>InvokerURLSuffix</literal> "
+"attributes, which setup an HTTPS URL using the 8443 port."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:558
+#, no-c-format
+msgid ""
+"&lt;!-- Expose the Naming service interface via HTTPS --&gt;\n"
+"&lt;mbean code=\"org.jboss.invocation.http.server.HttpProxyFactory\" \n"
+"       name=\"jboss:service=invoker,type=https,target=Naming\"&gt;\n"
+"    &lt;!-- The Naming service we are proxying --&gt;\n"
+"    &lt;attribute name=\"InvokerName\"&gt;jboss:service=Naming&lt;/"
+"attribute&gt;\n"
+"    &lt;!-- Compose the invoker URL from the cluster node address --&gt;\n"
+"    &lt;attribute name=\"InvokerURLPrefix\"&gt;https://&lt;/attribute&gt;\n"
+"    &lt;attribute name=\"InvokerURLSuffix\"&gt;:8443/invoker/"
+"JMXInvokerServlet &lt;/attribute&gt;\n"
+"    &lt;attribute name=\"UseHostName\"&gt;true&lt;/attribute&gt;\n"
+"    &lt;attribute name=\"ExportedInterface\"&gt;org.jnp.interfaces.Naming "
+"&lt;/attribute&gt;\n"
+"    &lt;attribute name=\"JndiName\"/&gt;\n"
+"    &lt;attribute name=\"ClientInterceptors\"&gt;\n"
+"        &lt;interceptors&gt;\n"
+"            &lt;interceptor&gt;org.jboss.proxy.ClientMethodInterceptor &lt;/"
+"interceptor&gt;\n"
+"            &lt;interceptor&gt;org.jboss.proxy.SecurityInterceptor&lt;/"
+"interceptor&gt;\n"
+"            &lt;interceptor&gt;org.jboss.naming.interceptors."
+"ExceptionInterceptor &lt;/interceptor&gt;\n"
+"            &lt;interceptor&gt;org.jboss.invocation.InvokerInterceptor &lt;/"
+"interceptor&gt;\n"
+"        &lt;/interceptors&gt;\n"
+"    &lt;/attribute&gt;\n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:559
+#, no-c-format
+msgid ""
+"At a minimum, a JNDI client using HTTPS requires setting up a HTTPS URL "
+"protocol handler. We will be using the Java Secure Socket Extension (JSSE) "
+"for HTTPS. The JSSE documentation does a good job of describing what is "
+"necessary to use HTTPS, and the following steps were needed to configure the "
+"example client shown in <xref linkend=\"Accessing_JNDI_over_HTTPS-"
+"A_JNDI_client_that_uses_HTTPS_as_the_transport\"/>:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:564
+#, no-c-format
+msgid ""
+"A protocol handler for HTTPS URLs must be made available to Java. The JSSE "
+"release includes an HTTPS handler in the <literal>com.sun.net.ssl.internal."
+"www.protocol</literal> package. To enable the use of HTTPS URLs you include "
+"this package in the standard URL protocol handler search property, "
+"<literal>java.protocol.handler.pkgs</literal>. We set the <literal>java."
+"protocol.handler.pkgs</literal> property in the Ant script."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:569
+#, no-c-format
+msgid ""
+"The JSSE security provider must be installed in order for SSL to work. This "
+"can be done either by installing the JSSE jars as an extension package, or "
+"programmatically. We use the programmatic approach in the example since this "
+"is less intrusive. Line 18 of the <literal>ExClient</literal> code "
+"demonstrates how this is done."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:574
+#, no-c-format
+msgid ""
+"The JNDI provider URL must use HTTPS as the protocol. Lines 24-25 of the "
+"<literal>ExClient</literal> code specify an HTTP/SSL connection to the "
+"localhost on port 8443. The hostname and port are defined by the web "
+"container SSL connector."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:579
+#, no-c-format
+msgid ""
+"The validation of the HTTPS URL hostname against the server certificate must "
+"be disabled. By default, the JSSE HTTPS protocol handler employs a strict "
+"validation of the hostname portion of the HTTPS URL against the common name "
+"of the server certificate. This is the same check done by web browsers when "
+"you connect to secured web site. We are using a self-signed server "
+"certificate that uses a common name of \"<literal>Chapter 8 SSL Example</"
+"literal>\" rather than a particular hostname, and this is likely to be "
+"common in development environments or intranets. The JBoss "
+"<literal>HttpInvokerProxy</literal> will override the default hostname "
+"checking if a <literal>org.jboss.security.ignoreHttpsHost</literal> system "
+"property exists and has a value of true. We set the <literal>org.jboss."
+"security.ignoreHttpsHost</literal> property to true in the Ant script."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:584
+#, no-c-format
+msgid "A JNDI client that uses HTTPS as the transport"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:585
+#, no-c-format
+msgid ""
+"package org.jboss.chap3.ex1;\n"
+"\n"
+"import java.security.Security;\n"
+"import java.util.Properties;\n"
+"import javax.naming.Context;\n"
+"import javax.naming.InitialContext;\n"
+"                    \n"
+"public class ExClient\n"
+"{\n"
+"    public static void main(String args[]) throws Exception\n"
+"    {\n"
+"        Properties env = new Properties();\n"
+"        env.setProperty(Context.INITIAL_CONTEXT_FACTORY,\n"
+"                        \"org.jboss.naming.HttpNamingContextFactory\");\n"
+"        env.setProperty(Context.PROVIDER_URL,\n"
+"                        \"https://localhost:8443/invoker/JNDIFactorySSL\");\n"
+"\n"
+"        Context ctx = new InitialContext(env);\n"
+"        System.out.println(\"Created InitialContext, env=\" + env);\n"
+"\n"
+"        Object data = ctx.lookup(\"jmx/invoker/RMIAdaptor\");\n"
+"        System.out.println(\"lookup(jmx/invoker/RMIAdaptor): \" + data);\n"
+"    }\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:586
+#, no-c-format
+msgid ""
+"To test the client, first build the chapter 3 example to create the "
+"<literal>chap3</literal> configuration fileset."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:589
+#, no-c-format
+msgid "[examples]$ ant -Dchap=naming config"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:590
+#, no-c-format
+msgid ""
+"Next, start the JBoss server using the <literal>naming</literal> "
+"configuration fileset:"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:593
+#, no-c-format
+msgid "[bin]$ sh run.sh -c naming"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:594
+#, no-c-format
+msgid "And finally, run the <literal>ExClient</literal> using:"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:597
+#, no-c-format
+msgid ""
+"[examples]$ ant -Dchap=naming -Dex=1 run-example\n"
+"...\n"
+"run-example1:\n"
+"     [java] Created InitialContext, env={java.naming.provider.url=https://"
+"localhost:8443/invo\n"
+"ker/JNDIFactorySSL, java.naming.factory.initial=org.jboss.naming."
+"HttpNamingContextFactory}\n"
+"     [java] lookup(jmx/invoker/RMIAdaptor): org.jboss.invocation.jrmp."
+"interfaces.JRMPInvokerP\n"
+"roxy at cac3fa"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:601
+#, no-c-format
+msgid "Securing Access to JNDI over HTTP"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:602
+#, no-c-format
+msgid ""
+"One benefit to accessing JNDI over HTTP is that it is easy to secure access "
+"to the JNDI <literal>InitialContext</literal> factory as well as the naming "
+"operations using standard web declarative security. This is possible because "
+"the server side handling of the JNDI/HTTP transport is implemented with two "
+"servlets. These servlets are included in the <literal>http-invoker.sar/"
+"invoker.war</literal> directory found in the <literal>default</literal> and "
+"<literal>all</literal> configuration deploy directories as shown previously. "
+"To enable secured access to JNDI you need to edit the <literal>invoker.war/"
+"WEB-INF/web.xml</literal> descriptor and remove all unsecured servlet "
+"mappings. For example, the <literal>web.xml</literal> descriptor shown in "
+"<xref linkend=\"Securing_Access_to_JNDI_over_HTTP-_An_example_web."
+"xml_descriptor_for_secured_access_to_the_JNDI_servlets\"/> only allows "
+"access to the <literal>invoker.war</literal> servlets if the user has been "
+"authenticated and has a role of <literal>HttpInvoker</literal>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:605
+#, no-c-format
+msgid "An example web.xml descriptor for secured access to the JNDI servlets"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:606
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"&lt;!DOCTYPE web-app PUBLIC\n"
+"          \"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN\"\n"
+"          \"http://java.sun.com/dtd/web-app_2_3.dtd\"&gt;\n"
+"&lt;web-app&gt;\n"
+"    &lt;!-- ### Servlets --&gt;\n"
+"    &lt;servlet&gt;\n"
+"        &lt;servlet-name&gt;JMXInvokerServlet&lt;/servlet-name&gt;\n"
+"        &lt;servlet-class&gt;\n"
+"            org.jboss.invocation.http.servlet.InvokerServlet\n"
+"        &lt;/servlet-class&gt;\n"
+"        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;\n"
+"    &lt;/servlet&gt;  &lt;servlet&gt;\n"
+"        &lt;servlet-name&gt;JNDIFactory&lt;/servlet-name&gt;\n"
+"        &lt;servlet-class&gt;\n"
+"            org.jboss.invocation.http.servlet.NamingFactoryServlet\n"
+"        &lt;/servlet-class&gt;\n"
+"        &lt;init-param&gt;\n"
+"            &lt;param-name&gt;namingProxyMBean&lt;/param-name&gt;\n"
+"            &lt;param-value&gt;jboss:service=invoker,type=http,"
+"target=Naming&lt;/param-value&gt;\n"
+"        &lt;/init-param&gt;\n"
+"        &lt;init-param&gt;\n"
+"            &lt;param-name&gt;proxyAttribute&lt;/param-name&gt;\n"
+"            &lt;param-value&gt;Proxy&lt;/param-value&gt;\n"
+"        &lt;/init-param&gt;\n"
+"        &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;\n"
+"    &lt;/servlet&gt; \n"
+"    &lt;!-- ### Servlet Mappings --&gt;\n"
+"    &lt;servlet-mapping&gt;\n"
+"        &lt;servlet-name&gt;JNDIFactory&lt;/servlet-name&gt;\n"
+"        &lt;url-pattern&gt;/restricted/JNDIFactory/*&lt;/url-pattern&gt;\n"
+"    &lt;/servlet-mapping&gt;\n"
+"    &lt;servlet-mapping&gt;\n"
+"        &lt;servlet-name&gt;JMXInvokerServlet&lt;/servlet-name&gt;\n"
+"        &lt;url-pattern&gt;/restricted/JMXInvokerServlet/*&lt;/url-"
+"pattern&gt;\n"
+"    &lt;/servlet-mapping&gt;  &lt;security-constraint&gt;\n"
+"        &lt;web-resource-collection&gt;\n"
+"            &lt;web-resource-name&gt;HttpInvokers&lt;/web-resource-name&gt;\n"
+"            &lt;description&gt;An example security config that only allows "
+"users with\n"
+"                the role HttpInvoker to access the HTTP invoker servlets "
+"&lt;/description&gt;\n"
+"            &lt;url-pattern&gt;/restricted/*&lt;/url-pattern&gt;\n"
+"            &lt;http-method&gt;GET&lt;/http-method&gt;\n"
+"            &lt;http-method&gt;POST&lt;/http-method&gt;\n"
+"        &lt;/web-resource-collection&gt;\n"
+"        &lt;auth-constraint&gt;\n"
+"            &lt;role-name&gt;HttpInvoker&lt;/role-name&gt;\n"
+"        &lt;/auth-constraint&gt;\n"
+"    &lt;/security-constraint&gt;\n"
+"    &lt;login-config&gt;\n"
+"        &lt;auth-method&gt;BASIC&lt;/auth-method&gt;\n"
+"        &lt;realm-name&gt;JBoss HTTP Invoker&lt;/realm-name&gt;\n"
+"    &lt;/login-config&gt;  &lt;security-role&gt;\n"
+"        &lt;role-name&gt;HttpInvoker&lt;/role-name&gt;\n"
+"    &lt;/security-role&gt;\n"
+"&lt;/web-app&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:607
+#, no-c-format
+msgid ""
+"The <literal>web.xml</literal> descriptor only defines which servlets are "
+"secured, and which roles are allowed to access the secured servlets. You "
+"must additionally define the security domain that will handle the "
+"authentication and authorization for the war. This is done through the "
+"<literal>jboss-web.xml</literal> descriptor, and an example that uses the "
+"<literal>http-invoker</literal> security domain is given below."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:610
+#, no-c-format
+msgid ""
+"&lt;jboss-web&gt;\n"
+"    &lt;security-domain&gt;java:/jaas/http-invoker&lt;/security-domain&gt;\n"
+"&lt;/jboss-web&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:611
+#, no-c-format
+msgid ""
+"The <literal>security-domain</literal> element defines the name of the "
+"security domain that will be used for the JAAS login module configuration "
+"used for authentication and authorization. See <xref linkend="
+"\"Whats_new_in_JBoss_4-J2EE_Certification_and_Standards_Compliance\"/> for "
+"additional details on the meaning and configuration of the security domain "
+"name."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:617
+#, no-c-format
+msgid "Securing Access to JNDI with a Read-Only Unsecured Context"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:618
+#, no-c-format
+msgid ""
+"Another feature available for the JNDI/HTTP naming service is the ability to "
+"define a context that can be accessed by unauthenticated users in read-only "
+"mode. This can be important for services used by the authentication layer. "
+"For example, the <literal>SRPLoginModule</literal> needs to lookup the SRP "
+"server interface used to perform authentication. We&#39;ll now walk through "
+"how read-only JNDI works in JBoss."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:621
+#, no-c-format
+msgid ""
+"First, the <literal>ReadOnlyJNDIFactory</literal> is declared in "
+"<literal>invoker.sar/WEB-INF/web.xml</literal>. It will be mapped to "
+"<literal>/invoker/ReadOnlyJNDIFactory</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:624
+#, no-c-format
+msgid ""
+"&lt;servlet&gt;\n"
+"    &lt;servlet-name&gt;ReadOnlyJNDIFactory&lt;/servlet-name&gt;\n"
+"    &lt;description&gt;A servlet that exposes the JBoss JNDI Naming service "
+"stub\n"
+"          through http, but only for a single read-only context. The return "
+"content \n"
+"          is serialized MarshalledValue containing the org.jnp.interfaces."
+"Naming \n"
+"          stub.\n"
+"    &lt;/description&gt;\n"
+"    &lt;servlet-class&gt;org.jboss.invocation.http.servlet."
+"NamingFactoryServlet&lt;/servlet-class&gt;\n"
+"    &lt;init-param&gt;\n"
+"        &lt;param-name&gt;namingProxyMBean&lt;/param-name&gt;\n"
+"        &lt;param-value&gt;<emphasis role=\"bold\">jboss:service=invoker,"
+"type=http,target=Naming,readonly=true</emphasis>&lt;/param-value&gt;\n"
+"    &lt;/init-param&gt;\n"
+"    &lt;init-param&gt;\n"
+"        &lt;param-name&gt;proxyAttribute&lt;/param-name&gt;\n"
+"        &lt;param-value&gt;Proxy&lt;/param-value&gt;\n"
+"    &lt;/init-param&gt;\n"
+"    &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;\n"
+"&lt;/servlet&gt;\n"
+"\n"
+"&lt;!-- ... --&gt;\n"
+"                        \n"
+"&lt;servlet-mapping&gt;\n"
+"    &lt;servlet-name&gt;ReadOnlyJNDIFactory&lt;/servlet-name&gt;\n"
+"    &lt;url-pattern&gt;/ReadOnlyJNDIFactory/*&lt;/url-pattern&gt;\n"
+"&lt;/servlet-mapping&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:625
+#, no-c-format
+msgid ""
+"The factory only provides a JNDI stub which needs to be connected to an "
+"invoker. Here the invoker is <literal>jboss:service=invoker,type=http,"
+"target=Naming,readonly=true</literal>. This invoker is declared in the "
+"<literal>http-invoker.sar/META-INF/jboss-service.xml</literal> file."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:628
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"org.jboss.invocation.http.server.HttpProxyFactory\"\n"
+"      name=\"jboss:service=invoker,type=http,target=Naming,readonly=true"
+"\"&gt;\n"
+"      &lt;attribute name=\"InvokerName\"&gt;jboss:service=Naming&lt;/"
+"attribute&gt;\n"
+"      &lt;attribute name=\"InvokerURLPrefix\"&gt;http://&lt;/attribute&gt;\n"
+"      &lt;attribute name=\"InvokerURLSuffix\"&gt;:8080<emphasis role=\"bold"
+"\">/invoker/readonly/JMXInvokerServlet</emphasis>&lt;/attribute&gt;\n"
+"      &lt;attribute name=\"UseHostName\"&gt;true&lt;/attribute&gt;\n"
+"      &lt;attribute name=\"ExportedInterface\"&gt;org.jnp.interfaces."
+"Naming&lt;/attribute&gt;\n"
+"      &lt;attribute name=\"JndiName\"&gt;&lt;/attribute&gt;\n"
+"      &lt;attribute name=\"ClientInterceptors\"&gt;\n"
+"          &lt;interceptors&gt;\n"
+"             &lt;interceptor&gt;org.jboss.proxy.ClientMethodInterceptor&lt;/"
+"interceptor&gt;\n"
+"             &lt;interceptor&gt;org.jboss.proxy.SecurityInterceptor&lt;/"
+"interceptor&gt;\n"
+"             &lt;interceptor&gt;org.jboss.naming.interceptors."
+"ExceptionInterceptor&lt;/interceptor&gt;\n"
+"             &lt;interceptor&gt;org.jboss.invocation.InvokerInterceptor&lt;/"
+"interceptor&gt;\n"
+"          &lt;/interceptors&gt;\n"
+"      &lt;/attribute&gt;\n"
+"   &lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:629
+#, no-c-format
+msgid ""
+"The proxy on the client side needs to talk back to a specific invoker "
+"servlet on the server side. The configuration here has the actual "
+"invocations going to <literal>/invoker/readonly/JMXInvokerServlet</literal>. "
+"This is actually the standard <literal>JMXInvokerServlet</literal> with a "
+"read-only filter attached."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:632
+#, no-c-format
+msgid ""
+"&lt;filter&gt;\n"
+"        &lt;filter-name&gt;ReadOnlyAccessFilter&lt;/filter-name&gt;\n"
+"        &lt;filter-class&gt;org.jboss.invocation.http.servlet."
+"ReadOnlyAccessFilter&lt;/filter-class&gt;\n"
+"        &lt;init-param&gt;\n"
+"            &lt;param-name&gt;readOnlyContext&lt;/param-name&gt;\n"
+"            &lt;param-value&gt;<emphasis role=\"bold\">readonly</"
+"emphasis>&lt;/param-value&gt;\n"
+"            &lt;description&gt;The top level JNDI context the filter will "
+"enforce\n"
+"                read-only access on. If specified only Context.lookup "
+"operations\n"
+"                will be allowed on this context. Another other operations "
+"or\n"
+"                lookups on any other context will fail. Do not associate "
+"this\n"
+"                filter with the JMXInvokerServlets if you want unrestricted\n"
+"                access. &lt;/description&gt;\n"
+"        &lt;/init-param&gt;\n"
+"        &lt;init-param&gt;\n"
+"            &lt;param-name&gt;invokerName&lt;/param-name&gt;\n"
+"            &lt;param-value&gt;jboss:service=Naming&lt;/param-value&gt;\n"
+"            &lt;description&gt;The JMX ObjectName of the naming service "
+"mbean &lt;/description&gt;\n"
+"        &lt;/init-param&gt;\n"
+"    &lt;/filter&gt;\n"
+"    \n"
+"    &lt;filter-mapping&gt;\n"
+"        &lt;filter-name&gt;ReadOnlyAccessFilter&lt;/filter-name&gt;\n"
+"        &lt;url-pattern&gt;/readonly/*&lt;/url-pattern&gt;\n"
+"    &lt;/filter-mapping&gt;\n"
+"\n"
+"    &lt;!-- ... --&gt;\n"
+"    &lt;!-- A mapping for the JMXInvokerServlet that only allows "
+"invocations \n"
+"            of lookups under a read-only context. This is enforced by the\n"
+"            ReadOnlyAccessFilter \n"
+"            --&gt;\n"
+"    &lt;servlet-mapping&gt;\n"
+"        &lt;servlet-name&gt;JMXInvokerServlet&lt;/servlet-name&gt;\n"
+"        &lt;url-pattern&gt;/readonly/JMXInvokerServlet/*&lt;/url-"
+"pattern&gt;\n"
+"    &lt;/servlet-mapping&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:633
+#, no-c-format
+msgid ""
+"The <literal>readOnlyContext</literal> parameter is set to "
+"<literal>readonly</literal> which means that when you access JBoss through "
+"the <literal>ReadOnlyJNDIFactory</literal>, you will only be able to access "
+"data in the <literal>readonly</literal> context. Here is a code fragment "
+"that illustrates the usage:"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:636
+#, no-c-format
+msgid ""
+"Properties env = new Properties();\n"
+"env.setProperty(Context.INITIAL_CONTEXT_FACTORY, \n"
+"                \"org.jboss.naming.HttpNamingContextFactory\");\n"
+"env.setProperty(Context.PROVIDER_URL, \n"
+"                \"http://localhost:8080/invoker/ReadOnlyJNDIFactory\");\n"
+"\n"
+"Context ctx2 = new InitialContext(env);\n"
+"Object data = ctx2.lookup(\"readonly/data\");"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:637
+#, no-c-format
+msgid ""
+"Attempts to look up any objects outside of the readonly context will fail. "
+"Note that JBoss doesn&#39;t ship with any data in the <literal>readonly</"
+"literal> context, so the readonly context won&#39;t be bound usable unless "
+"you create it."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:645
+#, no-c-format
+msgid "Additional Naming MBeans"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:646
+#, no-c-format
+msgid ""
+"In addition to the <literal>NamingService</literal> MBean that configures an "
+"embedded JBossNS server within JBoss, there are several additional MBean "
+"services related to naming that ship with JBoss. They are "
+"<literal>JndiBindingServiceMgr</literal>, <literal>NamingAlias</literal>, "
+"<literal>ExternalContext</literal>, and <literal>JNDIView</literal>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:650
+#, no-c-format
+msgid "JNDI Binding Manager"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:651
+#, no-c-format
+msgid ""
+"The JNDI binding manager service allows you to quickly bind objects into "
+"JNDI for use by application code. The MBean class for the binding service is "
+"<literal>org.jboss.naming.JNDIBindingServiceMgr</literal>. It has a single "
+"attribute, <literal>BindingsConfig</literal>, which accepts an XML document "
+"that conforms to the <literal>jndi-binding-service_1_0.xsd</literal> schema. "
+"The content of the <literal>BindingsConfig</literal> attribute is "
+"unmarshalled using the JBossXB framework. The following is an MBean "
+"definition that shows the most basic form usage of the JNDI binding manager "
+"service."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:654
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"org.jboss.naming.JNDIBindingServiceMgr\" \n"
+"       name=\"jboss.tests:name=example1\"&gt;\n"
+"    &lt;attribute name=\"BindingsConfig\" serialDataType=\"jbxb\"&gt;\n"
+"        &lt;jndi:bindings xmlns:xs=\"http://www.w3.org/2001/XMLSchema-"
+"instance\" \n"
+"                       xmlns:jndi=\"urn:jboss:jndi-binding-service\"\n"
+"                       xs:schemaLocation=\"urn:jboss:jndi-binding-service "
+"resource:jndi-binding-service_1_0.xsd\"&gt; \n"
+"            &lt;jndi:binding name=\"bindexample/message\"&gt;\n"
+"                &lt;jndi:value trim=\"true\"&gt;\n"
+"                    Hello, JNDI!\n"
+"                &lt;/jndi:value&gt;\n"
+"            &lt;/jndi:binding&gt;\n"
+"        &lt;/jndi:bindings&gt;\n"
+"    &lt;/attribute&gt;\n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:655
+#, no-c-format
+msgid ""
+"This binds the text string \"<literal>Hello, JNDI!</literal>\" under the "
+"JNDI name <literal>bindexample/message</literal>. An application would look "
+"up the value just as it would for any other JNDI value. The <literal>trim</"
+"literal> attribute specifies that leading and trailing whitespace should be "
+"ignored. The use of the attribute here is purely for illustrative purposes "
+"as the default value is true."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:658
+#, no-c-format
+msgid ""
+"InitialContext ctx  = new InitialContext();\n"
+"String         text = (String) ctx.lookup(\"bindexample/message\");"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:659
+#, no-c-format
+msgid ""
+"String values themselves are not that interesting. If a JavaBeans property "
+"editor is available, the desired class name can be specified using the "
+"<literal>type</literal> attribute"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:662
+#, no-c-format
+msgid ""
+"&lt;jndi:binding name=\"urls/jboss-home\"&gt;\n"
+"    &lt;jndi:value type=\"java.net.URL\"&gt;http://www.jboss.org&lt;/jndi:"
+"value&gt;\n"
+"&lt;/jndi:binding&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:663
+#, no-c-format
+msgid ""
+"The <literal>editor</literal> attribute can be used to specify a particular "
+"property editor to use."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:666
+#, no-c-format
+msgid ""
+"&lt;jndi:binding name=\"hosts/localhost\"&gt;\n"
+"    &lt;jndi:value editor=\"org.jboss.util.propertyeditor.InetAddressEditor"
+"\"&gt; \n"
+"        127.0.0.1 \n"
+"    &lt;/jndi:value&gt;\n"
+"&lt;/jndi:binding&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:667
+#, no-c-format
+msgid ""
+"For more complicated structures, any JBossXB-ready schema may be used. The "
+"following example shows how a <literal>java.util.Properties</literal> object "
+"would be mapped."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:670
+#, no-c-format
+msgid ""
+"&lt;jndi:binding name=\"maps/testProps\"&gt;\n"
+"    &lt;java:properties xmlns:java=\"urn:jboss:java-properties\" \n"
+"                     xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"                     xs:schemaLocation=\"urn:jboss:java-properties resource:"
+"java-properties_1_0.xsd\"&gt;\n"
+"        &lt;java:property&gt;\n"
+"            &lt;java:key&gt;key1&lt;/java:key&gt;\n"
+"            &lt;java:value&gt;value1&lt;/java:value&gt;\n"
+"        &lt;/java:property&gt;\n"
+"        &lt;java:property&gt;\n"
+"            &lt;java:key&gt;key2&lt;/java:key&gt;\n"
+"            &lt;java:value&gt;value2&lt;/java:value&gt;\n"
+"        &lt;/java:property&gt;\n"
+"    &lt;/java:properties&gt;\n"
+"&lt;/jndi:binding&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:671
+#, no-c-format
+msgid ""
+"For more information on JBossXB, see the <ulink url=\"http://wiki.jboss.org/"
+"wiki/Wiki.jsp?page=JBossXB\">JBossXB wiki page</ulink>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:677
+#, no-c-format
+msgid "The org.jboss.naming.NamingAlias MBean"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:678
+#, no-c-format
+msgid ""
+"The <literal>NamingAlias</literal> MBean is a simple utility service that "
+"allows you to create an alias in the form of a JNDI <literal>javax.naming."
+"LinkRef</literal> from one JNDI name to another. This is similar to a "
+"symbolic link in the UNIX file system. To an alias you add a configuration "
+"of the <literal>NamingAlias</literal> MBean to the <literal>jboss-service."
+"xml</literal> configuration file. The configurable attributes of the "
+"<literal>NamingAlias</literal> service are as follows:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:683
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">FromName</emphasis>: The location where the "
+"<literal>LinkRef</literal> is bound under JNDI."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:688
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">ToName</emphasis>: The to name of the alias. This is "
+"the target name to which the <literal>LinkRef</literal> refers. The name is "
+"a URL, or a name to be resolved relative to the <literal>InitialContext</"
+"literal>, or if the first character of the name is a dot (<literal>.</"
+"literal>), the name is relative to the context in which the link is bound."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:693
+#, no-c-format
+msgid ""
+"The following example provides a mapping of the JNDI name "
+"<literal>QueueConnectionFactory</literal> to the name "
+"<literal>ConnectionFactory</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:696
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"org.jboss.naming.NamingAlias\" \n"
+"       name=\"jboss.mq:service=NamingAlias,fromName=QueueConnectionFactory"
+"\"&gt;\n"
+"    &lt;attribute name=\"ToName\"&gt;ConnectionFactory&lt;/attribute&gt;\n"
+"    &lt;attribute name=\"FromName\"&gt;QueueConnectionFactory&lt;/"
+"attribute&gt;\n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:700
+#, no-c-format
+msgid "org.jboss.naming.ExternalContext MBean"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:701
+#, no-c-format
+msgid ""
+"The <literal>ExternalContext</literal> MBean allows you to federate external "
+"JNDI contexts into the JBoss server JNDI namespace. The term external refers "
+"to any naming service external to the JBossNS naming service running inside "
+"of the JBoss server VM. You can incorporate LDAP servers, file systems, DNS "
+"servers, and so on, even if the JNDI provider root context is not "
+"serializable. The federation can be made available to remote clients if the "
+"naming service supports remote access."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:704
+#, no-c-format
+msgid ""
+"To incorporate an external JNDI naming service, you have to add a "
+"configuration of the <literal>ExternalContext</literal> MBean service to the "
+"<literal>jboss-service.xml</literal> configuration file. The configurable "
+"attributes of the <literal>ExternalContext</literal> service are as follows:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:709
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">JndiName</emphasis>: The JNDI name under which the "
+"external context is to be bound."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:714
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">RemoteAccess</emphasis>: A boolean flag indicating "
+"if the external <literal>InitialContext</literal> should be bound using a "
+"<literal>Serializable</literal> form that allows a remote client to create "
+"the external <literal>InitialContext</literal> . When a remote client looks "
+"up the external context via the JBoss JNDI <literal>InitialContext</"
+"literal>, they effectively create an instance of the external "
+"<literal>InitialContext</literal> using the same env properties passed to "
+"the <literal>ExternalContext</literal> MBean. This will only work if the "
+"client can do a <literal>new InitialContext(env)</literal> remotely. This "
+"requires that the <literal>Context.PROVIDER_URL</literal> value of env is "
+"resolvable in the remote VM that is accessing the context. This should work "
+"for the LDAP example. For the file system example this most likely won&#39;t "
+"work unless the file system path refers to a common network path. If this "
+"property is not given it defaults to false."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:719
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">CacheContext</emphasis>: The <literal>cacheContext</"
+"literal> flag. When set to true, the external <literal>Context</literal> is "
+"only created when the MBean is started and then stored as an in memory "
+"object until the MBean is stopped. If cacheContext is set to false, the "
+"external <literal>Context</literal> is created on each lookup using the "
+"MBean properties and InitialContext class. When the uncached "
+"<literal>Context</literal> is looked up by a client, the client should "
+"invoke <literal>close()</literal> on the Context to prevent resource leaks."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:724
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">InitialContext</emphasis>: The fully qualified class "
+"name of the <literal>InitialContext</literal> implementation to use. Must be "
+"one of: <literal>javax.naming.InitialContext</literal>, <literal>javax."
+"naming.directory.InitialDirContext</literal> or <literal>javax.naming.ldap."
+"InitialLdapContext</literal>. In the case of the "
+"<literal>InitialLdapContext</literal> a null <literal>Controls</literal> "
+"array is used. The default is <literal>javax.naming.InitialContex</literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:729
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">Properties</emphasis>: The <literal>Properties</"
+"literal> attribute contains the JNDI properties for the external "
+"<literal>InitialContext</literal>. The input should be the text equivalent "
+"to what would go into a <literal>jndi.properties</literal> file."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:734
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">PropertiesURL</emphasis>: This set the <literal>jndi."
+"properties</literal> information for the external <literal>InitialContext</"
+"literal> from an external properties file. This is either a URL, string or a "
+"classpath resource name. Examples are as follows:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:739
+#, no-c-format
+msgid "file:///config/myldap.properties"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:744
+#, no-c-format
+msgid "http://config.mycompany.com/myldap.properties"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:749
+#, no-c-format
+msgid "/conf/myldap.properties"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:754
+#, no-c-format
+msgid "myldap.properties"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:761
+#, no-c-format
+msgid ""
+"The MBean definition below shows a binding to an external LDAP context into "
+"the JBoss JNDI namespace under the name <literal>external/ldap/jboss</"
+"literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:764
+#, no-c-format
+msgid ""
+"&lt;!-- Bind a remote LDAP server --&gt;\n"
+"&lt;mbean code=\"org.jboss.naming.ExternalContext\" \n"
+"       name=\"jboss.jndi:service=ExternalContext,jndiName=external/ldap/jboss"
+"\"&gt;\n"
+"    &lt;attribute name=\"JndiName\"&gt;external/ldap/jboss&lt;/"
+"attribute&gt;\n"
+"    &lt;attribute name=\"Properties\"&gt;\n"
+"        java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory\n"
+"        java.naming.provider.url=ldap://ldaphost.jboss.org:389/o=jboss.org\n"
+"        java.naming.security.principal=cn=Directory Manager\n"
+"        java.naming.security.authentication=simple\n"
+"        java.naming.security.credentials=secret\n"
+"    &lt;/attribute&gt;\n"
+"    &lt;attribute name=\"InitialContext\"&gt; javax.naming.ldap."
+"InitialLdapContext &lt;/attribute&gt;\n"
+"    &lt;attribute name=\"RemoteAccess\"&gt;true&lt;/attribute&gt;\n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:765
+#, no-c-format
+msgid ""
+"With this configuration, you can access the external LDAP context located at "
+"<literal>ldap://ldaphost.jboss.org:389/o=jboss.org</literal> from within the "
+"JBoss VM using the following code fragment:"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:768
+#, no-c-format
+msgid ""
+"InitialContext iniCtx = new InitialContext();\n"
+"LdapContext ldapCtx = iniCtx.lookup(\"external/ldap/jboss\");"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:769
+#, no-c-format
+msgid ""
+"Using the same code fragment outside of the JBoss server VM will work in "
+"this case because the <literal>RemoteAccess</literal> property was set to "
+"true. If it were set to false, it would not work because the remote client "
+"would receive a <literal>Reference</literal> object with an "
+"<literal>ObjectFactory</literal> that would not be able to recreate the "
+"external <literal>InitialContext</literal>"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:772
+#, no-c-format
+msgid ""
+"&lt;!-- Bind the /usr/local file system directory  --&gt;\n"
+"&lt;mbean code=\"org.jboss.naming.ExternalContext\" \n"
+"       name=\"jboss.jndi:service=ExternalContext,jndiName=external/fs/usr/"
+"local\"&gt;\n"
+"    &lt;attribute name=\"JndiName\"&gt;external/fs/usr/local&lt;/"
+"attribute&gt;\n"
+"    &lt;attribute name=\"Properties\"&gt;\n"
+"        java.naming.factory.initial=com.sun.jndi.fscontext."
+"RefFSContextFactory\n"
+"        java.naming.provider.url=file:///usr/local\n"
+"    &lt;/attribute&gt;\n"
+"    &lt;attribute name=\"InitialContext\"&gt;javax.naming.IntialContext&lt;/"
+"attribute&gt;\n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:773
+#, no-c-format
+msgid ""
+"This configuration describes binding a local file system directory <literal>/"
+"usr/local</literal> into the JBoss JNDI namespace under the name "
+"<literal>external/fs/usr/local</literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:776
+#, no-c-format
+msgid ""
+"With this configuration, you can access the external file system context "
+"located at <literal>file:///usr/local</literal> from within the JBoss VM "
+"using the following code fragment:"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:779
+#, no-c-format
+msgid ""
+"InitialContext iniCtx = new InitialContext();\n"
+"                Context ldapCtx = iniCtx.lookup(\"external/fs/usr/local\");"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:780
+#, no-c-format
+msgid ""
+"Note that the use the Sun JNDI service providers, which must be downloaded "
+"from <ulink url=\"http://java.sun.com/products/jndi/serviceproviders.html"
+"\"></ulink>. The provider JARs should be placed in the server configuration "
+"<literal>lib</literal> directory."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:786
+#, no-c-format
+msgid "The org.jboss.naming.JNDIView MBean"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:787
+#, no-c-format
+msgid ""
+"The JNDIView MBean allows the user to view the JNDI namespace tree as it "
+"exists in the JBoss server using the JMX agent view interface. To view the "
+"JBoss JNDI namespace using the JNDIView MBean, you connect to the JMX Agent "
+"View using the http interface. The default settings put this at "
+"<literal>http://localhost:8080/jmx-console/</literal>. On this page you will "
+"see a section that lists the registered MBeans sorted by domain. It should "
+"look something like that shown in <xref linkend=\"The_org.jboss.naming."
+"JNDIView_MBean-The_JMX_Console_view_of_the_configured_JBoss_MBeans\"/>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:791
+#, no-c-format
+msgid "The JMX Console view of the configured JBoss MBeans"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:798
+#, no-c-format
+msgid ""
+"Selecting the JNDIView link takes you to the JNDIView MBean view, which will "
+"have a list of the JNDIView MBean operations. This view should look similar "
+"to that shown in <xref linkend=\"The_org.jboss.naming.JNDIView_MBean-"
+"The_JMX_Console_view_of_the_JNDIView_MBean\"/>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:802
+#, no-c-format
+msgid "The JMX Console view of the JNDIView MBean"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:809
+#, no-c-format
+msgid ""
+"The list operation dumps out the JBoss server JNDI namespace as an HTML page "
+"using a simple text view. As an example, invoking the list operation "
+"produces the view shown in <xref linkend=\"The_org.jboss.naming."
+"JNDIView_MBean-The_JMX_Console_view_of_the_JNDIView_list_operation_output\"/"
+">."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:813
+#, no-c-format
+msgid "The JMX Console view of the JNDIView list operation output"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:825
+#, no-c-format
+msgid "J2EE and JNDI - The Application Component Environment"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:826
+#, no-c-format
+msgid ""
+"JNDI is a fundamental aspect of the J2EE specifications. One key usage is "
+"the isolation of J2EE component code from the environment in which the code "
+"is deployed. Use of the application component&#39;s environment allows the "
+"application component to be customized without the need to access or change "
+"the application component&#39;s source code. The application component "
+"environment is referred to as the ENC, the enterprise naming context. It is "
+"the responsibility of the application component container to make an ENC "
+"available to the container components in the form of JNDI Context. The ENC "
+"is utilized by the participants involved in the life cycle of a J2EE "
+"component in the following ways."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:831
+#, no-c-format
+msgid ""
+"Application component business logic should be coded to access information "
+"from its ENC. The component provider uses the standard deployment descriptor "
+"for the component to specify the required ENC entries. The entries are "
+"declarations of the information and resources the component requires at "
+"runtime."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:836
+#, no-c-format
+msgid ""
+"The container provides tools that allow a deployer of a component to map the "
+"ENC references made by the component developer to the deployment environment "
+"entity that satisfies the reference."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:841
+#, no-c-format
+msgid ""
+"The component deployer utilizes the container tools to ready a component for "
+"final deployment."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:846
+#, no-c-format
+msgid ""
+"The component container uses the deployment package information to build the "
+"complete component ENC at runtime"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:851
+#, no-c-format
+msgid ""
+"The complete specification regarding the use of JNDI in the J2EE platform "
+"can be found in section 5 of the J2EE 1.4 specification. The J2EE "
+"specification is available at <ulink url=\"http://java.sun.com/j2ee/download."
+"html\"></ulink>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:854
+#, no-c-format
+msgid ""
+"An application component instance locates the ENC using the JNDI API. An "
+"application component instance creates a <literal>javax.naming."
+"InitialContext</literal> object by using the no argument constructor and "
+"then looks up the naming environment under the name <literal>java:comp/env</"
+"literal>. The application component&#39;s environment entries are stored "
+"directly in the ENC, or in its subcontexts. <xref linkend="
+"\"J2EE_and_JNDI___The_Application_Component_Environment-"
+"ENC_access_sample_code\"/> illustrates the prototypical lines of code a "
+"component uses to access its ENC."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:857
+#, no-c-format
+msgid "ENC access sample code"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:858
+#, no-c-format
+msgid ""
+"// Obtain the application component&#39;s ENC\n"
+"Context iniCtx = new InitialContext();\n"
+"Context compEnv = (Context) iniCtx.lookup(\"java:comp/env\");"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:859
+#, no-c-format
+msgid ""
+"An application component environment is a local environment that is "
+"accessible only by the component when the application server container "
+"thread of control is interacting with the application component. This means "
+"that an EJB <literal>Bean1</literal> cannot access the ENC elements of EJB "
+"<literal>Bean2</literal>, and vice versa. Similarly, Web application "
+"<literal>Web1</literal> cannot access the ENC elements of Web application "
+"<literal>Web2</literal> or <literal>Bean1</literal> or <literal>Bean2</"
+"literal> for that matter. Also, arbitrary client code, whether it is "
+"executing inside of the application server VM or externally cannot access a "
+"component&#39;s <literal>java:comp</literal> JNDI context. The purpose of "
+"the ENC is to provide an isolated, read-only namespace that the application "
+"component can rely on regardless of the type of environment in which the "
+"component is deployed. The ENC must be isolated from other components "
+"because each component defines its own ENC content. Components <literal>A</"
+"literal> and <literal>B</literal>, for example, may define the same name to "
+"refer to different objects. For example, EJB <literal>Bean1</literal> may "
+"define an environment entry <literal>java:comp/env/red</literal> to refer to "
+"the hexadecimal value for the RGB color for red, while Web application "
+"<literal>Web1</literal> may bind the same name to the deployment environment "
+"language locale representation of red."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:862
+#, no-c-format
+msgid ""
+"There are three commonly used levels of naming scope in JBoss: names under "
+"<literal>java:comp</literal>, names under <literal>java:</literal>, and any "
+"other name. As discussed, the <literal>java:comp</literal> context and its "
+"subcontexts are only available to the application component associated with "
+"that particular context. Subcontexts and object bindings directly under "
+"<literal>java:</literal> are only visible within the JBoss server virtual "
+"machine and not to remote clients. Any other context or object binding is "
+"available to remote clients, provided the context or object supports "
+"serialization. You&#39;ll see how the isolation of these naming scopes is "
+"achieved in the <xref linkend=\"Naming_on_JBoss-The_JBossNS_Architecture\"/>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:865
+#, no-c-format
+msgid ""
+"An example of where the restricting a binding to the <literal>java:</"
+"literal> context is useful would be a <literal>javax.sql.DataSource</"
+"literal> connection factory that can only be used inside of the JBoss server "
+"where the associated database pool resides. On the other hand, an EJB home "
+"interface would be bound to a globally visible name that should accessible "
+"by remote client."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:869
+#, no-c-format
+msgid "ENC Usage Conventions"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:870
+#, no-c-format
+msgid ""
+"JNDI is used as the API for externalizing a great deal of information from "
+"an application component. The JNDI name that the application component uses "
+"to access the information is declared in the standard <literal>ejb-jar.xml</"
+"literal> deployment descriptor for EJB components, and the standard "
+"<literal>web.xml</literal> deployment descriptor for Web components. Several "
+"different types of information may be stored in and retrieved from JNDI "
+"including:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:875
+#, no-c-format
+msgid ""
+"Environment entries as declared by the <literal>env-entry</literal> elements"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:880
+#, no-c-format
+msgid ""
+"EJB references as declared by <literal>ejb-ref</literal> and <literal>ejb-"
+"local-ref</literal> elements."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:885
+#, no-c-format
+msgid ""
+"Resource manager connection factory references as declared by the "
+"<literal>resource-ref</literal> elements"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:890
+#, no-c-format
+msgid ""
+"Resource environment references as declared by the <literal>resource-env-"
+"ref</literal> elements"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:895
+#, no-c-format
+msgid ""
+"Each type of deployment descriptor element has a JNDI usage convention with "
+"regard to the name of the JNDI context under which the information is bound. "
+"Also, in addition to the standard deploymentdescriptor element, there is a "
+"JBoss server specific deployment descriptor element that maps the JNDI name "
+"as used by the application component to the deployment environment JNDI name."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:899
+#, no-c-format
+msgid "Environment Entries"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:900
+#, no-c-format
+msgid ""
+"Environment entries are the simplest form of information stored in a "
+"component ENC, and are similar to operating system environment variables "
+"like those found on UNIX or Windows. Environment entries are a name-to-value "
+"binding that allows a component to externalize a value and refer to the "
+"value using a name."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:903
+#, no-c-format
+msgid ""
+"An environment entry is declared using an <literal>env-entry</literal> "
+"element in the standard deployment descriptors. The <literal>env-entry</"
+"literal> element contains the following child elements:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:908
+#, no-c-format
+msgid ""
+"An optional <emphasis role=\"bold\">description</emphasis> element that "
+"provides a description of the entry"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:913
+#, no-c-format
+msgid ""
+"An <emphasis role=\"bold\">env-entry-name</emphasis> element giving the name "
+"of the entry relative to <literal>java:comp/env</literal>"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:918
+#, no-c-format
+msgid ""
+"An <emphasis role=\"bold\">env-entry-type</emphasis> element giving the Java "
+"type of the entry value that must be one of:"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:922
+#, no-c-format
+msgid "java.lang.Byte"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:927
+#, no-c-format
+msgid "java.lang.Boolean"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:932
+#, no-c-format
+msgid "java.lang.Character"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:937
+#, no-c-format
+msgid "java.lang.Double"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:942
+#, no-c-format
+msgid "java.lang.Float"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:947
+#, no-c-format
+msgid "java.lang.Integer"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:952
+#, no-c-format
+msgid "java.lang.Long"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:957
+#, no-c-format
+msgid "java.lang.Short"
+msgstr ""
+
+#. Tag: literal
+#: J2EE_Naming_On_JBOSS.xml:962
+#, no-c-format
+msgid "java.lang.String"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:969
+#, no-c-format
+msgid ""
+"An <emphasis role=\"bold\">env-entry-value</emphasis> element giving the "
+"value of entry as a string"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:974
+#, no-c-format
+msgid ""
+"An example of an <literal>env-entry</literal> fragment from an <literal>ejb-"
+"jar.xml</literal> deployment descriptor is given in <xref linkend="
+"\"Environment_Entries-An_example_ejb_jar.xml_env_entry_fragment\"/>. There "
+"is no JBoss specific deployment descriptor element because an <literal>env-"
+"entry</literal> is a complete name and value specification. <xref linkend="
+"\"Environment_Entries-_ENC_env_entry_access_code_fragment\"/> shows a sample "
+"code fragment for accessing the <literal>maxExemptions</literal> and "
+"<literal>taxRate</literal><literal>env-entry</literal> values declared in "
+"the deployment descriptor."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:977
+#, no-c-format
+msgid "An example ejb-jar.xml env-entry fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:978
+#, no-c-format
+msgid ""
+"&lt;!-- ... --&gt;\n"
+"&lt;session&gt;\n"
+"    &lt;ejb-name&gt;ASessionBean&lt;/ejb-name&gt;\n"
+"    &lt;!-- ... --&gt;\n"
+"    &lt;env-entry&gt;\n"
+"        &lt;description&gt;The maximum number of tax exemptions allowed &lt;/"
+"description&gt;\n"
+"        &lt;env-entry-name&gt;maxExemptions&lt;/env-entry-name&gt;\n"
+"        &lt;env-entry-type&gt;java.lang.Integer&lt;/env-entry-type&gt;\n"
+"        &lt;env-entry-value&gt;15&lt;/env-entry-value&gt;\n"
+"    &lt;/env-entry&gt;\n"
+"    &lt;env-entry&gt;\n"
+"        &lt;description&gt;The tax rate &lt;/description&gt;\n"
+"        &lt;env-entry-name&gt;taxRate&lt;/env-entry-name&gt;\n"
+"        &lt;env-entry-type&gt;java.lang.Float&lt;/env-entry-type&gt;\n"
+"        &lt;env-entry-value&gt;0.23&lt;/env-entry-value&gt;\n"
+"    &lt;/env-entry&gt;\n"
+"&lt;/session&gt;\n"
+"&lt;!-- ... --&gt;"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:979
+#, no-c-format
+msgid "ENC env-entry access code fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:980
+#, no-c-format
+msgid ""
+"InitialContext iniCtx = new InitialContext();\n"
+"Context envCtx = (Context) iniCtx.lookup(\"java:comp/env\");\n"
+"Integer maxExemptions = (Integer) envCtx.lookup(\"maxExemptions\");\n"
+"Float taxRate = (Float) envCtx.lookup(\"taxRate\");"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:985
+#, no-c-format
+msgid "EJB References"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:986
+#, no-c-format
+msgid ""
+"It is common for EJBs and Web components to interact with other EJBs. "
+"Because the JNDI name under which an EJB home interface is bound is a "
+"deployment time decision, there needs to be a way for a component developer "
+"to declare a reference to an EJB that will be linked by the deployer. EJB "
+"references satisfy this requirement."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:989
+#, no-c-format
+msgid ""
+"An EJB reference is a link in an application component naming environment "
+"that points to a deployed EJB home interface. The name used by the "
+"application component is a logical link that isolates the component from the "
+"actual name of the EJB home in the deployment environment. The J2EE "
+"specification recommends that all references to enterprise beans be "
+"organized in the <literal>java:comp/env/ejb</literal> context of the "
+"application component&#39;s environment."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:992
+#, no-c-format
+msgid ""
+"An EJB reference is declared using an <literal>ejb-ref</literal> element in "
+"the deployment descriptor. Each <literal>ejb-ref</literal> element describes "
+"the interface requirements that the referencing application component has "
+"for the referenced enterprise bean. The <literal>ejb-ref</literal> element "
+"contains the following child elements:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:997 J2EE_Naming_On_JBOSS.xml:1090
+#: J2EE_Naming_On_JBOSS.xml:1140 J2EE_Naming_On_JBOSS.xml:1245
+#, no-c-format
+msgid ""
+"An optional <emphasis role=\"bold\">description</emphasis> element that "
+"provides the purpose of the reference."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1002 J2EE_Naming_On_JBOSS.xml:1095
+#, no-c-format
+msgid ""
+"An <emphasis role=\"bold\">ejb-ref-name</emphasis> element that specifies "
+"the name of the reference relative to the <literal>java:comp/env</literal> "
+"context. To place the reference under the recommended <literal>java:comp/env/"
+"ejb</literal> context, use an <literal>ejb/link-name</literal> form for the "
+"<literal>ejb-ref-name</literal> value."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1007 J2EE_Naming_On_JBOSS.xml:1100
+#, no-c-format
+msgid ""
+"An <emphasis role=\"bold\">ejb-ref-type</emphasis> element that specifies "
+"the type of the EJB. This must be either <literal>Entity</literal> or "
+"<literal>Session</literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1012
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">home</emphasis> element that gives the fully "
+"qualified class name of the EJB home interface."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1017
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">remote</emphasis> element that gives the fully "
+"qualified class name of the EJB remote interface."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1022
+#, no-c-format
+msgid ""
+"An optional <emphasis role=\"bold\">ejb-link</emphasis> element that links "
+"the reference to another enterprise bean in the same EJB JAR or in the same "
+"J2EE application unit. The <literal>ejb-link</literal> value is the "
+"<literal>ejb-name</literal> of the referenced bean. If there are multiple "
+"enterprise beans with the same <literal>ejb-name</literal>, the value uses "
+"the path name specifying the location of the <literal>ejb-jar</literal> file "
+"that contains the referenced component. The path name is relative to the "
+"referencing <literal>ejb-jar</literal> file. The Application Assembler "
+"appends the <literal>ejb-name</literal> of the referenced bean to the path "
+"name separated by <literal>#</literal>. This allows multiple beans with the "
+"same name to be uniquely identified."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1027
+#, no-c-format
+msgid ""
+"An EJB reference is scoped to the application component whose declaration "
+"contains the <literal>ejb-ref</literal> element. This means that the EJB "
+"reference is not accessible from other application components at runtime, "
+"and that other application components may define <literal>ejb-ref</literal> "
+"elements with the same <literal>ejb-ref-name</literal> without causing a "
+"name conflict. <xref linkend=\"EJB_References-An_example_ejb_jar."
+"xml_ejb_ref_descriptor_fragment\"/> provides an <literal>ejb-jar.xml</"
+"literal> fragment that illustrates the use of the <literal>ejb-ref</literal> "
+"element. A code sample that illustrates accessing the "
+"<literal>ShoppingCartHome</literal> reference declared in <xref linkend="
+"\"EJB_References-An_example_ejb_jar.xml_ejb_ref_descriptor_fragment\"/> is "
+"given in <xref linkend=\"EJB_References-_ENC_ejb_ref_access_code_fragment\"/"
+">."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1030
+#, no-c-format
+msgid "An example ejb-jar.xml ejb-ref descriptor fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1031
+#, no-c-format
+msgid ""
+"&lt;!-- ... --&gt;\n"
+"&lt;session&gt;\n"
+"    &lt;ejb-name&gt;ShoppingCartBean&lt;/ejb-name&gt;\n"
+"    &lt;!-- ...--&gt;\n"
+"&lt;/session&gt;\n"
+"\n"
+"&lt;session&gt;\n"
+"    &lt;ejb-name&gt;ProductBeanUser&lt;/ejb-name&gt;\n"
+"    &lt;!--...--&gt;\n"
+"    &lt;ejb-ref&gt;\n"
+"        &lt;description&gt;This is a reference to the store products entity "
+"&lt;/description&gt;\n"
+"        &lt;ejb-ref-name&gt;ejb/ProductHome&lt;/ejb-ref-name&gt;\n"
+"        &lt;ejb-ref-type&gt;Entity&lt;/ejb-ref-type&gt;\n"
+"        &lt;home&gt;org.jboss.store.ejb.ProductHome&lt;/home&gt;\n"
+"        &lt;remote&gt; org.jboss.store.ejb.Product&lt;/remote&gt;\n"
+"    &lt;/ejb-ref&gt;\n"
+"\n"
+"&lt;/session&gt;\n"
+"\n"
+"&lt;session&gt;\n"
+"    &lt;ejb-ref&gt;\n"
+"        &lt;ejb-name&gt;ShoppingCartUser&lt;/ejb-name&gt;\n"
+"        &lt;!--...--&gt;\n"
+"        &lt;ejb-ref-name&gt;ejb/ShoppingCartHome&lt;/ejb-ref-name&gt;\n"
+"        &lt;ejb-ref-type&gt;Session&lt;/ejb-ref-type&gt;\n"
+"        &lt;home&gt;org.jboss.store.ejb.ShoppingCartHome&lt;/home&gt;\n"
+"        &lt;remote&gt; org.jboss.store.ejb.ShoppingCart&lt;/remote&gt;\n"
+"        &lt;ejb-link&gt;ShoppingCartBean&lt;/ejb-link&gt;\n"
+"    &lt;/ejb-ref&gt;\n"
+"&lt;/session&gt;\n"
+"\n"
+"&lt;entity&gt;\n"
+"    &lt;description&gt;The Product entity bean &lt;/description&gt;\n"
+"    &lt;ejb-name&gt;ProductBean&lt;/ejb-name&gt;\n"
+"    &lt;!--...--&gt;\n"
+"&lt;/entity&gt;\n"
+"\n"
+"&lt;!--...--&gt;"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1032
+#, no-c-format
+msgid "ENC ejb-ref access code fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1033
+#, no-c-format
+msgid ""
+"InitialContext iniCtx = new InitialContext();\n"
+"Context ejbCtx = (Context) iniCtx.lookup(\"java:comp/env/ejb\");\n"
+"ShoppingCartHome home = (ShoppingCartHome) ejbCtx.lookup(\"ShoppingCartHome"
+"\");"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1038
+#, no-c-format
+msgid ""
+"EJB References with <literal>jboss.xml</literal> and <literal>jboss-web.xml</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1039
+#, no-c-format
+msgid ""
+"The JBoss specific <literal>jboss.xml</literal> EJB deployment descriptor "
+"affects EJB references in two ways. First, the <literal>jndi-name</literal> "
+"child element of the <literal>session</literal> and <literal>entity</"
+"literal> elements allows the user to specify the deployment JNDI name for "
+"the EJB home interface. In the absence of a <literal>jboss.xml</literal> "
+"specification of the <literal>jndi-name</literal> for an EJB, the home "
+"interface is bound under the <literal>ejb-jar.xml</literal><literal>ejb-"
+"name</literal> value. For example, the session EJB with the <literal>ejb-"
+"name</literal> of <literal>ShoppingCartBean</literal> in <xref linkend="
+"\"EJB_References-An_example_ejb_jar.xml_ejb_ref_descriptor_fragment\"/> "
+"would have its home interface bound under the JNDI name "
+"<literal>ShoppingCartBean</literal> in the absence of a <literal>jboss.xml</"
+"literal><literal>jndi-name</literal> specification."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1042
+#, no-c-format
+msgid ""
+"The second use of the <literal>jboss.xml</literal> descriptor with respect "
+"to <literal>ejb-ref</literal>s is the setting of the destination to which a "
+"component&#39;s ENC <literal>ejb-ref</literal> refers. The <literal>ejb-"
+"link</literal> element cannot be used to refer to EJBs in another enterprise "
+"application. If your <literal>ejb-ref</literal> needs to access an external "
+"EJB, you can specify the JNDI name of the deployed EJB home using the "
+"<literal>jboss.xml</literal><literal>ejb-ref/jndi-name</literal> element."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1045
+#, no-c-format
+msgid ""
+"The <literal>jboss-web.xml</literal> descriptor is used only to set the "
+"destination to which a Web application ENC <literal>ejb-ref</literal> "
+"refers. The content model for the JBoss <literal>ejb-ref</literal> is as "
+"follows:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1050
+#, no-c-format
+msgid ""
+"An <emphasis role=\"bold\">ejb-ref-name</emphasis> element that corresponds "
+"to the <emphasis role=\"bold\">ejb-ref-name</emphasis> element in the "
+"<emphasis role=\"bold\">ejb-jar.xml</emphasis> or <emphasis role=\"bold"
+"\">web.xml</emphasis> standard descriptor"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1055
+#, no-c-format
+msgid ""
+"A <literal>jndi-name</literal> element that specifies the JNDI name of the "
+"EJB home interface in the deployment environment"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1060
+#, no-c-format
+msgid ""
+"provides an example <literal>jboss.xml</literal> descriptor fragment that "
+"illustrates the following usage points:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1065
+#, no-c-format
+msgid ""
+"The <literal>ProductBeanUser</literal><literal>ejb-ref</literal> link "
+"destination is set to the deployment name of <literal>jboss/store/"
+"ProductHome</literal>"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1070
+#, no-c-format
+msgid ""
+"The deployment JNDI name of the <literal>ProductBean</literal> is set to "
+"<literal>jboss/store/ProductHome</literal>"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1075
+#, no-c-format
+msgid "An example jboss.xml ejb-ref fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1076
+#, no-c-format
+msgid ""
+"&lt;!-- ... --&gt;\n"
+"&lt;session&gt;\n"
+"    &lt;ejb-name&gt;ProductBeanUser&lt;/ejb-name&gt;\n"
+"    &lt;ejb-ref&gt;\n"
+"        &lt;ejb-ref-name&gt;ejb/ProductHome&lt;/ejb-ref-name&gt;\n"
+"        &lt;jndi-name&gt;<emphasis role=\"bold\">jboss/store/ProductHome</"
+"emphasis>&lt;/jndi-name&gt;\n"
+"    &lt;/ejb-ref&gt;\n"
+"&lt;/session&gt;\n"
+"                        \n"
+"&lt;entity&gt;\n"
+"    &lt;ejb-name&gt;ProductBean&lt;/ejb-name&gt;\n"
+"    &lt;jndi-name&gt;<emphasis role=\"bold\">jboss/store/ProductHome</"
+"emphasis>&lt;/jndi-name&gt;\n"
+"     &lt;!-- ... --&gt;\n"
+"&lt;/entity&gt;\n"
+"&lt;!-- ... --&gt;"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1081
+#, no-c-format
+msgid "EJB Local References"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1082
+#, no-c-format
+msgid ""
+"EJB 2.0 added local interfaces that do not use RMI call by value semantics. "
+"These interfaces use a call by reference semantic and therefore do not incur "
+"any RMI serialization overhead. An EJB local reference is a link in an "
+"application component naming environment that points to a deployed EJB local "
+"home interface. The name used by the application component is a logical link "
+"that isolates the component from the actual name of the EJB local home in "
+"the deployment environment. The J2EE specification recommends that all "
+"references to enterprise beans be organized in the <literal>java:comp/env/"
+"ejb</literal> context of the application component&#39;s environment."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1085
+#, no-c-format
+msgid ""
+"An EJB local reference is declared using an <literal>ejb-local-ref</literal> "
+"element in the deployment descriptor. Each <literal>ejb-local-ref</literal> "
+"element describes the interface requirements that the referencing "
+"application component has for the referenced enterprise bean. The "
+"<literal>ejb-local-ref</literal> element contains the following child "
+"elements:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1105
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">local-home</emphasis> element that gives the fully "
+"qualified class name of the EJB local home interface."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1110
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">local</emphasis> element that gives the fully "
+"qualified class name of the EJB local interface."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1115
+#, no-c-format
+msgid ""
+"An <emphasis role=\"bold\">ejb-link</emphasis> element that links the "
+"reference to another enterprise bean in the <literal>ejb-jar</literal> file "
+"or in the same J2EE application unit. The <literal>ejb-link</literal> value "
+"is the <literal>ejb-name</literal> of the referenced bean. If there are "
+"multiple enterprise beans with the same <literal>ejb-name</literal>, the "
+"value uses the path name specifying the location of the <literal>ejb-jar</"
+"literal> file that contains the referenced component. The path name is "
+"relative to the referencing <literal>ejb-jar</literal> file. The Application "
+"Assembler appends the <literal>ejb-name</literal> of the referenced bean to "
+"the path name separated by <literal>#</literal>. This allows multiple beans "
+"with the same name to be uniquely identified. An <literal>ejb-link</literal> "
+"element must be specified in JBoss to match the local reference to the "
+"corresponding EJB."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1120
+#, no-c-format
+msgid ""
+"An EJB local reference is scoped to the application component whose "
+"declaration contains the <literal>ejb-local-ref</literal> element. This "
+"means that the EJB local reference is not accessible from other application "
+"components at runtime, and that other application components may define "
+"<literal>ejb-local-ref</literal> elements with the same <literal>ejb-ref-"
+"name</literal> without causing a name conflict. <xref linkend="
+"\"EJB_Local_References-_An_example_ejb_jar."
+"xml_ejb_local_ref_descriptor_fragment\"/> provides an <literal>ejb-jar.xml</"
+"literal> fragment that illustrates the use of the <literal>ejb-local-ref</"
+"literal> element. A code sample that illustrates accessing the "
+"<literal>ProbeLocalHome</literal> reference declared in <xref linkend="
+"\"EJB_Local_References-_An_example_ejb_jar."
+"xml_ejb_local_ref_descriptor_fragment\"/> is given in <xref linkend="
+"\"EJB_Local_References-ENC_ejb_local_ref_access_code_fragment\"/>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1123
+#, no-c-format
+msgid "An example ejb-jar.xml ejb-local-ref descriptor fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1124
+#, no-c-format
+msgid ""
+"&lt;!-- ... --&gt;\n"
+"    &lt;session&gt;\n"
+"        &lt;ejb-name&gt;Probe&lt;/ejb-name&gt;\n"
+"        &lt;home&gt;org.jboss.test.perf.interfaces.ProbeHome&lt;/home&gt;\n"
+"        &lt;remote&gt;org.jboss.test.perf.interfaces.Probe&lt;/remote&gt;\n"
+"        &lt;local-home&gt;org.jboss.test.perf.interfaces.ProbeLocalHome&lt;/"
+"local-home&gt;\n"
+"        &lt;local&gt;org.jboss.test.perf.interfaces.ProbeLocal&lt;/"
+"local&gt;\n"
+"        &lt;ejb-class&gt;org.jboss.test.perf.ejb.ProbeBean&lt;/ejb-"
+"class&gt;\n"
+"        &lt;session-type&gt;Stateless&lt;/session-type&gt;\n"
+"        &lt;transaction-type&gt;Bean&lt;/transaction-type&gt;\n"
+"    &lt;/session&gt;\n"
+"    &lt;session&gt;\n"
+"        &lt;ejb-name&gt;PerfTestSession&lt;/ejb-name&gt;\n"
+"        &lt;home&gt;org.jboss.test.perf.interfaces.PerfTestSessionHome&lt;/"
+"home&gt;\n"
+"        &lt;remote&gt;org.jboss.test.perf.interfaces.PerfTestSession&lt;/"
+"remote&gt;\n"
+"        &lt;ejb-class&gt;org.jboss.test.perf.ejb.PerfTestSessionBean&lt;/ejb-"
+"class&gt;\n"
+"        &lt;session-type&gt;Stateless&lt;/session-type&gt;\n"
+"        &lt;transaction-type&gt;Container&lt;/transaction-type&gt;\n"
+"        &lt;ejb-ref&gt;\n"
+"            &lt;ejb-ref-name&gt;ejb/ProbeHome&lt;/ejb-ref-name&gt;\n"
+"            &lt;ejb-ref-type&gt;Session&lt;/ejb-ref-type&gt;\n"
+"            &lt;home&gt;org.jboss.test.perf.interfaces.SessionHome&lt;/"
+"home&gt;\n"
+"            &lt;remote&gt;org.jboss.test.perf.interfaces.Session&lt;/"
+"remote&gt;\n"
+"            &lt;ejb-link&gt;Probe&lt;/ejb-link&gt;\n"
+"        &lt;/ejb-ref&gt;\n"
+"        &lt;ejb-local-ref&gt;\n"
+"            &lt;ejb-ref-name&gt;ejb/ProbeLocalHome&lt;/ejb-ref-name&gt;\n"
+"            &lt;ejb-ref-type&gt;Session&lt;/ejb-ref-type&gt;\n"
+"            &lt;local-home&gt;org.jboss.test.perf.interfaces."
+"ProbeLocalHome&lt;/local-home&gt;\n"
+"            &lt;local&gt;org.jboss.test.perf.interfaces.ProbeLocal&lt;/"
+"local&gt;\n"
+"            &lt;ejb-link&gt;Probe&lt;/ejb-link&gt;\n"
+"        &lt;/ejb-local-ref&gt;\n"
+"    &lt;/session&gt;\n"
+"    &lt;!-- ... --&gt;"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1125
+#, no-c-format
+msgid "ENC ejb-local-ref access code fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1126
+#, no-c-format
+msgid ""
+"InitialContext iniCtx = new InitialContext();\n"
+"Context ejbCtx = (Context) iniCtx.lookup(\"java:comp/env/ejb\");\n"
+"ProbeLocalHome home = (ProbeLocalHome) ejbCtx.lookup(\"ProbeLocalHome\");"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1131
+#, no-c-format
+msgid "Resource Manager Connection Factory References"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1132
+#, no-c-format
+msgid ""
+"Resource manager connection factory references allow application component "
+"code to refer to resource factories using logical names called resource "
+"manager connection factory references. Resource manager connection factory "
+"references are defined by the <literal>resource-ref</literal> elements in "
+"the standard deployment descriptors. The <literal>Deployer</literal> binds "
+"the resource manager connection factory references to the actual resource "
+"manager connection factories that exist in the target operational "
+"environment using the <literal>jboss.xml</literal> and <literal>jboss-web."
+"xml</literal> descriptors."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1135
+#, no-c-format
+msgid ""
+"Each <literal>resource-ref</literal> element describes a single resource "
+"manager connection factory reference. The <literal>resource-ref</literal> "
+"element consists of the following child elements:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1145
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">res-ref-name</emphasis> element that specifies the "
+"name of the reference relative to the <literal>java:comp/env</literal> "
+"context. The resource type based naming convention for which subcontext to "
+"place the <literal>res-ref-name</literal> into is discussed in the next "
+"paragraph."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1150
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">res-type</emphasis> element that specifies the "
+"fully qualified class name of the resource manager connection factory."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1155
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">res-auth</emphasis> element that indicates whether "
+"the application component code performs resource signon programmatically, or "
+"whether the container signs on to the resource based on the principal "
+"mapping information supplied by the Deployer. It must be one of "
+"<literal>Application</literal> or <literal>Container</literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1160
+#, no-c-format
+msgid ""
+"An optional <emphasis role=\"bold\">res-sharing-scope</emphasis> element. "
+"This currently is not supported by JBoss."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1165
+#, no-c-format
+msgid ""
+"The J2EE specification recommends that all resource manager connection "
+"factory references be organized in the subcontexts of the application "
+"component&#39;s environment, using a different subcontext for each resource "
+"manager type. The recommended resource manager type to subcontext name is as "
+"follows:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1170
+#, no-c-format
+msgid ""
+"JDBC <literal>DataSource</literal> references should be declared in the "
+"<literal>java:comp/env/jdbc</literal> subcontext."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1175
+#, no-c-format
+msgid ""
+"JMS connection factories should be declared in the <literal>java:comp/env/"
+"jms</literal> subcontext."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1180
+#, no-c-format
+msgid ""
+"JavaMail connection factories should be declared in the <literal>java:comp/"
+"env/mail</literal> subcontext."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1185
+#, no-c-format
+msgid ""
+"URL connection factories should be declared in the <literal>java:comp/env/"
+"url</literal> subcontext."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1190
+#, no-c-format
+msgid ""
+"shows an example <literal>web.xml</literal> descriptor fragment that "
+"illustrates the <literal>resource-ref</literal> element usage. <xref linkend="
+"\"Resource_Manager_Connection_Factory_References-"
+"ENC_resource_ref_access_sample_code_fragment\"/> provides a code fragment "
+"that an application component would use to access the <literal>DefaultMail</"
+"literal> resource declared by the <literal>resource-ref</literal>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1193
+#, no-c-format
+msgid "A web.xml resource-ref descriptor fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1194
+#, no-c-format
+msgid ""
+"&lt;web&gt;\n"
+"    &lt;!-- ... --&gt;\n"
+"    &lt;servlet&gt;\n"
+"        &lt;servlet-name&gt;AServlet&lt;/servlet-name&gt;\n"
+"        &lt;!-- ... --&gt;\n"
+"    &lt;/servlet&gt;\n"
+"    &lt;!-- ... --&gt;\n"
+"    &lt;!-- JDBC DataSources (java:comp/env/jdbc) --&gt;\n"
+"    &lt;resource-ref&gt;\n"
+"        &lt;description&gt;The default DS&lt;/description&gt;\n"
+"        &lt;res-ref-name&gt;jdbc/DefaultDS&lt;/res-ref-name&gt;\n"
+"        &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;\n"
+"        &lt;res-auth&gt;Container&lt;/res-auth&gt;\n"
+"    &lt;/resource-ref&gt;\n"
+"    &lt;!-- JavaMail Connection Factories (java:comp/env/mail) --&gt;\n"
+"    &lt;resource-ref&gt;\n"
+"        &lt;description&gt;Default Mail&lt;/description&gt;\n"
+"        &lt;res-ref-name&gt;mail/DefaultMail&lt;/res-ref-name&gt;\n"
+"        &lt;res-type&gt;javax.mail.Session&lt;/res-type&gt;\n"
+"        &lt;res-auth&gt;Container&lt;/res-auth&gt;\n"
+"    &lt;/resource-ref&gt;\n"
+"    &lt;!-- JMS Connection Factories (java:comp/env/jms) --&gt;\n"
+"    &lt;resource-ref&gt;\n"
+"        &lt;description&gt;Default QueueFactory&lt;/description&gt;\n"
+"        &lt;res-ref-name&gt;jms/QueueFactory&lt;/res-ref-name&gt;\n"
+"        &lt;res-type&gt;javax.jms.QueueConnectionFactory&lt;/res-type&gt;\n"
+"        &lt;res-auth&gt;Container&lt;/res-auth&gt;\n"
+"    &lt;/resource-ref&gt; \n"
+"&lt;web&gt;"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1195
+#, no-c-format
+msgid "ENC resource-ref access sample code fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1196
+#, no-c-format
+msgid ""
+"Context initCtx = new InitialContext();\n"
+"javax.mail.Session s = (javax.mail.Session)\n"
+"initCtx.lookup(\"java:comp/env/mail/DefaultMail\");"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1201
+#, no-c-format
+msgid ""
+"Resource Manager Connection Factory References with jboss.xml and jboss-web."
+"xml"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1202
+#, no-c-format
+msgid ""
+"The purpose of the JBoss <literal>jboss.xml</literal> EJB deployment "
+"descriptor and <literal>jboss-web.xml</literal> Web application deployment "
+"descriptor is to provide the link from the logical name defined by the "
+"<literal>res-ref-name</literal> element to the JNDI name of the resource "
+"factory as deployed in JBoss. This is accomplished by providing a "
+"<literal>resource-ref</literal> element in the <literal>jboss.xml</literal> "
+"or <literal>jboss-web.xml</literal> descriptor. The JBoss <literal>resource-"
+"ref</literal> element consists of the following child elements:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1207
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">res-ref-name</emphasis> element that must match "
+"the <literal>res-ref-name</literal> of a corresponding <literal>resource-"
+"ref</literal> element from the <literal>ejb-jar.xml</literal> or "
+"<literal>web.xml</literal> standard descriptors"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1212
+#, no-c-format
+msgid ""
+"An optional <emphasis role=\"bold\">res-type</emphasis> element that "
+"specifies the fully qualified class name of the resource manager connection "
+"factory"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1217
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">jndi-name</emphasis> element that specifies the "
+"JNDI name of the resource factory as deployed in JBoss"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1222
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">res-url</emphasis> element that specifies the URL "
+"string in the case of a <literal>resource-ref</literal> of type "
+"<literal>java.net.URL</literal>"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1227
+#, no-c-format
+msgid ""
+"provides a sample <literal>jboss-web.xml</literal> descriptor fragment that "
+"shows sample mappings of the <literal>resource-ref</literal> elements given "
+"in <xref linkend=\"Resource_Manager_Connection_Factory_References-_A_web."
+"xml_resource_ref_descriptor_fragment\"/>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1230
+#, no-c-format
+msgid "A sample jboss-web.xml resource-ref descriptor fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1231
+#, no-c-format
+msgid ""
+"&lt;jboss-web&gt;\n"
+"    &lt;!-- ... --&gt;\n"
+"    &lt;resource-ref&gt;\n"
+"        &lt;res-ref-name&gt;jdbc/DefaultDS&lt;/res-ref-name&gt;\n"
+"        &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;\n"
+"        &lt;jndi-name&gt;java:/DefaultDS&lt;/jndi-name&gt;\n"
+"    &lt;/resource-ref&gt;\n"
+"    &lt;resource-ref&gt;\n"
+"        &lt;res-ref-name&gt;mail/DefaultMail&lt;/res-ref-name&gt;\n"
+"        &lt;res-type&gt;javax.mail.Session&lt;/res-type&gt;\n"
+"        &lt;jndi-name&gt;java:/Mail&lt;/jndi-name&gt;\n"
+"    &lt;/resource-ref&gt;\n"
+"    &lt;resource-ref&gt;\n"
+"        &lt;res-ref-name&gt;jms/QueueFactory&lt;/res-ref-name&gt;\n"
+"        &lt;res-type&gt;javax.jms.QueueConnectionFactory&lt;/res-type&gt;\n"
+"        &lt;jndi-name&gt;QueueConnectionFactory&lt;/jndi-name&gt;\n"
+"    &lt;/resource-ref&gt;\n"
+"    &lt;!-- ... --&gt;\n"
+"&lt;/jboss-web&gt;"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1236
+#, no-c-format
+msgid "Resource Environment References"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1237
+#, no-c-format
+msgid ""
+"Resource environment references are elements that refer to administered "
+"objects that are associated with a resource (for example, JMS destinations) "
+"using logical names. Resource environment references are defined by the "
+"<literal>resource-env-ref</literal> elements in the standard deployment "
+"descriptors. The <literal>Deployer</literal> binds the resource environment "
+"references to the actual administered objects location in the target "
+"operational environment using the <literal>jboss.xml</literal> and "
+"<literal>jboss-web.xml</literal> descriptors."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1240
+#, no-c-format
+msgid ""
+"Each <literal>resource-env-ref</literal> element describes the requirements "
+"that the referencing application component has for the referenced "
+"administered object. The <literal>resource-env-ref</literal> element "
+"consists of the following child elements:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1250
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">resource-env-ref-name</emphasis> element that "
+"specifies the name of the reference relative to the <literal>java:comp/env</"
+"literal> context. Convention places the name in a subcontext that "
+"corresponds to the associated resource factory type. For example, a JMS "
+"queue reference named <literal>MyQueue</literal> should have a "
+"<literal>resource-env-ref-name</literal> of <literal>jms/MyQueue</literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1255
+#, no-c-format
+msgid ""
+"A <emphasis role=\"bold\">resource-env-ref-type</emphasis> element that "
+"specifies the fully qualified class name of the referenced object. For "
+"example, in the case of a JMS queue, the value would be <literal>javax.jms."
+"Queue</literal>."
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1260
+#, no-c-format
+msgid ""
+"provides an example <literal>resource-ref-env</literal> element declaration "
+"by a session bean. <xref linkend=\"Resource_Environment_References-"
+"_ENC_resource_env_ref_access_code_fragment\"/> gives a code fragment that "
+"illustrates how to look up the <literal>StockInfo</literal> queue declared "
+"by the <literal>resource-env-ref</literal>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1263
+#, no-c-format
+msgid "An example ejb-jar.xml resource-env-ref fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1264
+#, no-c-format
+msgid ""
+"&lt;session&gt;\n"
+"    &lt;ejb-name&gt;MyBean&lt;/ejb-name&gt;\n"
+"    &lt;!-- ... --&gt;\n"
+"    &lt;resource-env-ref&gt;\n"
+"        &lt;description&gt;This is a reference to a JMS queue used in the\n"
+"            processing of Stock info\n"
+"        &lt;/description&gt;\n"
+"        &lt;resource-env-ref-name&gt;jms/StockInfo&lt;/resource-env-ref-"
+"name&gt;\n"
+"        &lt;resource-env-ref-type&gt;javax.jms.Queue&lt;/resource-env-ref-"
+"type&gt;\n"
+"    &lt;/resource-env-ref&gt;\n"
+"    &lt;!-- ... --&gt;\n"
+"&lt;/session&gt;"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1265
+#, no-c-format
+msgid "ENC resource-env-ref access code fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1266
+#, no-c-format
+msgid ""
+"InitialContext iniCtx = new InitialContext();\n"
+"javax.jms.Queue q = (javax.jms.Queue)\n"
+"envCtx.lookup(\"java:comp/env/jms/StockInfo\");"
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1271
+#, no-c-format
+msgid "Resource Environment References and jboss.xml, jboss-web.xml"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1272
+#, no-c-format
+msgid ""
+"The purpose of the JBoss <literal>jboss.xml</literal> EJB deployment "
+"descriptor and <literal>jboss-web.xml</literal> Web application deployment "
+"descriptor is to provide the link from the logical name defined by the "
+"<literal>resource-env-ref-name</literal> element to the JNDI name of the "
+"administered object deployed in JBoss. This is accomplished by providing a "
+"<literal>resource-env-ref</literal> element in the <literal>jboss.xml</"
+"literal> or <literal>jboss-web.xml</literal> descriptor. The JBoss "
+"<literal>resource-env-ref</literal> element consists of the following child "
+"elements:"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1277
+#, no-c-format
+msgid ""
+"A <literal>resource-env-ref-name</literal> element that must match the "
+"<literal>resource-env-ref-name</literal> of a corresponding "
+"<literal>resource-env-ref</literal> element from the <literal>ejb-jar.xml</"
+"literal> or <literal>web.xml</literal> standard descriptors"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1282
+#, no-c-format
+msgid ""
+"A <literal>jndi-name</literal> element that specifies the JNDI name of the "
+"resource as deployed in JBoss"
+msgstr ""
+
+#. Tag: para
+#: J2EE_Naming_On_JBOSS.xml:1287
+#, no-c-format
+msgid ""
+"provides a sample <literal>jboss.xml</literal> descriptor fragment that "
+"shows a sample mapping for the <literal>StockInfo</literal><literal>resource-"
+"env-ref</literal>."
+msgstr ""
+
+#. Tag: title
+#: J2EE_Naming_On_JBOSS.xml:1290
+#, no-c-format
+msgid "A sample jboss.xml resource-env-ref descriptor fragment"
+msgstr ""
+
+#. Tag: programlisting
+#: J2EE_Naming_On_JBOSS.xml:1291
+#, no-c-format
+msgid ""
+"&lt;session&gt;\n"
+"    &lt;ejb-name&gt;MyBean&lt;/ejb-name&gt;\n"
+"    &lt;!-- ... --&gt;\n"
+"    &lt;resource-env-ref&gt;\n"
+"        &lt;resource-env-ref-name&gt;jms/StockInfo&lt;/resource-env-ref-"
+"name&gt;\n"
+"        &lt;jndi-name&gt;queue/StockInfoQueue&lt;/jndi-name&gt;\n"
+"    &lt;/resource-env-ref&gt;\n"
+"    &lt;!-- ... --&gt;\n"
+"&lt;/session&gt;"
+msgstr ""

Added: projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Legal_Notice.po
===================================================================
--- projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Legal_Notice.po	                        (rev 0)
+++ projects/docs/trunk/AS_4/Server_Configuration_Guide/ja-JP/Legal_Notice.po	2008-01-21 05:09:32 UTC (rev 69162)
@@ -0,0 +1,31 @@
+# Language ja-JP translations for PACKAGE package.
+# Automatically generated, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2007-11-05 06:01+0000\n"
+"PO-Revision-Date: 2007-11-05 06:01+0000\n"
+"Last-Translator: Automatically generated\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
+#: Legal_Notice.xml:6
+#, no-c-format
+msgid "Legal Notice"
+msgstr ""
+
+#. Tag: address
+#: Legal_Notice.xml:8
+#, no-c-format
+msgid ""
+"<street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
+"state><postcode>27606-2072</postcode><country>USA</country><phone>Phone: +1 "
+"919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 "
+"3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, "
+"<state>NC</state><postcode>27709</postcode><country>USA</country>"
+msgstr ""




More information about the jboss-cvs-commits mailing list