[jboss-cvs] JBossAS SVN: r84282 - projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Feb 16 19:25:41 EST 2009


Author: xhuang at jboss.com
Date: 2009-02-16 19:25:40 -0500 (Mon, 16 Feb 2009)
New Revision: 84282

Removed:
   projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Clustering_Guide_Introduction.po
   projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Clustering_Intro.po
Log:
update

Deleted: projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Clustering_Guide_Introduction.po
===================================================================
--- projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Clustering_Guide_Introduction.po	2009-02-16 23:38:45 UTC (rev 84281)
+++ projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Clustering_Guide_Introduction.po	2009-02-17 00:25:40 UTC (rev 84282)
@@ -1,9165 +0,0 @@
-# translation of Clustering_Guide_Introduction.po to
-# Language /tmp/mike/JBEAP420/JBAS translations for JBEAP package.
-# Copyright (C) 2007, 2009 Free Software Foundation, Inc.
-#
-# Automatically generated, 2007.
-# Xi HUANG <xhuang at redhat.com>, 2009.
-msgid ""
-msgstr ""
-"Project-Id-Version: Clustering_Guide_Introduction\n"
-"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-20 02:37+0000\n"
-"PO-Revision-Date: 2009-01-22 15:54+1000\n"
-"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
-"Language-Team:  <en at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:5
-#, no-c-format
-#, fuzzy
-msgid "Clustering"
-msgstr "群集"
-
-#. Tag: subtitle
-#: Clustering_Guide_Introduction.xml:6
-#, no-c-format
-#, fuzzy
-msgid "High Availability Enterprise Services via JBoss Clusters"
-msgstr "用 JBoss 群集实现高可用性企业服务"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:9
-#, no-c-format
-#, fuzzy
-msgid "Introduction"
-msgstr "简介"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:10
-#, fuzzy, 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 ""
-"群集系统(Clustering)允许我们在多台平行的服务器(群集节点)上运行一个应用程"
-"序。负载分布在不同的服务器上,即使其中任何一台崩溃,应用程序还是可以在其他群"
-"集节点(cluster nodes)上运行。群集对于可扩展性企业级应用程序是很关键的,因为"
-"你简单地把更多节点加入到群集系统里就可以提高性能。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:14
-#, no-c-format
-#, fuzzy
-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 ""
-"JBoss 应用服务器(AS)缺省支持群集系统。最简单的启动 JBoss 服务器群集的方法就"
-"是在同一本地网络里启动多个 JBoss 实例,每个实例都可以用 <literal>run -c all</"
-"literal> 命令来运行。这些按照 <literal>all</literal> 配置文件启动的实例,可以"
-"检测到对方而自动组成一个群集系统。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:17
-#, fuzzy, 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 ""
-"在本章的第一部分,我们将讨论 JBoss 群集服务的基本概念。在阅读本章后面的内容之"
-"前,先理解这些概念是很重要的。在这部分内容之后,我们将介绍怎样为特定类型的应"
-"用程序配置群集系统。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:23
-#, no-c-format
-#, fuzzy
-msgid "Cluster Definition"
-msgstr "群集系统的定义"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:24
-#, no-c-format
-#, fuzzy
-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 "群集系统是节点(node)的集合,它们彼此通信并实现共同的目标。在 JBoss 群集(也称为 \"partition\")里,节点是一个 JBoss 服务器实例。节点间的通信由 JGroups group çš„ communication 库来处理,而 JGroups Channel 提供核心的功能,它跟踪群集里有什么节点并在节点间可靠地交换消息。具有相同配置和名称的 JGroups Channel 能够动态地发行彼此并组成一个组。这就是为什么在同一网络里简单地执行“run -c all”启动两个 AS 实例就能组成群集 - 每个 AS 都启动了一个带有相同缺省配置的 Channel(实际上是几个),所以它们可以动态地发现对方并组成群集。在任何时候节点都可以动态地添加到群集或从群集删除,这只要启动或停止符合其他群集成员的配置和名称的 Channel 就可以了。总而言之,JBoss 群集是一系列 AS 服务器实例的集合,每个都以相同配置å’!
 Œåç§°çš„ JGroups Channel 运行。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:29
-#, no-c-format
-#, fuzzy
-msgid ""
-"On the same AS instance, different services can create their own Channel. In "
-"a default 5.0.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 "HAPartition."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:32
-#, no-c-format
-msgid ""
-"So, if you go to two AS 5.0.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_Introduction.xml:36
-#, no-c-format
-#, fuzzy
-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 "在相同的网络上,即使是对于相同的服务,都可能有不同的群集。<xref linkend=\"clustering-Partition.fig\"/> 显示了一个分成三个群集的 JBoss 服务器实例网络,第三个群集只有一个节点。这种拓扑结构可以通过简单地配置 AS 实例来设立,对于要为了组成群集的频道,它们的配置和名称相同但和相同网络上的其他频道不同。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:38
-#, no-c-format
-#, fuzzy
-msgid "Clusters and server nodes"
-msgstr "群集和服务器节点"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:46
-#, no-c-format
-#, fuzzy
-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 "“JGroups 配置”和“隔离 JGroups 频道”章节介绍了如何配置频道的细节,例如怎样找到所需端点而忽略不需要的端点。如前所述,JBoss AS 缺省使用 4 个独立的 JGroups 频道。它们分成两个类别:通用的 HAPartition 服务使用的频道和 JBoss Cache 创建的用于特殊目的(如缓存和状态复制)的 3 个频道。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:50
-#, no-c-format
-#, fuzzy
-msgid "HAPartition"
-msgstr "HAPartition"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:52
-#, no-c-format
-#, fuzzy
-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 "HAPartition 是 AS 群集里各种任务使用的通用服务。它是构建在 JGroups 频道上的绝对层,提供对从一个或多个群集成员创建/接收 RPC 调用的支持。HAPartition 也支持分布式的运行在每个群集成员上的群集服务注册表。当群集成员资格或者群集服务注册发生变动时,它为感兴趣的 Listener 提供通知。HAPartition 是许多群集服务的核心组成部分,如智能客户端群集代理(Smart Client-side Clustered Proxies)、EJB2 SFSB 复制和实体缓存管理、Farming、HA-JNDI 和 HA 单点登录,我们将在本指南的后面部分进行讨论。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:58
-#, fuzzy, 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 ""
-"下例展示了标准 JBoss AS 发行版本里的 <literal>HAPartition</literal> MBean 的定义。如果你在本地网络里用缺省的群集设定来启动  JBoss 服务器,你将得到一个叫 <literal>DefaultPartition</"
-"literal> 的缺省群集,它包括了所有作为节点的服务器实例。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:62
-#, no-c-format
-#, fuzzy
-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 ""
-"&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;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:63
-#, fuzzy, 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 ""
-"在这里,我们忽略了这个频道的详细的 JGroups 协议配置。JGroups 处理节点之间底层的点到点通信,我们将在 <xref linkend=\"jbosscache-jgroups\"/> 里讨论它的配置。下面的列表展示了 "
-"<literal>HAPartition</literal> MBean 里可用的配置属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:68
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">PartitionName</emphasis> 是用来指定节点名称的可选属"
-"性。它的缺省值是 <literal>DefaultPartition</literal>。使用 <literal>-g </literal>(等于 --partition)命令行选项可在 JBoss 启动时设置它的值。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:72
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"bold\">NodeAddress</emphasis> is an optional attribute used "
-"to help generate a unique name for this node."
-msgstr "<emphasis role=\"bold\">NodeAddress</emphasis> 是为节点生成唯一名称的可选属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:75
-#, no-c-format
-#, fuzzy
-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 ""
-"<emphasis role=\"bold\">DeadlockDetection</emphasis> 是用来通知 JGroups 为每"
-"个请求运行消息死锁检测算法(message deadlock detection algorithms)的可选布尔"
-"值属性。它的缺省值是 <literal>false</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:80
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">StateTransferTimeout</emphasis> 是用来指定跨群集的状"
-"态复制(state replication)的超时时间(以毫秒为单位)的可选属性。状态复制指的是在服务启动时从其他运行的群集成员获取应用程序初始状态的过程。它的缺省值是 <literal>30000</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:83
-#, no-c-format
-#, fuzzy
-msgid ""
-"<emphasis role=\"bold\">PartitionConfig</emphasis> is an element to specify "
-"JGroup configuration options for this cluster (see <xref linkend="
-"\"jbosscache-jgroups\"/>)."
-msgstr ""
-"<emphasis role=\"bold\">PartitionConfig</emphasis> 是一个用来为这个群集(参"
-"看 <xref linkend=\"jbosscache-jgroups\"/>)指定 JGroup 配置选项的元素"
-"(element)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:87
-#, no-c-format
-#, fuzzy
-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 "为了组成群集,节点必须具有相同的 <literal>PartitionName</literal> 和 <literal>ParitionConfig</literal> 元素。对一些而非全部节点的这个两个元素的修改会导致群集分离。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:90
-#, fuzzy, 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 ""
-"你可以用浏览器访问群集系统里的任何 JBoss 实例的 JMX 控制台来查看当前的群集信"
-"息(如,<literal>http://hostname:8080/jmx-console/</literal>),点击 "
-"<literal>jboss:service=DefaultPartition</literal> MBean(如果你使用了 -g 启动选项,你可以改变 MBean 名来反映群集名)。<literal>CurrentView</literal> 字段会显示当前群集的 IP 地址的列表。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:94 Clustering_Guide_Introduction.xml:398
-#: Clustering_Guide_Introduction.xml:405 Clustering_Guide_Introduction.xml:411
-#: Clustering_Guide_Introduction.xml:1061
-#: Clustering_Guide_Introduction.xml:1486
-#: Clustering_Guide_Introduction.xml:2454
-#: Clustering_Guide_Introduction.xml:2478
-#, fuzzy, no-c-format
-msgid "Note"
-msgstr "备注 "
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:95
-#, fuzzy, 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 ""
-"从技术上来讲,我们可以在同一时间把 JBoss 服务器实例放到多个 HAPartition 里,但我们通常"
-"不推荐这么做,因为这增加了管理的复杂性。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:101
-#, fuzzy, no-c-format
-msgid "JBoss Cache channels"
-msgstr "JBoss Cache 频道"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:102
-#, fuzzy, 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 ""
-"JBoss Cache 是个一个能用在任何应用程序和独立服务器环境里的分布式缓存框架。JBoss AS 集成了 JBoss "
-"Cache 来为 HTTP 会话,EJB 3.0,entity beans 和 Hibernate 持久化对象 "
-"(persistence objects) 提供缓存服务,每个缓存服务都在不同的 MBean 里定义,每个缓存都创建自己的 JGroups 频道。我们将在后面讨论特定服务时介绍这些 MBean。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:107
-#, no-c-format
-#, fuzzy
-msgid "Service Architectures"
-msgstr "服务架构"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:108
-#, fuzzy, 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 ""
-"每个节点上的 <literal>HAPartition</literal> MBean 定义的群集拓扑结构"
-"(clustering topography)对系统管理员很重要。但是对于大部分的应用程序开发者来"
-"说,你可能更关心从客户应用程序的角度来看的群集架构。JBoss AS 支持两种群集架"
-"构:客户端拦截器(client-side interceptors)(也称为 smart proxies 或 stubs)和负载平衡系"
-"统(load balancers)。选用哪种架构取决于客户端的类型。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:114 Clustering_Guide_Introduction.xml:160
-#, fuzzy, no-c-format
-msgid "Client-side interceptor architecture"
-msgstr "客户端拦截器架构"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:115
-#, fuzzy, 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 ""
-"JBoss 应用服务器提供的大部分远程服务,包括 JNDI、EJB、RMI 和 JBoss Remoting,"
-"都要求客户端获得(如,查找和下载)一个 stub(或 proxy)对象。占位对象(stub "
-"object)由服务器生成,它实现服务的商业接口。客户可对占位对象调用本地方法。这"
-"个调用会自动寻找路由,并被服务器管理的服务对象引用。在群集环境里,服务器生成"
-"的占位对象也是一个懂得怎样把调用指引向不同节点的拦截器。占位对象寻找合适的服"
-"务器节点、配置调用参数、解释调用结果,并把结果返回给调用程序。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:120
-#, fuzzy, 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 ""
-"这些 stub 拦截器拥有群集系统的更新信息。例如,它们知道所有可用网络节点的 "
-"IP 地址,怎样在节点上分摊负载的算法(请参考下一部分内容),和如果目标节点不可"
-"用时对请求进行失效切换(failover)。对于每个服务请求,服务器节点都用群集里最"
-"新的信息来更新 stub interceptor。例如,如果一个节点退出群集系统后,每个客户 "
-"stub interceptor 在下一次连接活动的节点时,都会用新的配置来更新。在 service "
-"stub 上的所有操作对于客户应用程序都是透明的。<xref linkend=\"clustering-"
-"InterceptorArch.fig\"/> 里说明了客户端拦截器群集架构。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:123
-#, no-c-format
-#, fuzzy
-msgid "The client-side interceptor (proxy) architecture for clustering"
-msgstr "The client-side interceptor (proxy) architecture for clustering"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:131
-#, no-c-format
-#, fuzzy
-msgid ""
-"describes how to enable the client proxy to handle the entire cluster "
-"restart."
-msgstr "描述怎样用客户代理(client proxy)来处理整个群集系统的重启。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:136
-#, no-c-format
-#, fuzzy
-msgid "Load balancer"
-msgstr "负载平衡系统"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:137
-#, fuzzy, 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 ""
-"其他的 JBoss 服务,特别是 HTTP web 服务,不要求客户下载任何东西。客户端(如,"
-"web 浏览器)按照某种通信协议(如 HTTP 协议)直接发送请求和接收回复。在这种情"
-"况下,负载平衡系统需要处理所有的请求并把它们分配给群集里的服务器节点。 "
-"客户端只需要知道如何和负载平衡系统通信就可以了;它不需要了解负载平衡系统后面的 JBoss AS 实例。"
-"负载平衡系统从逻辑上来说是群集的一部分,但我们之所以将其称为“外部的”,是因为它没有运行在和客户端或任何 JBoss AS 实例相同的进程里。负载平衡系统可以用软件也可以用硬件实现。市场上有许多硬件负载平衡系统的供应商;mod_jk Apache 模块是一个优秀的软件负载平衡系统。"
-"外部的负载平衡系统理解群集配置和失效切换策略(failover "
-"policies)并实现自己的机制。<xref linkend=\"clustering-BalancerArch."
-"fig\"/> 说明了外部负载平衡系统的群集架构。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:141
-#, fuzzy, no-c-format
-msgid "The external load balancer architecture for clustering"
-msgstr "用于群集的外部负载平衡系统"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:148
-#, fuzzy, 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_Introduction.xml:155
-#, no-c-format
-#, fuzzy
-msgid "Load-Balancing Policies"
-msgstr "负载平衡策略"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:156
-#, fuzzy, 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 ""
-"JBoss 客户端拦截器(stub)和负载平衡系统都使用了负载平衡策略来决定把新请求发"
-"送给哪个节点。让我们来看看 JBoss AS 里的负载平衡策略。 "
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:161
-#, no-c-format
-msgid ""
-"In JBoss 5.0.0, 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_Introduction.xml:166
-#, fuzzy, 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 ""
-"Round-Robin (<literal>org.jboss.ha.framework.interfaces.RoundRobin</"
-"literal>):每次调用都分派给新节点。第一个目标节点从列表里随机选择。 "
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:172
-#, fuzzy, 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 ""
-"Round-Robin (<literal>org.jboss.ha.framework.interfaces.RoundRobin</"
-"literal>):每次调用都从列表里随机选择目标节点。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:177
-#, fuzzy, 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 ""
-"First Available (<literal>org.jboss.ha.framework.interfaces.FirstAvailable</"
-"literal>):选择其中一个可用目标节点作为主目标节点,用于每次调用:这个节点是在"
-"群集里的节点列表里随机选取的。当目标节点的列表改变时(因为有节点启动或退"
-"出),除非当前选用的节点仍然可用,这个策略会重新选择一个目标节点。每个客户端"
-"拦截器或者负载平衡系统都会根据自己的策略独立地选择目标节点,所以如果某个客户端从相同的目标服务(如 EJB)下载两个 stub 时,每个 stub 都将独立地选取自己的目标节点。既然目标节点在建立后就不再改变,这种策略提供了“session affinity”或“sticky sessions”。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:184
-#, fuzzy, 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 ""
-"First AvailableIdentical All Proxies (<literal>org.jboss.ha.framework.interfaces."
-"FirstAvailableIdenticalAllProxies</literal>):它与 \"First Available\" 有相同"
-"的行为,但选取的目标节点由所有和相同目标服务关联的相同客户端 VM 里的所有 stub 共享。所以,如果某个客户端为相同的目标服务(例如 EJB)下载了两个 stub,每个 stub 都将使用相同的目标。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:190
-#, no-c-format
-#, fuzzy
-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 ""
-"上面都是 org.jboss.ha.framework."
-"interfaces.LoadBalancePolicy 接口的实现。用户可以按照需要自由编写自己的实现。在后面的章节里,我们将看看如何配置不同服务使用的负载平衡策略。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:194
-#, fuzzy, no-c-format
-msgid "External load balancer architecture"
-msgstr "外部负载平衡系统的架构"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:196
-#, no-c-format
-#, fuzzy
-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 "如上所述,外部的负载平衡系统提供自己的负载平衡能力。支持的功能取决于负载平衡系统的提供者。JBoss 对其唯一的要求是负载平衡系统必须支持“session affinitiy”(也称为“sticky sessions”)。启用了 session affinitiy 后,当负载平衡系统从客户请求路由到节点 A 时,服务器会初始化一个会话,只要节点 A 可用,将来和该会话关联的所有请求都必须转发给节点 A。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:206
-#, no-c-format
-#, fuzzy
-msgid "Farming Deployment"
-msgstr "Farming 部署"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:207
-#, no-c-format
-#, fuzzy
-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 "在群集里部署应用程序的最简单方法是使用 farming 服务。把应用程序归档文件(如 EAR、WAR 或 SAR)热部署到任何群集成员的 <code>all/farm/</code> 目录下,应用程序将自动地在所有节点间复制。如果之后有节点加入群集,它将获取所有用 farm 部署的应用程序并在启动时进行本地部署。如果你从群集服务器节点的 <literal>farm/</literal> 节点里删除应用程序,这个应用程序将在本地卸载并从其他节点的 farm 目录里删除(触发卸载)。你应该从任何服务器节点的 farm 目录下手工删除目前未连接群集的应用程序。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:217
-#, no-c-format
-#, fuzzy
-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 "目前,由于程序上的缘故,farm 部署服务只能用于 1) 位于加入群集的第一个节点的 farm 目录下的归档 或 2) 热部署的归档。如果首先把一个新程序放在 farm 目录下,然而启动服务器使其加入现有的群集,这个应用程序不会在群集间部署。这是因为 farm 服务不知道这个程序是否确实是一个新部署还是当新启动的节点下线时从群集里删除的旧部署。我们正在努力解决这个问题。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:220
-#, no-c-format
-#, fuzzy
-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 "你可以在 farm 目录里只放入压缩的归档文件而不是扩展目录。如果在 farm 里放入了扩展的目录,其内容将在群集里逐渐进行复制,远程节点就很可能在所有的内容到达前试图部署,从而导致部署失败。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:223
-#, no-c-format
-#, fuzzy
-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 "Farm 部署不是原子的。在一个节点上的部署、卸载、重部署出现问题并不会阻止在其他节点上的部署。它没有回滚能力。部署也不是交错的,在所有节点上的重部署很可能是同时进行的,使得群集里在短期没有节点可以提供服务。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:227
-#, fuzzy, 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 ""
-"在 JBoss AS 发行版本里,Farming 在 <literal>all</literal> 配置里是缺省被启用"
-"的,所以你不需要自己来设置它。配置文件 <literal>farm-service.xml</"
-"literal> 放在 deploy/deploy.last 目录下。如果你想在自定义的配置文件里启用 farming,只需要把 farm-service.xml</literal> 复制到 JBoss 的 "
-"<literal>$JBOSS_HOME/server/your_own_config/deploy</literal> 目录下。请确保你"
-"的自定义配置文件启用了群集功能。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:229
-#, fuzzy, 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 ""
-"在部署了 farm-service.xml 之后,下面所列是配置 farm 所需"
-"的 FarmMemberService MBean 属性。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:232
-#, fuzzy, 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 ""
-"&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;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:237
-#, fuzzy, 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 "<emphasis role=\"bold\">ClusterPartition</emphasis> 是注入 farm 服务用于群集内通信的 HAPartition 服务的必需属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:240
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">URLs</emphasis> 指向部署者(deployer)用来观察文件部"
-"署的目录。如果这个目录不存在,MBean 将创建它。如果没有提供完整的 URL,它指向相对配置目录(也就"
-"是:<literal>$JBOSS_HOME/server/all/</literal>)的路径。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:245
-#, no-c-format
-#, fuzzy
-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 ""
-"<emphasis role=\"bold\">ScanPeriod</emphasis> 指定了扫描文件夹变化的时间间"
-"隔。它的缺省值是  <literal>5000</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:249
-#, fuzzy, 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 ""
-"Farming 服务是 <literal>URLDeploymentScanner</literal> 的扩展,它扫描 "
-"<literal>deploy/</literal> 目录下的热部署(hot deployment)。所以,你能够使"
-"用 <literal>FarmMemberService</literal> MBean 里的 "
-"<literal>URLDeploymentScanner</literal> MBean 定义的所有属性。实际上,上列 "
-"<literal>URLs</literal> 和 <literal>ScanPeriod</literal> 属性都是从 "
-"<literal>URLDeploymentScanner</literal> MBean 继承过来的。 "
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:258
-#, no-c-format
-#, fuzzy
-msgid "Distributed state replication services"
-msgstr "分布式状态复制服务"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:259
-#, fuzzy, 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 ""
-"在群集服务器环境里,分布式状态管理(distributed state management)是群集系统"
-"必须提供的一个关键服务。例如,在 stateful session bean 应用程序里,会话状态"
-"(session state)必须在所有节点的 bean 实例中同步,这可以使客户应用程序获得相"
-"同的会话状态,而不用管是哪个节点处理请求。在 entity bean 应用程序里,bean 对"
-"象有时候需要跨群集地缓存来减少数据库负载。目前,JBoss AS 里的状态复制(state "
-"replication)和分布式缓存服务(distributed cache service)由两个途径提供:"
-"<literal>HASessionState</literal> MBean 和 JBoss Cache 框架。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:266
-#, fuzzy, 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 ""
-"<literal>HASessionState</literal> MBean 是一个旧的服务,它为 EJB 2.x 的 stateful session beans "
-"和 JBoss 3.x 和  4.x 里的 HTTP 负载平衡提供会话复制(session replication)和"
-"分布式缓存服务(distributed cache service)。<literal>all/deploy/cluster-"
-"service.xml</literal> 文件里定义了这个 MBean。我们会在后面的 EJB 2.x "
-"stateful session bean 部分展示它的配置选项。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:269
-#, no-c-format
-#, fuzzy
-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 "<literal>DistributedState</literal> Mbean 是一个构建在 HAPartition 服务上的旧服务。支持它是为了向后兼容,但新程序不应该使用它而应该使用更为复杂的 JBoss Cache。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:275
-#, no-c-format
-#, fuzzy
-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 "如上所述,JBoss Cache 为 HTTP 会话、EJB 3.0 session bean 和 EJB 3.0 entity bean 提供缓存服务。它是 JBoss AS 里主要的分布式状态管理工具,而且对于任何自定义缓存需求来说都是不错的选择。在后面章节里讨论特殊服务时,我们将介绍 JBoss Cache 的更多细节。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:286
-#, no-c-format
-msgid "Clustered JNDI Services"
-msgstr "群集的 JNDI 服务"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:287
-#, 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_Introduction.xml:291
-#, 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_Introduction.xml:296
-#, 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_Introduction.xml:301
-#, no-c-format
-msgid "Automatic client discovery of HA-JNDI servers (using multicast)."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:306
-#, 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_Introduction.xml:314
-#, 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_Introduction.xml:318
-#, 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_Introduction.xml:327
-#, 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_Introduction.xml:332
-#, 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_Introduction.xml:337
-#, 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_Introduction.xml:347
-#, no-c-format
-msgid "How it works"
-msgstr "它怎样工作"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:348
-#, 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_Introduction.xml:351
-#, fuzzy, 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 ""
-"JBoss HA-JNDI (高可用性 JNDI)服务维护了一个跨群集的上下文树(context "
-"tree)。只要群集里有一个节点,这个树就会存在。群集里的每个 JNDI 节点也维护子"
-"集的本地 JNDI 上下文。服务器端的应用程序可以把它的对象绑定在两者中的任意一个"
-"上。在本部分内容里,你将学习怎样区分这两种树和在应用部署时的最佳做法。这个架"
-"构的合理设计如下:"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:356
-#, fuzzy, 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 ""
-"我们不希望在本地实现 JNDI 的应用程序有任何的移植问题。我们希望通过简单的配置"
-"群集系统就可以正常工作。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:362
-#, fuzzy, 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_Introduction.xml:367
-#, 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 ""
-"既然所有下面的群集节点都使用一个新的 <literal>InitialContext()</literal> 来查"
-"找或创建绑定,用这个方法来设计可以使 HA-JNDI 服务成为一种可选的服务。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:373
-#, fuzzy, 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 ""
-"在服务器端,<literal>new InitialContext()</literal> 将会绑定到一个仅用于本地"
-"的,非跨群集的 JNDI 上下文(实际上是基本 JNDI)。因此,所有 EJB 主接口"
-"(homes)都不会绑定到跨群集的 JNDI 上下文。但是,每个主接口都会绑定到本地 "
-"JNDI 上。当远程的客户通过 HA-JNDI 发起一个查找,HA-JNDI 在全局跨群集上下文找"
-"不到这个对象时会委托给本地 JNDI 上下文。详细的查找规则如下所示。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:376
-#, 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_Introduction.xml:381
-#, fuzzy, no-c-format
-msgid "If the binding is available in the cluster-wide JNDI tree, return it."
-msgstr "如果这个绑定在跨群集的 JNDI 树(JNDI tree)里可用。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:384
-#, fuzzy, 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 ""
-"如果这个绑定不在跨群集的树里,它会把查找请求委托给本地 JNDI 服务并返回可用的"
-"结果。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:387
-#, fuzzy, 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 ""
-"如果没有可用的结果,HA-JNDI 服务会查找其他群集里的节点,如果它们的本地 JNDI "
-"服务拥有这样的绑定,就会返回相应的结果。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:390
-#, no-c-format
-msgid ""
-"If no local JNDI service owns such a binding, a "
-"<literal>NameNotFoundException</literal> is finally raised."
-msgstr ""
-"如果没有任何本地 JNDI 服务有这样的一个绑定,最后会产生 "
-"<literal>NameNotFoundException</literal> 异常。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:394
-#, 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: para
-#: Clustering_Guide_Introduction.xml:399
-#, fuzzy, 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 ""
-"所以,当 EJB home 通过 HA-JNDI 查找,总会委托给本地 JNDI 实例。如果不同的 "
-"beans(即使是相同的类型,但在不同的群集里)使用同一个 JNDI 名称,这意味着每个 "
-"JNDI 服务器将会有一个不同的 \"target\"  绑定(节点 1 上的 JNDI 将有一个用于 "
-"bean A 的绑定,节点 2 会有一个用于 bean B 的相同名字的绑定)。因此,如果客户为"
-"这个名字执行 HA-JNDI 查询,这个查询会在群集里的任何 JNDI 服务器上调用并返回本"
-"地绑定的 stub。而且,它未必是客户所希望的正确的 stub!"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:406
-#, fuzzy, 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 ""
-"如果你想使用 HA-JNDI,你不能有一个用于本地 JNDI 实现的 non-JNP JNDI 实现"
-"(如:LDAP)。然而,你可以用 <literal>ExternalContext</literal> MBean 来运用 "
-"JNDI 联合把非 JBoss JNDI trees 绑定到 JBoss JNDI 命名空间里。而且,你也可以对"
-"整个群集使用集中式的 JNDI 服务器,而不用 HA-JNDI 和 JNP。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:412
-#, fuzzy, 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 ""
-"如果绑定只在群集(例如,bean 只在群集里某一小的子集里部署)里的一些节点上可"
-"用,查找没有这个绑定 HA-JNDI 服务器的可能性就增高了,而且需要将查找转发给群集"
-"里的所有节点。因此,查询时间会比这个绑定在本地可用的情况更长。这就告诉我们:"
-"尽可能地在客户端缓存你的 JNDI 查询结果。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:420
-#, 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 ""
-"所以,当 EJB home 通过 HA-JNDI 查找,总会委托给本地 JNDI 实例。如果不同的 "
-"beans(即使是相同的类型,但在不同的群集里)使用同一个 JNDI 名称,这意味着每个 "
-"JNDI 服务器将会有一个不同的 \"target\"  绑定(节点 1 上的 JNDI 将有一个用于 "
-"bean A 的绑定,节点 2 会有一个用于 bean B 的相同名字的绑定)。因此,如果客户为"
-"这个名字执行 HA-JNDI 查询,这个查询会在群集里的任何 JNDI 服务器上调用并返回本"
-"地绑定的 stub。而且,它未必是客户所希望的正确的 stub!"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:428
-#, 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 ""
-"如果你想使用 HA-JNDI,你不能有一个用于本地 JNDI 实现的 non-JNP JNDI 实现"
-"(如:LDAP)。然而,你可以用 <literal>ExternalContext</literal> MBean 来运用 "
-"JNDI 联合把非 JBoss JNDI trees 绑定到 JBoss JNDI 命名空间里。而且,你也可以对"
-"整个群集使用集中式的 JNDI 服务器,而不用 HA-JNDI 和 JNP。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:435
-#, 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 ""
-"如果绑定只在群集(例如,bean 只在群集里某一小的子集里部署)里的一些节点上可"
-"用,查找没有这个绑定 HA-JNDI 服务器的可能性就增高了,而且需要将查找转发给群集"
-"里的所有节点。因此,查询时间会比这个绑定在本地可用的情况更长。这就告诉我们:"
-"尽可能地在客户端缓存你的 JNDI 查询结果。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:447
-#, no-c-format
-msgid "Client configuration"
-msgstr "客户端配置"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:449
-#, no-c-format
-msgid "For clients running inside the application server"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:450
-#, fuzzy, 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 ""
-"如果你要从服务器端访问 HA-JNDI,你必须传入 JNDI 属性来显性地得到 "
-"<literal>InitialContext</literal>。下面的代码展示了怎样访问 HA-JNDI。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:453
-#, fuzzy, 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 ""
-"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);"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:454
-#, fuzzy, 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 ""
-"<literal>Context.PROVIDER_URL</literal> 属性指向 <literal>HANamingService</"
-"literal> MBean (参看 <xref linkend=\"clustering-jndi-jboss\"/>)里配置的 HA-"
-"JNDI 服务。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:457
-#, 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_Introduction.xml:464
-#, no-c-format
-msgid "For clients running outside the application server"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:466
-#, fuzzy, 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 ""
-"JNDI 客户需要意识到 HA-JNDI 的群集方式。你可以把 JNDI 服务器的列表(HA-JNDI群"
-"集里的节点)写入到 <literal>jndi.properties</literal> 文件里的 <literal>java."
-"naming.provider.url</literal> 设置里。每个服务器节点都用它的 IP 地址和 JNDI "
-"端口号码来识别。服务器节点用逗号来隔开(关于怎么配置服务器和端口,请参看 "
-"<xref linkend=\"clustering-jndi-jboss\"/> )。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:468
-#, no-c-format
-msgid "java.naming.provier.url=server1:1100,server2:1100,server3:1100,server4:1100"
-msgstr "java.naming.provier.url=server1:1100,server2:1100,server3:1100,server4:1100"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:469
-#, 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 ""
-"初始化时,JNP 客户代码会试图连接列表里的每个服务器,一个接一个,只要连接到一"
-"个服务器它就会停止尝试。然后它将从这个节点下载 HA-JNDI stub。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:473
-#, fuzzy, 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 ""
-"JNP 客户的查找过程中没有用到负载平衡。它只是遍历这个列表来使用第一个可用的服"
-"务器。HA-JNDI 提供者列表只需要包含群集里的 HA-JNDI 节点的一个子集。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:476
-#, fuzzy, 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 ""
-"下载的 smart stub 包含了必要时失效切换(fail-over)至另一节点的逻辑和更新的当"
-"前运行节点的列表。而且,每次对服务器执行 JNDI 调用后,stub interceptor 里的目"
-"标节点列表都会被更新(只有在上次调用后又有修改的情况下)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:480
-#, fuzzy, 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 ""
-"如果属性字符串 <literal>java.naming.provider.url</literal> 是空或者它标明的所"
-"有服务器是不可到达的,JNP client 会试图通过网络上的多点传送(multicast)调用"
-"来恢复 HA-JNDI 服务器。请参考 <xref linkend=\"clustering-jndi-jboss\"/>关于怎"
-"样在 JNDI 服务器节点上配置自动恢复(auto-discovery)的内容。通过自动恢复,客"
-"户端不需要任何配置就可以获得一个有效的 HA-JNDI 服务器节点。当然,为了自动恢复"
-"能够工作,客户应用程序必须和服务器节点(使用 EJB 服务器的 web servlets)在同"
-"一局域网里。局域网和广域网也必须配置成可以传送这样的多点传送数据包。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:484
-#, fuzzy, no-c-format
-msgid ""
-"By default the auto-discovery feature uses multicast group address 230.0.0.4 "
-"and port1102."
-msgstr "自动恢复(auto-discovery)特征使用多点传送组地址 230.0.0.4:1102。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:486
-#, fuzzy, 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 ""
-"除 <literal>java.naming.provier.url</literal> 属性以外,你还可以指定一系列其"
-"他属性。下面的列表展示了当建立一个新的 <literal>InitialContext</literal> 时,"
-"你可以指定的所有客户端属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:489
-#, fuzzy, 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 ""
-"<literal>java.naming.provier.url</literal>:提供群集里 HA-JNDI 提供者节点的 "
-"IP 地址和端口号的列表。客户端会尝试这些提供者并使用第一个响应的服务器。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:494
-#, 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 ""
-"<literal>jnp.disableDiscovery</literal>:当设置为 <literal>true</literal> "
-"时,这个属性关闭了自动恢复(automatic discovery)特征。它的缺省值是 "
-"<literal>false</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:499
-#, fuzzy, 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 ""
-"<literal>jnp.partitionName</literal>:在有多个绑定在不同的群集系统的 HA-JNDI "
-"服务的环境里,这个属性允许你配置当使用自动恢复(automatic discovery)特征时广"
-"播至哪个群集。如果你没有使用自动恢复特征(就是说你可在以在 <literal>java."
-"naming.provider.url</literal> 里显性地提供有效的 JNDI 节点的列表),这个属性"
-"就不会被使用。在缺省情况下,这个属性不会被设置,自动恢复选择第一个响应的 HA-"
-"JNDI 服务器,而不管在哪个群集系统里。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:502
-#, 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 ""
-"<literal>jnp.discoveryTimeout</literal>:决定上下文(context)等待对它的自动"
-"恢复数据包应答的的时间,它的缺省值是 5000 毫秒。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:506
-#, fuzzy, 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 ""
-"<literal>jnp.discoveryGroup</literal>:决定用于自动恢复的多点传送组地址。它的"
-"缺省值是 <literal>230.0.0.4</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:509
-#, fuzzy, 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 ""
-"<literal>jnp.discoveryPort</literal>:决定用于自动恢复的多点传送组端口。它的"
-"缺省值是 <literal>1102</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:512
-#, 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_Introduction.xml:523
-#, no-c-format
-msgid "JBoss configuration"
-msgstr "JBoss 配置"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:524
-#, 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 ""
-"<literal>all/deploy</literal> 目录下的 <literal>cluster-service.xml</"
-"literal> 文件包括了下列启用 HA-JNDI 服务的 MBean。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:526
-#, fuzzy, 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 ""
-"&lt;mbean code=\"org.jboss.ha.jndi.HANamingService\"            \n"
-"       name=\"jboss:service=HAJNDI\"&gt;       \n"
-"    &lt;depends&gt;jboss:service=DefaultPartition&lt;/depends&gt;    \n"
-"&lt;/mbean&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:527
-#, fuzzy, 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 ""
-"你可以看到这个 MBean 依赖于在它之上定义的 <literal>DefaultPartition</"
-"literal> MBean(在本章之前的部分曾讨论过)。在其他配置里,你可以把那个元素"
-"(element)放在  <literal>jboss-services.xml</literal> 或者 <literal>/"
-"deploy</literal> 目录下的其他 JBoss 配置文件里来启用 HA-JNDI 服务。这个 "
-"MBean 的可用属性如下所示。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:533
-#, fuzzy, 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 "<emphasis role=\"bold\"></emphasis> HAPartition."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:536
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">BindAddress</emphasis> 是一个可选属性,它指定 HA-"
-"JNDI 服务器绑定的等待 JNP 客户连接的地址。它只对多宿主主机(multi-homed "
-"computers)有用。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:539
-#, 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 ""
-"<emphasis role=\"bold\">Port</emphasis> 是一个可选属性,它指定 HA-JNDI 服务器"
-"等待 JNP 客户连接所绑定的端口。它的缺省值是 <literal>1100</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:544
-#, 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 ""
-"<emphasis role=\"bold\">Backlog</emphasis> 是一个可选属性,它指定 TCP 服务器"
-"套接字等待 JNP 客户所使用的 backlog 值。它的缺省值是 <literal>50</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:549
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">RmiPort</emphasis> 决定服务器应与下载的 stub 通信所用"
-"的端口。这个属性是可选的。如果它没有设置,服务器会自动分配一个 RMI 端口。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:552
-#, fuzzy, no-c-format
-msgid ""
-"<literal>DiscoveryDisabled</literal> is a boolean flag that disables "
-"configuration of the auto discovery multicast listener."
-msgstr ""
-"<emphasis role=\"bold\">DiscoveryDisabled</emphasis> 是一个布尔值标记,它可用"
-"来取消自动恢复多点传送侦听者(multicast listener)的配置。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:558
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">AutoDiscoveryAddress</emphasis> 是一个可选属性,它指"
-"定侦听的用于 JNDI 自动恢复的多点传送地址。它的缺省值是 <literal>230.0.0.4</"
-"literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:561
-#, 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 ""
-"<emphasis role=\"bold\">AutoDiscoveryGroup</emphasis> 是一个可选属性,它指定"
-"侦听的用于 JNDI 自动恢复的多点传送组。它的缺省值是 <literal>1102</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:567
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">AutoDiscoveryBindAddress</emphasis> 设置自动恢复引导"
-"程序绑定的地址。如果这个属性没有指定而设置了 <literal>BindAddress</literal>,"
-"<literal>BindAddress</literal> 将被使用。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:570
-#, 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_Introduction.xml:573
-#, 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_Introduction.xml:578
-#, no-c-format
-msgid ""
-"<emphasis role=\"bold\">LookupPool</emphasis> specifies the thread pool "
-"service used to control the bootstrap and auto discovery lookups."
-msgstr ""
-"<emphasis role=\"bold\">LookupPool</emphasis> 指定用于控制引导程序和自动恢复"
-"查找的线程池服务。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:583
-#, no-c-format
-msgid ""
-"The full default configuration of the <literal>HANamingService</literal> "
-"MBean is as follows."
-msgstr "<literal>HANamingService</literal> MBean 的完整缺省配置如下所示。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:584
-#, fuzzy, 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 ""
-"&lt;mbean code=\"org.jboss.ha.jndi.HANamingService\" \n"
-"      name=\"jboss:service=HAJNDI\"&gt; \n"
-"    &lt;depends&gt;\n"
-"        jboss:service=${jboss.partition.name:DefaultPartition}\n"
-"    &lt;/depends&gt; \n"
-"    &lt;! -- Name of the partition to which the service is linked --&gt; \n"
-"    &lt;attribute name=\"PartitionName\"&gt;\n"
-"        ${jboss.partition.name:DefaultPartition}\n"
-"    &lt;/attribute&gt; \n"
-"    &lt;! -- Bind address of bootstrap and HA-JNDI RMI endpoints --&gt; \n"
-"    &lt;attribute name=\"BindAddress\"&gt;${jboss.bind.address}&lt;/"
-"attribute&gt; \n"
-"    &lt;! -- Port on which the HA-JNDI stub is made available --&gt; \n"
-"    &lt;attribute name=\"Port\"&gt;1100&lt;/attribute&gt; \n"
-"    &lt;! -- RmiPort to be used by the HA-JNDI service once bound. \n"
-"        0 is for auto. --&gt; \n"
-"    &lt;attribute name=\"RmiPort\"&gt;1101&lt;/attribute&gt; \n"
-"    &lt;! -- Accept backlog of the bootstrap socket --&gt; \n"
-"    &lt;attribute name=\"Backlog\"&gt;50&lt;/attribute&gt; \n"
-"    &lt;! -- The thread pool service used to control the bootstrap and \n"
-"      auto discovery lookups --&gt; \n"
-"    &lt;depends optional-attribute-name=\"LookupPool\" \n"
-"        proxy-type=\"attribute\"&gt;jboss.system:service=ThreadPool&lt;/"
-"depends&gt;\n"
-"\n"
-"    &lt;! -- A flag to disable the auto discovery via multicast --&gt; \n"
-"    &lt;attribute name=\"DiscoveryDisabled\"&gt;false&lt;/attribute&gt; \n"
-"    &lt;! -- Set the auto-discovery bootstrap multicast bind address. --"
-"&gt; \n"
-"    &lt;attribute name=\"AutoDiscoveryBindAddress\"&gt;\n"
-"        ${jboss.bind.address}\n"
-"    &lt;/attribute&gt; \n"
-"    \n"
-"    &lt;! -- Multicast Address and group port used for auto-discovery --"
-"&gt; \n"
-"    &lt;attribute name=\"AutoDiscoveryAddress\"&gt;\n"
-"        ${jboss.partition.udpGroup:230.0.0.4}\n"
-"    &lt;/attribute&gt; \n"
-"    &lt;attribute name=\"AutoDiscoveryGroup\"&gt;1102&lt;/attribute&gt; \n"
-"    &lt;! -- The TTL (time-to-live))for autodiscovery IP multicast packets "
-"--&gt; \n"
-"    &lt;attribute name=\"AutoDiscoveryTTL\"&gt;16&lt;/attribute&gt;\n"
-"\n"
-"    &lt;! -- Client socket factory to be used for client-server \n"
-"           RMI invocations during JNDI queries \n"
-"    &lt;attribute name=\"ClientSocketFactory\"&gt;custom&lt;/attribute&gt; \n"
-"    --&gt; \n"
-"    &lt;! -- Server socket factory to be used for client-server \n"
-"           RMI invocations during JNDI queries \n"
-"    &lt;attribute name=\"ServerSocketFactory\"&gt;custom&lt;/attribute&gt; \n"
-"    --&gt; \n"
-"&lt;/mbean&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:585
-#, fuzzy, 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 ""
-"你可以启动几个使用不同群集的 HA-JNDI 服务。例如,这可以用在如果某一节点是属于"
-"多个群集系统的情况下。这个时候,你要确保给不同服务设置了不同的端口号或 IP 地"
-"址。例如,如果你想把 HA-JNDI 与 example 群集挂钩并改变绑定的端口,Mbean 描述"
-"会象下面的样子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:588
-#, fuzzy, 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 ""
-"&lt;mbean code=\"org.jboss.ha.jndi.HANamingService\"    \n"
-"       name=\"jboss:service=HAJNDI\"&gt;    \n"
-"    &lt;depends&gt;jboss:service=MySpecialPartition&lt;/depends&gt;    \n"
-"    &lt;attribute name=\"PartitionName\"&gt;MySpecialPartition&lt;/"
-"attribute&gt;    \n"
-"    &lt;attribute name=\"Port\"&gt;56789&lt;/attribute&gt;  \n"
-"&lt;/mbean&gt;"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:595
-#, no-c-format
-msgid "Clustered Session EJBs"
-msgstr "群集的 Session EJBs"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:596
-#, 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 ""
-"Session EJBs 提供远程的调用服务。它们按照客户端拦截器架构(client-side "
-"interceptor architecture)组成群集系统。群集的 session bean 的客户应用程序和"
-"非群集的版本是一模一样的,除了对启用 HA-JNDI 查找的 <literal>java.naming."
-"provier.url</literal> 系统属性的少许改动。对于客户端来说,不需要任何的源码改"
-"动或重新编译。现在,让我们看看怎么分别在 EJB 2.x 和 EJB 3.0 服务器应用程序里"
-"配置群集的 session beans。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:603
-#, no-c-format
-msgid "Stateless Session Bean in EJB 2.x"
-msgstr "EJB 2.x 里的 Stateless Session Bean"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:604
-#, no-c-format
-#, fuzzy
-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 "群集<literal></literal><literal>&lt;&gt;</literal>."
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:608
-#, 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 ""
-"&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;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:611
-#, fuzzy, 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 ""
-"<literal>&lt;clustered&gt;True&lt;/clustered&gt;</literal> 元素实际上是 "
-"<literal>&lt;configuration-name&gt;Clustered Stateless SessionBean&lt;/"
-"configuration-name&gt;</literal> 元素的一个别名。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:616
-#, fuzzy, 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 ""
-"在 bean 配置里,只有 <literal>&lt;clustered&gt;</literal> 元素是强制的。它指"
-"出这个 bean 在群集里运行。<literal>&lt;cluster-config&gt;</literal> 元素是可"
-"选的,我们在上面的配置样本里指出了它的缺省值。下面是关于 <literal>&lt;"
-"cluster-config&gt;</literal> 元素里属性的描述。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:619
-#, 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 ""
-"<emphasis role=\"bold\">partition-name</emphasis> 指定 bean 所参与的群集名。"
-"它的缺省值是 <literal>DefaultPartition</literal>。缺省的分区名也可以用 "
-"<literal>jboss.partition.name</literal> 系统属性跨系统地被指定。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:625
-#, 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 ""
-"<emphasis role=\"bold\">home-load-balance-policy</emphasis> 指出 home stub 所"
-"用来平衡节点上的调用的类。在缺省情况下,代理(proxy)会用 "
-"<literal>RoundRobin</literal> 方式平衡调用负载。你也可以实现自己的负载平衡策"
-"略类或持续使用所遇到的第一个可用节点直至其消亡的 <literal>FirstAvailable</"
-"literal> 类。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:632
-#, 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 ""
-"<emphasis role=\"bold\">bean-load-balance-policy</emphasis>指出 home stub 所"
-"使用的平衡节点上的调用的类。对于 <literal>home-load-balance-policy</literal> "
-"属性的注释也同样适用。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:641
-#, no-c-format
-msgid "Stateful Session Bean in EJB 2.x"
-msgstr "EJB 2.x 里的 Stateful Session Bean"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:642
-#, no-c-format
-#, fuzzy
-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 "群集<literal></literal><literal></literal>."
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:649
-#, no-c-format
-msgid "The EJB application configuration"
-msgstr "EJB 应用程序配置"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:650
-#, 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 ""
-"在 EJB 应用程序里,你需要为每个 stateful session bean 修改 <literal>jboss."
-"xml</literal> 描述符文件并加入 <literal>&lt;clustered&gt;</literal> 标签。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:652
-#, 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 ""
-"&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;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:653
-#, 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 ""
-"在 bean 的配置文件里,只有 <literal>&lt;clustered&gt;</literal> 标签是强制"
-"的,它指出 bean 处在群集系统里。<literal>&lt;cluster-config&gt;</literal> 元"
-"素是可选的,我们在上面的配置文件样本里指出了它的缺省属性值。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:657
-#, 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 ""
-"<literal>&lt;session-state-manager-jndi-name&gt;</literal> 标签用来说明这个 "
-"bean 所用的 <literal>HASessionState</literal> 服务的名字。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:659
-#, 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 ""
-"余下的标签的描述和 stateless session bean 的描述是一样的。群集的 stateful "
-"session bean 的主接口上的动作缺省是基于  round-robin 负载平衡策略的。一旦 "
-"bean 的 remote stub 对于客户可用时,调用将不会再进行负载平衡而\"粘"
-"\"(sticky)在列表里的第一个节点上。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:665
-#, no-c-format
-msgid "Optimize state replication"
-msgstr "优化状态复制"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:666
-#, 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 ""
-"因为复制过程是很消耗资源的,为了优化这个过程,你可以选择性地在你的 bean 类里"
-"实现有下面的签名的方法:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:668
-#, no-c-format
-msgid "public boolean isModified ();"
-msgstr "public boolean isModified ();"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:669
-#, 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 ""
-"在复制你的 bean 之前,容器(container)将检测 bean 是否实现了这个方法。如果"
-"是,容器会调用 <literal>isModified()</literal> 方法并只在方法返回 "
-"<literal>true</literal> 时复制这个 bean。如果 bean 还没被更改(或者还不够来请"
-"求复制,这取决于你的喜好,你可以返回 <literal>false</literal>,这样复制就不会"
-"发生。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:677
-#, no-c-format
-msgid "The HASessionState service configuration"
-msgstr "HASessionState 服务配置"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:678
-#, 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_Introduction.xml:680
-#, fuzzy, 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 ""
-"&lt;mbean code=\"org.jboss.ha.hasessionstate.server.HASessionStateService\"\n"
-"      name=\"jboss:service=HASessionState\"&gt;\n"
-"    &lt;depends&gt;\n"
-"        jboss:service=${jboss.partition.name:DefaultPartition}\n"
-"    &lt;/depends&gt;\n"
-"    &lt;!-- Name of the partition to which the service is linked --&gt;\n"
-"    &lt;attribute name=\"PartitionName\"&gt;\n"
-"        ${jboss.partition.name:DefaultPartition}\n"
-"    &lt;/attribute&gt;\n"
-"    &lt;!-- JNDI name under which the service is bound --&gt;\n"
-"    &lt;attribute name=\"JndiName\"&gt;/HASessionState/Default&lt;/"
-"attribute&gt;\n"
-"    &lt;!-- Max delay before cleaning unreclaimed state.\n"
-"           Defaults to 30*60*1000 =&gt; 30 minutes --&gt;\n"
-"    &lt;attribute name=\"BeanCleaningDelay\"&gt;0&lt;/attribute&gt;\n"
-"&lt;/mbean&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:682
-#, no-c-format
-msgid ""
-"The configuration attributes in the <literal>HASessionState</literal> MBean "
-"are listed below."
-msgstr "<literal>HASessionState</literal> MBean 里的配置属性如下所示:"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:685
-#, fuzzy, 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 "<emphasis role=\"bold\"></emphasis> HAPartition."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:690
-#, no-c-format
-#, fuzzy
-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 "<emphasis role=\"bold\"></emphasis><literal></literal><literal> HAPartition</literal>."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:696
-#, 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 ""
-"<emphasis role=\"bold\">BeanCleaningDelay</emphasis> 是一个可选属性,它指定了"
-"一个状态在多久没有变化后 <literal>HASessionState</literal> 服务就可以清除它,"
-"它的单位是毫秒。例如,如果拥有某一 bean 的节点崩溃了,它的兄弟节点将接管这个 "
-"bean。但是,这个兄弟节点的容器缓存并不会知道这个信息(因为之前并没有这个信"
-"息),也永远不会按照这个 bean 的清除设置来删除它。这就是为什么 "
-"<literal>HASessionState</literal> 服务需要来做这个清除工作。它的缺省值是  "
-"<literal>30*60*1000</literal> 毫秒(也就是 30 分钟)。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:707
-#, fuzzy, no-c-format
-msgid "Handling Cluster Restart"
-msgstr "处理群集系统重启"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:708
-#, fuzzy, 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 ""
-"我们已经在 <xref linkend=\"clustering-intro-arch-proxy\"/> 介绍了 HA smart "
-"client architecture。缺省的 HA smart proxy client 只能在群集里一个节点故障时"
-"进行失效切换(failover)。如果整个群集都关闭了,代理(proxy)将失去所有群集里"
-"可用节点的信息。在这种情况下,代理没有什么办法来恢复系统。当节点重启时,需要"
-"在 JNDI/HAJNDI 之外查找代理。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:711
-#, fuzzy, 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 ""
-"3.2.7+/4.0.2+ 版本包含了 <literal>RetryInterceptor</literal>,它可以加入到代"
-"理客户端拦截器栈里,允许在这样的重启故障后进行透明恢复(transparent "
-"recovery)。为了启用这个机制,你可以设立包含 <literal>RetryInterceptor</"
-"literal> 的 <literal>invoker-proxy-binding</literal>。下面是 <literal>jboss."
-"xml</literal> 配置的一个示例。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:714
-#, fuzzy, 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 ""
-"&lt;jboss&gt;\n"
-"    &lt;session&gt;\n"
-"        &lt;ejb-name&gt;nextgen_RetryInterceptorStatelessSession&lt;/ejb-"
-"name&gt;\n"
-"        &lt;invoker-bindings&gt;\n"
-"            &lt;invoker&gt;\n"
-"                &lt;invoker-proxy-binding-name&gt;\n"
-"                    clustered-retry-stateless-rmi-invoker\n"
-"                &lt;/invoker-proxy-binding-name&gt;\n"
-"                &lt;jndi-name&gt;\n"
-"                    nextgen_RetryInterceptorStatelessSession\n"
-"                &lt;/jndi-name&gt;\n"
-"            &lt;/invoker&gt;\n"
-"        &lt;/invoker-bindings&gt;\n"
-"        &lt;clustered&gt;true&lt;/clustered&gt;\n"
-"    &lt;/session&gt;\n"
-"\n"
-"    &lt;invoker-proxy-binding&gt;\n"
-"        &lt;name&gt;clustered-retry-stateless-rmi-invoker&lt;/name&gt;\n"
-"        &lt;invoker-mbean&gt;jboss:service=invoker,type=jrmpha&lt;/invoker-"
-"mbean&gt;\n"
-"        &lt;proxy-factory&gt;org.jboss.proxy.ejb.ProxyFactoryHA&lt;/proxy-"
-"factory&gt;\n"
-"        &lt;proxy-factory-config&gt;\n"
-"            &lt;client-interceptors&gt;\n"
-"                &lt;home&gt;\n"
-"                    &lt;interceptor&gt;\n"
-"                        org.jboss.proxy.ejb.HomeInterceptor\n"
-"                    &lt;/interceptor&gt;\n"
-"                    &lt;interceptor&gt;\n"
-"                        org.jboss.proxy.SecurityInterceptor\n"
-"                    &lt;/interceptor&gt;\n"
-"                    &lt;interceptor&gt;\n"
-"                        org.jboss.proxy.TransactionInterceptor\n"
-"                    &lt;/interceptor&gt;\n"
-"                    &lt;interceptor&gt;\n"
-"                        org.jboss.proxy.ejb.RetryInterceptor\n"
-"                    &lt;/interceptor&gt;\n"
-"                    &lt;interceptor&gt;\n"
-"                        org.jboss.invocation.InvokerInterceptor\n"
-"                    &lt;/interceptor&gt;\n"
-"                &lt;/home&gt;\n"
-"                &lt;bean&gt;\n"
-"                    &lt;interceptor&gt;\n"
-"                        org.jboss.proxy.ejb.StatelessSessionInterceptor\n"
-"                    &lt;/interceptor&gt;\n"
-"                    &lt;interceptor&gt;\n"
-"                        org.jboss.proxy.SecurityInterceptor\n"
-"                    &lt;/interceptor&gt;\n"
-"                    &lt;interceptor&gt;\n"
-"                        org.jboss.proxy.TransactionInterceptor\n"
-"                    &lt;/interceptor&gt;\n"
-"                    &lt;interceptor&gt;\n"
-"                        org.jboss.proxy.ejb.RetryInterceptor\n"
-"                    &lt;/interceptor&gt;\n"
-"                    &lt;interceptor&gt;\n"
-"                        org.jboss.invocation.InvokerInterceptor\n"
-"                    &lt;/interceptor&gt;\n"
-"                &lt;/bean&gt;\n"
-"            &lt;/client-interceptors&gt;\n"
-"        &lt;/proxy-factory-config&gt;\n"
-"    &lt;/invoker-proxy-binding&gt;"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:718
-#, no-c-format
-msgid "JNDI Lookup Process"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:719
-#, 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_Introduction.xml:723
-#, 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_Introduction.xml:728
-#, 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_Introduction.xml:733
-#, 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_Introduction.xml:742
-#, no-c-format
-msgid "SingleRetryInterceptor"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:743
-#, 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_Introduction.xml:746
-#, 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_Introduction.xml:749
-#, 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_Introduction.xml:759
-#, no-c-format
-msgid "Stateless Session Bean in EJB 3.0"
-msgstr "EJB 3.0 里的 Stateless Session Bean"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:760
-#, fuzzy, 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 ""
-"要在 EJB 3.0 内群集一个 stateless session bean,你所需要做的就是用 "
-"<literal>@Cluster</literal> 注解来注解(annotate)bean 类。你可以把负载平衡策"
-"略(load balance policy)和群集分区名当作参数传入这个注解。缺省的负载平衡策略"
-"是 <literal>org.jboss.ha.framework.interfaces.RandomRobin</literal>,缺省的群"
-"集是 <literal>DefaultPartition</literal>。下面是 <literal>@Cluster</literal> "
-"注解的定义。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:766
-#, fuzzy, no-c-format
-msgid ""
-"public @interface Clustered {\n"
-"   Class loadBalancePolicy() default LoadBalancePolicy.class;\n"
-"   String partition() default  \"${jboss.partition.name:DefaultPartition}"
-"\";\n"
-"}"
-msgstr ""
-"public @interface Clustered {\n"
-"   Class loadBalancePolicy() default LoadBalancePolicy.class;\n"
-"   String partition() default \"DefaultPartition\";\n"
-"}"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:767
-#, no-c-format
-msgid ""
-"Here is an example of a clustered EJB 3.0 stateless session bean "
-"implementation."
-msgstr "这里是一个群集的 EJB 3.0 stateless session bean 实现的例子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:768
-#, 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 ""
-"@Stateless\n"
-"@Clustered\n"
-"public class MyBean implements MySessionInt {\n"
-"   \n"
-"   public void test() {\n"
-"      // Do something cool\n"
-"   }\n"
-"}"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:769
-#, 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_Introduction.xml:772
-#, 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_Introduction.xml:777
-#, fuzzy, no-c-format
-msgid "Stateful Session Beans in EJB 3.0"
-msgstr "EJB 3.0 里的 Stateful Session Bean"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:778
-#, fuzzy, 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 ""
-"为了在 EJB 3.0 里群集 stateful session beans,你需要用 <literal>@Cluster</"
-"literal> 注解来标记 bean 实现类,就和我们之前对 EJB 3.0 stateless session "
-"bean 做的一样。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:783
-#, 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_Introduction.xml:786
-#, 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_Introduction.xml:788
-#, 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_Introduction.xml:790
-#, 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_Introduction.xml:792
-#, 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_Introduction.xml:794
-#, 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_Introduction.xml:799
-#, fuzzy, no-c-format
-msgid ""
-"Here is an example of a clustered EJB 3.0 stateful session bean "
-"implementation."
-msgstr "这里是一个群集的 EJB 3.0 stateless session bean 实现的例子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:806
-#, fuzzy, 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 ""
-"@Stateful\n"
-"@Clustered\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"
-"}"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:808
-#, 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_Introduction.xml:811
-#, 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_Introduction.xml:814
-#, fuzzy, no-c-format
-msgid ""
-"public interface Optimized {\n"
-"boolean isModified();\n"
-"}"
-msgstr "public boolean isModified ();"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:816
-#, 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 ""
-"JBoss Cache 为 EJB 3.0 stateful session beans 提供会话状态复制服务(session "
-"state replication service)。<literal>deploy</literal> 目录下 <literal>ejb3-"
-"clustered-sfsbcache-service.xml</literal> 文件定义了相关的 MBean 服务。文件的"
-"内容如下:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:819
-#, 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_Introduction.xml:846
-#, fuzzy, 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 ""
-"<literal>PassivationTreeCache</literal> MBean 里的配置属性基本上和在 <xref "
-"linkend=\"jbosscache.chapt\"/> 里讨论的标准 JBoss Cache <literal>TreeCache</"
-"literal> MBean 一样。我们再一次忽略了 <literal>ClusterConfig</literal> 属性"
-"(详情请参考 <xref linkend=\"jbosscache-jgroups\"/>)的 JGroups 配置。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:851
-#, 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_Introduction.xml:855
-#, 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 ""
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:865
-#, no-c-format
-msgid "Clustered Entity EJBs"
-msgstr "群集的 Entity EJBs"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:866
-#, fuzzy, 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 ""
-"在 JBoss AS 群集系统里,entity bean 实例需要跨节点的复制。如果某个 entity "
-"bean 提供远程服务,那么服务方法(service methods)也需要进行负载平衡。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:868
-#, fuzzy, 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 ""
-"为了使用群集的 entity bean,应用程序不需要做任何特殊的事情,除了从群集的 HA-"
-"JNDI 里查找 bean 的引用。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:870
-#, no-c-format
-msgid "Entity Bean in EJB 2.x"
-msgstr "EJB 2.x 里的 Entity Bean"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:871
-#, fuzzy, 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 ""
-"首先,值得注意的是群集 2.x 的 entity beans 不是件好事。它向群集的远程对象开放"
-"(exposes)通常过于细颗粒度的元素(elements),导致了严重的数据同步问题。除非"
-"你遇到特殊的情况,如只读或者只写的节点和使用缓存失效服务(cache invalidation "
-"services)的只读节点同步,否则不要使用 EJB 2.x entity bean 的群集。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:873
-#, 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 ""
-"要群集 EJB 2.x entity beans,你需要把 <literal>&lt;clustered&gt;</literal> 元"
-"素加入到应用程序的 <literal>jboss.xml</literal> 描述符文件里。下面是一个典型"
-"的 <literal>jboss.xml</literal> 文件。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:876
-#, 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 ""
-"&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;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:877
-#, 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 ""
-"为了平衡远程调用的负载,我们群集 EJB 2.x entity beans。所有的 bean 实例都实现"
-"同步,具有所有节点上的相同内容。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:879
-#, 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 ""
-"然而,群集的 EJB 2.x Entity Beans 没有分布式的锁定机制或是缓存。它们只能用数"
-"据库层面的行级锁定(请参考 CMP 规范的<literal>&lt;row-lock&gt;</literal>)或"
-"是把 JDBC 驱动的事务隔离(Transaction Isolation)级别设为 "
-"<literal>TRANSACTION_SERIALIZABLE</literal> 来实现同步。因为缺乏分布式的锁定"
-"机制或是缓存支持,Entity Beans 缺省使用提交选项 \"B\"(请参考 "
-"<literal>standardjboss.xml</literal> 和 the container configurations "
-"Clustered CMP 2.x EntityBean,Clustered CMP EntityBean,或 Clustered BMP "
-"EntityBean)。我们不推荐你使用提交选项 \"A\",除非你的 Entity Bean 是只读的。"
-"(有些设计模式允许你把提交选项\"A\" 用于 read-mostly beans。你也可以看看 "
-"Seppuku 模式:<ulink url=\"http://dima.dhs.org/misc/readOnlyUpdates.html\"></"
-"ulink>。JBoss 有可能把这个模式集成到以后的版本里。)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:891
-#, 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 ""
-"如果你正在使用 Bean Managed Persistence (BMP),你将不得不实现自己的同步机"
-"制。MVCSoft CMP 2.0 持久化引擎(persistence engine)(请参考 <ulink url="
-"\"http://www.jboss.org/jbossgroup/partners.jsp\"></ulink>)提供可以在 JBoss "
-"群集里使用的各种优化锁定策略。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:897
-#, no-c-format
-msgid "Entity Bean in EJB 3.0"
-msgstr "EJB 3.0 里的 Entity Bean"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:899
-#, 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 ""
-"在 EJB 3.0 里,entity beans 主要以持久化数据模型出现。它们不提供远程服务。因"
-"此,EJB 3.0 里的 entity bean 群集服务主要处理分布式缓存和复制,而不是负载平"
-"衡。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:905
-#, no-c-format
-msgid "Configure the distributed cache"
-msgstr "配置分布式缓存"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:906
-#, fuzzy, 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 ""
-"为了避免多次访问数据库,你可以为你的 entities 使用缓存。JBoss EJB 3.0 是用 "
-"Hibernate 实现的,它支持两级缓存。用于 JBoss EJB 3.0 实现的 Hibernate setup "
-"把 JBoss Cache 当作底层缓存实现使用。这个缓存提供了下面的功能:"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:909
-#, 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 ""
-"如果你通过 entity manager 来使应用缓存的 entity bean 的实例持久化,这个 "
-"entity 会被储存到缓存里。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:913
-#, 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 ""
-"如果你通过 entity manager 更新 entity bean 实例并把更改保存到数据库里,缓存里"
-"的这个 entity 将被更新。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:917
-#, 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 ""
-"如果你通过 entity manager 把 entity bean 实例从数据库里删除,这个 entity 也将"
-"从缓存里删除。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:921
-#, 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 ""
-"如果你通过 entity manager 从数据库里载入缓存的 entity,而这个这个 entity 并不"
-"在缓存里,这个 entity 会被插入到缓存里。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:925
-#, fuzzy, 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 ""
-"JEJB 3.0 entity beans 采用的 Boss Cache 服务在 <literal>deploy/ejb3-entity-"
-"cache-service.xml</literal> 文件里的 <literal>TreeCache</literal> MBean(请参"
-"考<xref linkend=\"jbosscache-cache\"/>) 里被配置。缓存 MBean 服务名是"
-"<literal>jboss.cache:service=EJB3EntityTreeCache</literal>。下面是标准 JBoss "
-"发行版本里的 <literal>ejb3-entity-cache-service.xml</literal> 文件的内容。我"
-"们再次忽略了 JGroups 的配置元素 <literal>ClusterConfig</literal>。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:931
-#, fuzzy, 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 ""
-"&lt;server&gt;\n"
-"    &lt;mbean code=\"org.jboss.cache.TreeCache\" \n"
-"            name=\"jboss.cache:service=EJB3EntityTreeCache\"&gt;\n"
-"        \n"
-"        &lt;depends&gt;jboss:service=Naming&lt;/depends&gt;\n"
-"        &lt;depends&gt;jboss:service=TransactionManager&lt;/depends&gt;\n"
-"\n"
-"        &lt;!-- Configure the TransactionManager --&gt;\n"
-"        &lt;attribute name=\"TransactionManagerLookupClass\"&gt;\n"
-"            org.jboss.cache.JBossTransactionManagerLookup\n"
-"        &lt;/attribute&gt;\n"
-"\n"
-"        &lt;attribute name=\"IsolationLevel\"&gt;REPEATABLE_READ&lt;/"
-"attribute&gt;\n"
-"        &lt;attribute name=\"CacheMode\"&gt;REPL_SYNC&lt;/attribute&gt;\n"
-"\n"
-"        &lt;!--Name of cluster. Needs to be the same for all clusters, \n"
-"            in order to find each other --&gt;\n"
-"        &lt;attribute name=\"ClusterName\"&gt;EJB3-entity-cache&lt;/"
-"attribute&gt;\n"
-"\n"
-"        &lt;attribute name=\"ClusterConfig\"&gt;\n"
-"            ... ...\n"
-"        &lt;/attribute&gt;\n"
-"\n"
-"        &lt;attribute name=\"InitialStateRetrievalTimeout\"&gt;5000&lt;/"
-"attribute&gt;\n"
-"        &lt;attribute name=\"SyncReplTimeout\"&gt;10000&lt;/attribute&gt;\n"
-"        &lt;attribute name=\"LockAcquisitionTimeout\"&gt;15000&lt;/"
-"attribute&gt;\n"
-"\n"
-"        &lt;attribute name=\"EvictionPolicyClass\"&gt;\n"
-"            org.jboss.cache.eviction.LRUPolicy\n"
-"        &lt;/attribute&gt;\n"
-"\n"
-"        &lt;!--  Specific eviction policy configurations. This is LRU --"
-"&gt;\n"
-"        &lt;attribute name=\"EvictionPolicyConfig\"&gt;\n"
-"            &lt;config&gt;\n"
-"                &lt;attribute name=\"wakeUpIntervalSeconds\"&gt;5&lt;/"
-"attribute&gt;\n"
-"                &lt;!--  Cache wide default --&gt;\n"
-"                &lt;region name=\"/_default_\"&gt;\n"
-"                    &lt;attribute name=\"maxNodes\"&gt;5000&lt;/"
-"attribute&gt;\n"
-"                    &lt;attribute name=\"timeToLiveSeconds\"&gt;1000&lt;/"
-"attribute&gt;\n"
-"                &lt;/region&gt;\n"
-"            &lt;/config&gt;\n"
-"        &lt;/attribute&gt;\n"
-"    &lt;/mbean&gt;\n"
-"&lt;/server&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:933
-#, fuzzy, 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 ""
-"正如我们在 <xref linkend=\"jbosscache-cache\"/> 所讨论的,JBoss Cache 允许你"
-"指定缓存的 entities 的超时时间。在某个时段内没有被访问的 entities 将从缓存里"
-"删除,这样可以节省内存。如果这个缓存是在群集里运行,那么它会被更新。对某个节"
-"点的 entries 的改动都会复制到群集里其他节点的相应条目里。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:936
-#, 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_Introduction.xml:940
-#, 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 ""
-"现在,我们配置了 JBoss Cache 来支持 EJB 3.0 entity beans 的分布式缓存。我们仍"
-"不得不配置单个的 entity bean 来使用这个缓存服务。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:943
-#, no-c-format
-msgid "Configure the entity beans for cache"
-msgstr "配置 entity beans 的缓存"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:944
-#, 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 ""
-"你用正常方式定义你的 entity bean 类。JBoss EJB 3.0 将来的版本将支持 "
-"annotating entities 和所缓存的它们的关系的集合,但是现在你不得不直接配置底层"
-"的 hibernate 引擎。让我们看看通过可选的 <literal>property</literal> 元素配置 "
-"hibernate  缓存选项的 <literal>persistence.xml</literal> 文件。下面 "
-"<literal>persistence.xml</literal>  里的定义缓存的元素应该被启用:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:950
-#, 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 ""
-"&lt;!-- Clustered cache with TreeCache --&gt;\n"
-"&lt;property name=\"cache.provider_class\"&gt;\n"
-"    org.jboss.ejb3.entity.TreeCacheProviderHook\n"
-"&lt;/property&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:951
-#, fuzzy, 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 "下面的属性元素定义了所使用的缓存对象名和 MBean 名。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:952
-#, no-c-format
-msgid ""
-"&lt;property name=\"treecache.mbean.object_name\"&gt;\n"
-"    jboss.cache:service=EJB3EntityTreeCache\n"
-"&lt;/property&gt;"
-msgstr ""
-"&lt;property name=\"treecache.mbean.object_name\"&gt;\n"
-"    jboss.cache:service=EJB3EntityTreeCache\n"
-"&lt;/property&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:953
-#, 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_Introduction.xml:957
-#, 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_Introduction.xml:965
-#, fuzzy, 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 ""
-"下一步我们需要配置 entities 被缓存的内容。就像上面所展示的样,缺省是什么都不"
-"缓存。我们使用 <literal>@Cache</literal> 注解来标记需要缓存的 entity beans。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:966
-#, fuzzy, no-c-format
-msgid ""
-"@Entity \n"
-"@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL) \n"
-"public class Account implements Serializable { \n"
-"  // ... ... \n"
-"}"
-msgstr ""
-"@Entity \n"
-"@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL) \n"
-"public class Customer implements Serializable { \n"
-"  // ... ... \n"
-"}"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:967
-#, fuzzy, 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 ""
-"一个简单的原则就是,你应该对很少变动和频繁使用的对象进行缓存.你可以在 "
-"<literal>ejb3-entity-cache-service.xml</literal> 配置文件里为每个 entity "
-"bean 微调缓存设置。例如,你可以指定缓存的大小。如果缓存里的对象太多,缓存有可"
-"能挤掉最老的对象(或者最少用的对象,依你的配置而定)来给新对象留出空间。"
-"<literal>mycompany.Customer</literal> entity bean 的缓存区(cache region)是 "
-"<literal>/mycompany/Customer</literal>。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:969
-#, fuzzy, 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 ""
-"&lt;server&gt;  \n"
-"  &lt;mbean code=\"org.jboss.cache.TreeCache\" \n"
-"         name=\"jboss.cache:service=EJB3EntityTreeCache\"&gt;  \n"
-"    &lt;depends&gt;jboss:service=Naming \n"
-"    &lt;depends&gt;jboss:service=TransactionManager \n"
-"    ... ... \n"
-"    &lt;attribute name=\"EvictionPolicyConfig\"&gt;  \n"
-"      &lt;config&gt;  \n"
-"        &lt;attribute name=\"wakeUpIntervalSeconds\"&gt;5&lt;/"
-"attribute&gt;  \n"
-"        &lt;region name=\"/_default_\"&gt;  \n"
-"          &lt;attribute name=\"maxNodes\"&gt;5000&lt;/attribute&gt;  \n"
-"          &lt;attribute name=\"timeToLiveSeconds\"&gt;1000&lt;/"
-"attribute&gt;  \n"
-"        &lt;/region&gt;  \n"
-"        &lt;region name=\"/mycompany/Customer\"&gt;  \n"
-"          &lt;attribute name=\"maxNodes\"&gt;10&lt;/attribute&gt;  \n"
-"          &lt;attribute name=\"timeToLiveSeconds\"&gt;5000&lt;/"
-"attribute&gt;  \n"
-"        &lt;/region&gt;  \n"
-"        ... ... \n"
-"      &lt;/config&gt;  \n"
-"    &lt;/attribute&gt;  \n"
-"  &lt;/mbean&gt; \n"
-"&lt;/server&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:972
-#, fuzzy, 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 ""
-"如果你没有为 entity bean 类指定缓存区(cache region),这个类的所有实例将象上"
-"面定义的一样缓存在 <literal>/_default</literal> 区里。EJB3 <literal>Query</"
-"literal> API 提供了让你在指定的缓存区里保存或载入查询结果(就是 entity beans "
-"的集合)的方法。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:975
-#, fuzzy, no-c-format
-msgid ""
-"@Entity \n"
-"@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL,\n"
-"region=”Account”) \n"
-"public class Account implements Serializable { \n"
-"// ... ... \n"
-"}"
-msgstr ""
-"@Entity \n"
-"@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL) \n"
-"public class Customer implements Serializable { \n"
-"  // ... ... \n"
-"}"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:976
-#, fuzzy, no-c-format
-msgid "The eviction configuration would then become:"
-msgstr "EJB 应用程序配置"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:977
-#, fuzzy, 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 ""
-"&lt;server&gt;  \n"
-"  &lt;mbean code=\"org.jboss.cache.TreeCache\" \n"
-"         name=\"jboss.cache:service=EJB3EntityTreeCache\"&gt;  \n"
-"    &lt;depends&gt;jboss:service=Naming \n"
-"    &lt;depends&gt;jboss:service=TransactionManager \n"
-"    ... ... \n"
-"    &lt;attribute name=\"EvictionPolicyConfig\"&gt;  \n"
-"      &lt;config&gt;  \n"
-"        &lt;attribute name=\"wakeUpIntervalSeconds\"&gt;5&lt;/"
-"attribute&gt;  \n"
-"        &lt;region name=\"/_default_\"&gt;  \n"
-"          &lt;attribute name=\"maxNodes\"&gt;5000&lt;/attribute&gt;  \n"
-"          &lt;attribute name=\"timeToLiveSeconds\"&gt;1000&lt;/"
-"attribute&gt;  \n"
-"        &lt;/region&gt;  \n"
-"        &lt;region name=\"/mycompany/Customer\"&gt;  \n"
-"          &lt;attribute name=\"maxNodes\"&gt;10&lt;/attribute&gt;  \n"
-"          &lt;attribute name=\"timeToLiveSeconds\"&gt;5000&lt;/"
-"attribute&gt;  \n"
-"        &lt;/region&gt;  \n"
-"        ... ... \n"
-"      &lt;/config&gt;  \n"
-"    &lt;/attribute&gt;  \n"
-"  &lt;/mbean&gt; \n"
-"&lt;/server&gt;"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:982
-#, no-c-format
-msgid "Query result caching"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:983
-#, 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_Introduction.xml:986
-#, no-c-format
-msgid "First, in persistence.xml you need to tell Hibernate to enable query caching:"
-msgstr ""
-
-#. Tag: screen
-#: Clustering_Guide_Introduction.xml:989
-#, no-c-format
-msgid "&lt;property name=\"hibernate.cache.use_query_cache\" value=\"true\"/&gt;"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:990
-#, 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_Introduction.xml:993
-#, 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_Introduction.xml:995
-#, 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_Introduction.xml:998
-#, 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_Introduction.xml:1002
-#, 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_Introduction.xml:1004
-#, 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_Introduction.xml:1007
-#, 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_Introduction.xml:1008
-#, fuzzy, no-c-format
-msgid "The related eviction configuration:"
-msgstr "EJB 应用程序配置"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1011
-#, 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 ""
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1044
-#, no-c-format
-msgid "HTTP Services"
-msgstr "HTTP 服务"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1045
-#, 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 ""
-"HTTP 会话复制(session replication)用来复制和你在群集里其他节点上的 web 客户"
-"相关的状态。因此,如果其中一个节点崩溃了,群集里的其他节点将能够恢复。有两个"
-"不同的功能必须被执行:"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1050
-#, no-c-format
-msgid "Session state replication"
-msgstr "会话状态复制(Session state replication)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1053
-#, fuzzy, no-c-format
-msgid "Load-balancing of incoming invocations"
-msgstr "传入调用(incoming invocations)的负载平衡"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1056
-#, fuzzy, 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 ""
-"状态复制(State replication)由 JBoss 直接处理。当你在 <literal>all</"
-"literal> 配置里运行 JBoss,会话状态复制缺省是启用的。只要部署了你的 web 应用"
-"程序,它的会话状态就已经复制在群集里的所有 JBoss 实例中了。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1058
-#, fuzzy, 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 ""
-"然而,负载平衡是不一样的。它不是由 JBoss 自己处理的,它需要额外的软件。我们将"
-"演示怎样设立 Apache 和 mod_jk,这是一个很常见的例子。但这需要专门的硬件开关,"
-"路由器(如 Cisco LoadDirector)或其他专门的软件来执行。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1063
-#, fuzzy, 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 ""
-"负载平衡系统跟踪 HTTP 请求,它依据请求所链接的会话把请求分派给合适的节点。一"
-"旦会话在节点上被创建,将来的每个请求都被同一节点所处理:这被称作使用 sticky-"
-"sessions 的负载平衡系统。使用支持不复制会话的 sticky-sessions 的负载平衡系统"
-"允许你不付出复制状态的代价就可以很好地扩充:每个查询将总是由同一节点来处理。"
-"但是,如果某个节点崩溃了,所有以这个节点为宿主的客户会话状态就将全部丢失(如"
-"购物车),客户很有可能需要登录另外一节点来启动新的会话。在大部分情况下,不复"
-"制 HTTP 会话是可以接受的,因为所有关键状态都存储在数据库里。在丢失客户会话是"
-"不能接受的情况下,采用会话状态复制就是必须付出的代价了。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1065
-#, fuzzy, no-c-format
-msgid "Configuring load balancing using Apache and mod_jk"
-msgstr "配置 Apache 来装载 mod_jk"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1067
-#, fuzzy, 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 ""
-"Apache 是一个很有名的 web 服务器,它可以通过插件来扩展。mod_jk(和最新的 "
-"mod_jk2)已经被特别的设计成可以允许从 Apache 转发请求到 Servlet 容器里。而"
-"且,当维护 sticky sessions 时,它也能够对 Servlet 容器的 HTTP 调用的负载进行"
-"平衡,这正是让我们感兴趣的地方。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1072
-#, no-c-format
-msgid "Download the software"
-msgstr "下载软件"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1073
-#, 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 ""
-"首先,确保你已经安装了 Apache。你可以直接从 Apache 网站 <literal>http://"
-"httpd.apache.org/</literal> 下载 Apache。它的安装是非常直接的,不需要任何特殊"
-"的配置。Apache 有好几个版本,我们建议你使用 2.0.x 版本。在下面的内容里,我们"
-"假设你已经把 Apache 安装在 <literal>APACHE_HOME</literal> 目录下了。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1078
-#, 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 ""
-"其次,下载 mod_jk binaries。它也有几个版本。我们强烈建议你使用 mod_jk 1.2.x,"
-"因为 mod_jk 和 mod_jk2 都已经被取消了,在社区里不再会有后续的开发和支持。你可"
-"以从 <literal>http://www.apache.org/dist/jakarta/tomcat-connectors/jk/"
-"binaries/</literal> 下载 mod_jk 1.2.x binary。把下载的文件改名为 "
-"<literal>mod_jk.so</literal> 并拷贝到 <literal>APACHE_HOME/modules/</"
-"literal> 目录下。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1086
-#, no-c-format
-msgid "Configure Apache to load mod_jk"
-msgstr "配置 Apache 来装载 mod_jk"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1087
-#, no-c-format
-msgid ""
-"Modify APACHE_HOME/conf/httpd.conf and add a single line at the end of the "
-"file:"
-msgstr "在 APACHE_HOME/conf/httpd.conf 文件的最后加入一行:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1088
-#, no-c-format
-msgid ""
-"# Include mod_jk's specific configuration file  \n"
-"Include conf/mod-jk.conf"
-msgstr ""
-"# Include mod_jk's specific configuration file  \n"
-"Include conf/mod-jk.conf"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1089
-#, no-c-format
-msgid ""
-"Next, create a new file named <literal>APACHE_HOME/conf/mod-jk.conf</"
-"literal>:"
-msgstr "然后,建立一个叫 <literal>APACHE_HOME/conf/mod-jk.conf</literal> 的文件。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1090
-#, 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 ""
-"# 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;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1091
-#, no-c-format
-msgid "Please note that two settings are very important:"
-msgstr "请注意有两个设置非常重要:"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1094
-#, 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 ""
-"<literal>LoadModule</literal> 指令(directive)必须引用你在前面下载的 mod_jk "
-"库。你必须使用有 \"modules\" 前缀的完全一致的名字。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1099
-#, 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 ""
-"<literal>JkMount</literal> 指令告诉 Apache 应该把 URLs 转发给哪个 mod_jk 模块"
-"(和 Servlet 容器)。在上面的文件里,所有基于 URL 路径 <literal>/application/"
-"*</literal> 的请求都被发送到  mod_jk 负载平衡系统(load-balancer)。这样的"
-"话,你能够使 Apache 直接处理静态内容 (或 PHP 内容)而只对 Java 应用程序使用"
-"负载平衡系统。如果你只把 mod_jk 当作负载平衡系统使用,你也可以把所有的 URLs "
-"(也就是 <literal>/*</literal>)转发给 mod_jk。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1107
-#, 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 ""
-"除了 <literal>JkMount</literal> 指令以外,你也能够用 <literal>JkMountFile</"
-"literal> 指令来指定配置文件的挂载点(mount points),它包含了多重的 Tomcat "
-"forwarding URL mappings。你只需要在 <literal>APACHE_HOME/conf</literal> 目录"
-"下建立一个 <literal>uriworkermap.properties</literal> 文件。文件的格式是 "
-"<literal>/url=worker_name</literal>。首先,把下例拷贝到你创建的文件里:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1113
-#, 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 ""
-"# 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"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1114
-#, 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 ""
-"这将使 mod_jk 把发送到 <literal>/jmx-console</literal> 和 <literal>/web-"
-"console</literal> 的请求转发至 Tomcat。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1116
-#, 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 ""
-"你很可能不需要修改 <literal>mod_jk.conf</literal> 里的设置,这些设置用来告诉 "
-"mod_jk 日志文件放在什么地方,使用哪个日志级别等等。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1120
-#, no-c-format
-msgid "Configure worker nodes in mod_jk"
-msgstr "配置 mod_jk 里的 worker 节点"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1121
-#, fuzzy, 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 ""
-"然后,你需要配置 mod_jk 的 workers 文件 <literal>conf/workers.properties</"
-"literal>。这个文件指定不同的 Servlet 容器的存放位置和怎样对它们之间的调用进行"
-"负载平衡。这个配置文件包含了一个全局设置部分以及针对每个目标 Servlet 容器的设"
-"置部分。对于两个节点的设立,这个文件如下所示:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1126
-#, 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 ""
-"# 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"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1127
-#, 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 ""
-"基本上,上面的配置使 mod_jk 对两个 servlet 容器(JBoss Tomcat)(侦听 8009 端"
-"口的节点 1 和节点 2)之间的 sticky sessions 执行重量级的 round-robin 负载平"
-"衡。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1130
-#, fuzzy, 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 ""
-"在 <literal>works.properties</literal> 文件里,每个节点都用 <literal>worker."
-"XXX</literal> 命名规则命名,<literal>XXX</literal> 代表你给其中一个目标 "
-"Servlet 容器选取的任意名字。对于每一个 worker,你必须给出在 Servlet 容器运行"
-"的 AJP13 connector 的主机名(或 IP 地址)和端口号。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1135
-#, fuzzy, 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 ""
-"<literal>lbfactor</literal> 属性是对于特定的 worker 的负载平衡因子。它用来定"
-"义一个节点对于其他节点的优先级(或权重)。这个数字越大,就要接收越多的 HTTP "
-"请求。这个设置可以用来调节不同服务器的处理能力。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1137
-#, 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 ""
-"<literal>cachesize</literal> 属性定义与 Servlet 容器相关的线程池的大小(也就"
-"是转发给 Servlet 容器的并发请求的数量)。请确保这个数字不要超过 Servlet 容器"
-"的 AJP13 connector 所配置的线程数。请参考 <literal>http://jakarta.apache.org/"
-"tomcat/connectors-doc/config/workers.html</literal> 里关于 Apache 1.3.x 的 "
-"<literal>cachesize</literal> 的注释。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1143
-#, 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 ""
-"<literal>conf/workers.properties</literal> 文件最后一部分定义 loadbalancer "
-"worker。你只需要修改 <literal>worker.loadbalancer.balanced_workers</literal> "
-"行:它列出了之前所有在这个文件里定义的 workers:负载平衡将在这些 workers 上进"
-"行。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1147
-#, fuzzy, 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 ""
-"<literal>sticky_session</literal> 属性指定 HTTP 会话的群集系统行为。如果你指"
-"定 <literal>worker.loadbalancer.sticky_session=0</literal>,每个请求会在节点 "
-"1 和节点 2 之间进行负载平衡。但是当用户在服务器上开始一个会话,把这个的用户的"
-"请求转发到同一服务器会是个好主意。这被称作 \"sticky session\",因为客户总是使"
-"用处理他第一个请求的服务器。否则用户的会话数据就必须在两个服务器之间同步(即"
-"会话复制,请参考 <xref linkend=\"clustering-http-state\"/>)。为了启用 "
-"session stickiness,你需要把 <literal>worker.loadbalancer.sticky_session</"
-"literal> 设置为 1。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1152
-#, fuzzy, no-c-format
-msgid ""
-"A non-loadbalanced setup with a single node requires a <literal>worker."
-"list=node1</literal> entry."
-msgstr ""
-"单节点的非负载平衡的设立需要设置 <literal>worker.list=node1</literal> 条目,"
-"才能使 mod_jk 正常工作。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1157
-#, fuzzy, no-c-format
-msgid "Configuring JBoss to work with mod_jk"
-msgstr "配置 mod_jk 里的 worker 节点"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1158
-#, 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 ""
-"最后,我们必须在所有群集节点上配置 JBoss Tomcat 实例,它们才能接收从 mod_jk "
-"负载平衡系统转发的请求。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1160
-#, fuzzy, 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 ""
-"在每个群集节点上,我们得按 <literal>workers.properties</literal> 里指定的名字"
-"来命名节点名。例如,在 JBoss 实例节点1上,编辑 <literal>JBOSS_HOME/server/"
-"all/deploy/jbossweb-tomcat50.sar/server.xml</literal> 文件(有必要的话用你自"
-"己的服务器名代替<literal>/all</literal>)。定位 <literal>&lt;Engine&gt;</"
-"literal> 元素并加入一个 <literal>jvmRoute</literal> 属性:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1165
-#, no-c-format
-msgid ""
-"&lt;Engine name=\"jboss.web\" defaultHost=\"localhost\" jvmRoute=\"node1"
-"\"&gt;\n"
-"... ...\n"
-"&lt;/Engine&gt;"
-msgstr ""
-"&lt;Engine name=\"jboss.web\" defaultHost=\"localhost\" jvmRoute=\"node1"
-"\"&gt;\n"
-"... ...\n"
-"&lt;/Engine&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1166
-#, 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_Introduction.xml:1168
-#, 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_Introduction.xml:1170
-#, fuzzy, 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 ""
-"然后,对群集里的每个 JBoss Tomcat 实例,我们需要使它们在它们的会话 cookies 里"
-"加入 <literal>jvmRoute</literal> 值,这样 mod_jk 才能指引进来的请求。编辑  "
-"<literal>JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/META-INF/jboss-"
-"service.xml</literal> 文件(有必要的话用你自己的服务器名代替 <literal>/all</"
-"literal>)。用 <literal>UseJK</literal>名来定位<literal>&lt;attribute&gt;</"
-"literal> 元素,把它的值设置为 <literal>true</literal>:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1175
-#, no-c-format
-msgid "&lt;attribute name=\"UseJK\"&gt;true&lt;/attribute&gt;"
-msgstr "&lt;attribute name=\"UseJK\"&gt;true&lt;/attribute&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1176
-#, 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 ""
-"现在,你有了完全工作的 Apache+mod_jk load-balancer 系统,它将平衡对群集里的 "
-"Servlet 容器的调用,同时顾及到 session stickiness(客户将总使用相同的 "
-"Servlet 容器)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1180
-#, 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 ""
-"对于和 JBoss Tomcat 一起使用 mod_jk 1.2 的更新信息,请参考 <literal>http://"
-"wiki.jboss.org/wiki/Wiki.jsp?page=UsingMod_jk1.2WithJBoss</literal> çš„ JBoss "
-"wiki 页。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1188
-#, fuzzy, no-c-format
-msgid "Configuring HTTP session state replication"
-msgstr "配置 HTTP 会话状态复制(session state replication)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1189
-#, 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_Introduction.xml:1192
-#, fuzzy, 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 ""
-"在 <xref linkend=\"clustering-http-nodes\"/> 里,我们涉及了怎样使用 sticky "
-"sessions 来确保会话里的客户总是利用相同的服务器来维护会话状态。然而,这并非一"
-"个理想的解决方案。如果某一节点崩溃了并丢失了所有的会话数据,负载就有可能没有"
-"均衡分布在节点上。一个更好的和可靠的办法就是在群集里的所有节点上复制会话数"
-"据。这样的话,客户可以访问任何节点而获得相同的会话数据。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1194
-#, fuzzy, 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 ""
-"<literal>jboss.cache:service=TomcatClusteringCache</literal> MBean 利用 "
-"JBoss Cache 来为 JBoss Tomcat 群集里的 HTTP 负载平衡系统提供 HTTP 会话复制服"
-"务。<literal>deploy/tc5-cluster.sar/META-INF/jboss-service.xml</literal> 文件"
-"里定义了这个 MBean。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1197
-#, fuzzy, 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 ""
-"在 AS 4.0.4 CR2 之前, HTTP 会话缓存配置文件是 <literal>deploy/tc5-cluster-"
-"service.xml</literal>。请参考 AS 4.0.3 文档来获得更多细节。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1199
-#, fuzzy, 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 ""
-"下面是一个典型的 <literal>deploy/tc5-cluster.sar/META-INF/jboss-service.xml</"
-"literal> 文件。<literal>TomcatClusteringCache</literal> MBean 里的配置属性和 "
-"<xref linkend=\"jbosscache-cache\"/> 里的非常相似。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1202
-#, fuzzy, 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 ""
-"&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"
-"    &lt;attribute name=\"LockAcquisitionTimeout\"&gt;15000&lt;/"
-"attribute&gt;\n"
-"&lt;/mbean&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1204
-#, no-c-format
-#, fuzzy
-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 "备注 <literal></literal><literal></literal>."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1207
-#, fuzzy, 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 ""
-"<xref linkend=\"jbosscache-cache\"/> 里包括了 <literal>TreeCache</literal> "
-"MBean 的详细配置。下面,我们将讨论和 HTTP 群集会话复制(cluster session "
-"replication)最为相关的几个属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1210
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">TransactionManagerLookupClass</emphasis> 设置 "
-"transaction manager factory。它的缺省值是 <literal>org.jboss.cache."
-"BatchModeTransactionManagerLookup</literal>。它告诉缓存不要参与 JTA 相关的事"
-"务。作为替代,缓存管理自己的事务来支持细颗粒度的复制。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1217
-#, 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_Introduction.xml:1221
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">ClusterName</emphasis> 指定了缓存所服务的群集的名字。"
-"缺省的群集名是 \"Tomcat-\" 后面跟着当前的 JBoss 分区名。所有节点都应该使用相"
-"同的群集名。虽然会话复制能够和 JBoss 的其他群集服务共享同一通道(多点传送地址"
-"和端口),复制还是应该有自己的群集名。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1226
-#, 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 ""
-"<emphasis role=\"bold\">UseMarshalling</emphasis> 和 <emphasis role=\"bold"
-"\">InactiveOnStartup</emphasis> 属性必须有相同的值。如果需要使用 "
-"<literal>FIELD</literal> 级会话复制(请参考后面的内容),它们的值必须是 "
-"<literal>true</literal>。否则,它们的缺省值是 <literal>false</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1231
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">ClusterConfig</emphasis> 包含底层 JGroups 栈(参见 "
-"<xref linkend=\"jbosscache-jgroups\"/>)的配置。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1234
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">LockAcquisitionTimeout</emphasis> 设置以毫秒为单位的"
-"等待所锁定捕获(lock acquisition)的最长时间。它的缺省值是 15000。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1238
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">LockAcquisitionTimeout</emphasis> 设置以毫秒为单位的"
-"等待所锁定捕获(lock acquisition)的最长时间。它的缺省值是 15000。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1246
-#, no-c-format
-msgid "Enabling session replication in your application"
-msgstr "在你的应用程序里启用会话复制"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1247
-#, fuzzy, 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 ""
-"为了启用 web 应用程序的群集,你必须在 <literal>web.xml</literal> 描述符里把它"
-"标记为 distributable。下面是一个例子:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1249
-#, 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 ""
-"&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;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1250
-#, 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 ""
-"你可以用 <literal>jboss-web.xml</literal> 文件里的 <literal>replication-"
-"config</literal> 元素进一步配置会话复制。下面是一个例子:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1252
-#, 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 ""
-"&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;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1253
-#, fuzzy, 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 ""
-"<literal>replication-trigger</literal> 元素决定用什么触发状态复制(或什么时候"
-"会话被认为是 dirty 的)。它有四个选项:"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1257
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">SET</emphasis>:在这个选项下,只有在会话里设置了属"
-"性,会话才被认为是 dirty。如果你的应用程序总把改变的写回到会话里,从性能角度"
-"来讲这个选项可能是最优化的。如果只从会话里取出一个对象而不把它写回到会话里,"
-"对这个对象的修改将不会被复制。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1260
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">SET_AND_GET</emphasis>:如使用这个策略,所有 get 或 "
-"set 的属性都会被标记为 ditry。如果从会话里取出一个对象并修改它,但没有写回到"
-"这个会话里,这些修改也将被复制。这个选项对性能有比较大的影响。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1263
-#, 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_Introduction.xml:1266
-#, fuzzy, 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 "<emphasis role=\"bold\"></emphasis> 备注 ."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1269
-#, no-c-format
-msgid ""
-"The <literal>replication-granularity</literal> element controls the size of "
-"the replication units. The supported values are:"
-msgstr ""
-"<literal>replication-granularity</literal> 元素控制复制单元的大小。它所支持的"
-"值如下:"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1274
-#, 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_Introduction.xml:1277
-#, 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_Introduction.xml:1282
-#, 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_Introduction.xml:1285
-#, fuzzy, 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 ""
-"<literal>replication-field-batch-mode</literal> 指出你是否在每个 HTTP 请求之"
-"间进行批量更新。它的缺省值是 <literal>true</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1286
-#, fuzzy, 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 ""
-"如果你的会话通常很小,使用 SESSION 选项是更好的策略。如果你的会话更大些而且某"
-"些部分并不常被访问,ATTRIBUTE 方式的复制就会更有效。如果你的应用程序在会话属"
-"性里拥有非常大的数据对象,而且只有这些对象里的某些字段被经常修改,采用 FIELD "
-"策略将是最佳选择。在后面的内容里,让我们讨论一下怎样使用 FIELD 级的复制。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1298
-#, fuzzy, no-c-format
-msgid "Using FIELD level replication"
-msgstr "使用字段级(FIELD level)的复制"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1299
-#, fuzzy, 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 ""
-"字段级复制只复制存储在会话里的对象内部的被修改的数据字段。它能够极大地减少群"
-"集节点之间的数据通信,也因此提高了整个群集系统的性能。为了使用字段级复制,你"
-"首先得用 Java 类来指出哪个字段要被复制。它是通过在 JavaDocs 嵌入的 JDK 1.4 风"
-"格的注解(annotations)来完成的。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1301
-#, 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_Introduction.xml:1305
-#, fuzzy, no-c-format
-msgid ""
-"<![CDATA[\n"
-"@org.jboss.cache.aop.AopMarker\n"
-"public class Address \n"
-"{\n"
-"...\n"
-"}]]>"
-msgstr ""
-"/*\n"
-" *\n"
-" * @@org.jboss.web.tomcat.tc5.session.InstanceOfAopMarker\n"
-" */\n"
-"public class Person \n"
-"{\n"
-"...\n"
-"}"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1307
-#, fuzzy, 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 ""
-"如果你用 <literal>InstanceAopMarker</literal> 注解类时,它所有的子类都将自动"
-"被注解。例如,"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1310
-#, 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_Introduction.xml:1312
-#, 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 5.0 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_Introduction.xml:1317
-#, 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 ""
-"/*\n"
-" * My usual comments here first.\n"
-" * @@org.jboss.web.tomcat.tc5.session.AopMarker\n"
-" */\n"
-"public class Address \n"
-"{\n"
-"...\n"
-"}"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1320
-#, no-c-format
-msgid "The anologue for <literal>@InstanceAopMarker</literal> is:"
-msgstr ""
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1322
-#, no-c-format
-msgid ""
-"/*\n"
-" *\n"
-" * @@org.jboss.web.tomcat.tc5.session.InstanceOfAopMarker\n"
-" */\n"
-"public class Person \n"
-"{\n"
-"...\n"
-"}"
-msgstr ""
-"/*\n"
-" *\n"
-" * @@org.jboss.web.tomcat.tc5.session.InstanceOfAopMarker\n"
-" */\n"
-"public class Person \n"
-"{\n"
-"...\n"
-"}"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1326
-#, fuzzy, 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 ""
-"然而,既然目前我们只支持 JDK 1.4 风格的注解(由 JBoss Aop 提供),你将需要执"
-"行一个预处理步骤。在 Java 编译器编译之前和之后,你需要用 JBoss AOP pre-"
-"compiler <literal>annotationc</literal> 和 post-compiler <literal>aopc</"
-"literal> 来处理上面的源码。这里是一个怎样从命令行调用这些命令的例子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1330
-#, 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 ""
-"$ annotationc [classpath] [source files or directories]\n"
-"$ javac -cp [classpath] [source files or directories]\n"
-"$ aopc [classpath] [class files or directories]"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1332
-#, fuzzy, 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 ""
-"请参考 JBoss AOP 文档关于怎样使用 pre- 和 post-compiler。JBoss AOP 项目也提供"
-"使用 ANT 来把上述步骤集成在应用程序的 build 过程中的简单方法。下一个 AS 发布"
-"版本将提供对 JDK 5.0 注解的更透明的支持。但是现在,你还得用 pre- 和 post-"
-"compiler 来编译你的源码。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1336
-#, fuzzy, 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 ""
-"或者,你也能够在 <literal>http://wiki.jboss.org/wiki/Wiki.jsp?"
-"page=Http_session_field_level_example</literal> 里看到一个怎样构建(build),"
-"部署(deploy),和验证(validate)采用字段级复制的 web 应用程序的完整例子。这"
-"个例子捆绑了 pre- 和 post-compile 工具,所以你不需要再下载单独的 JBoss AOP "
-"了。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1340
-#, no-c-format
-msgid ""
-"When you deploy the web application into JBoss AS, make sure that the "
-"following configurations are correct:"
-msgstr "当你把 web 应用程序部署到 JBoss AS 时,请确保下面的配置是正确的:"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1344
-#, fuzzy, 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 ""
-"在服务器的 <literal>deploy/tc5-cluster.sar/META-INF/jboss-service.xml</"
-"literal> 文件里,<literal>inactiveOnStartup</literal> 和"
-"<literal>useMarshalling</literal> 属性必须都为 <literal>true</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1349
-#, 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 ""
-"在应用程序的 <literal>jboss-web.xml</literal> 文件里,<literal>replication-"
-"granularity</literal> 属性必须为 <literal>FIELD</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1354
-#, 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 ""
-"最后,让我们看一个怎样在哪些数据类上使用字段级(FIELD-level)复制的例子。请注"
-"意你不需要在修改数据对象(data object)后调用 <literal>session.setAttribute"
-"()</literal>,对字段的所有修改都自动跨群集地被复制了。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1357
-#, 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 ""
-"// 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."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1358
-#, 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 ""
-"除了简单的对象(plain objects),你还可以使用那些对象的常规 Java 集合(Java "
-"collection)作为会话属性。JBoss cache 会自动地判断怎样处理这些集合和复制它们"
-"的成员对象里的字段的变更。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1363
-#, no-c-format
-msgid "Monitoring session replication"
-msgstr "监控会话复制"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1364
-#, 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 ""
-"如果你已经部署和访问了你的应用程序,你可以使用 <literal>jboss.cache:"
-"service=TomcatClusteringCache</literal> MBean 和调用 <literal>printDetails</"
-"literal> 操作。你应该看到下面的输出结果。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1367
-#, fuzzy, 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 ""
-"/JSESSION\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"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1369
-#, fuzzy, 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 ""
-"这个输出结果展示了在一个叫 <emphasis>quote</emphasis> 应用程序里的两个独立的 "
-"web 会话,它们通过 JBossCache 来共享。这个例子使用了 <literal>session</"
-"literal> 的 <literal>replication-granularity</literal>。如果使用了 "
-"<literal>attribute</literal> 级的复制,应该可以看到展示每个被复制的会话属性的"
-"其他条目。在两种情况下,被复制的值都存储在一个不透明的 "
-"<literal>MarshelledValue</literal> 容器里。目前还没有任何工具可以让你查看这些"
-"被复制的会话值。如果你没有看到任何输出,要么是应用程序没有正确地标记为"
-"<literal>distributable</literal>,要么就是你根本没有访问把值写入 HTTP 会话的"
-"应用程序。<literal>org.jboss.cache</literal> 和  <literal>org.jboss.web</"
-"literal> 日志类别提供了可用于调试目的对会话复制的其他视角。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1377
-#, fuzzy, no-c-format
-msgid "Using Clustered Single Sign On"
-msgstr "使用单点登录(Single Sign On)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1379
-#, fuzzy, 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 ""
-"JBoss 支持群集的单点登录(single sign-on),允许用户在一个 JBoss 服务器上验证"
-"应用程序,然后被在同一个主机或群集里的其他节点里的被部署在同一个虚拟主机上的"
-"所有应用程序识别。HTTP 会话复制服务处理复制验证(Authentication "
-"replication)。虽然会话复制不需要显性地为这个应用程序启用,但 <literal>tc5-"
-"cluster-service.xml</literal> 文件必须被部署。 "
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1381
-#, 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 ""
-"为了启用单点登录,你必须在 <literal>server.xml</literal> 文件的 "
-"<literal>Host</literal> 元素里加入 <literal>ClusteredSingleSignOn</literal> "
-"开关(valve)。这个开关(valve)的配置如下:"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1384
-#, no-c-format
-msgid ""
-"&lt;Valve className=\"org.jboss.web.tomcat.tc5.sso.ClusteredSingleSignOn\" /"
-"&gt;"
-msgstr ""
-"&lt;Valve className=\"org.jboss.web.tomcat.tc5.sso.ClusteredSingleSignOn\" /"
-"&gt;"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1387
-#, fuzzy, no-c-format
-msgid "Clustered Singleton Services"
-msgstr "群集的 JMS 服务"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1388
-#, 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_Introduction.xml:1391
-#, no-c-format
-msgid "Topology after the Master Node fails"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1399
-#, no-c-format
-#, fuzzy
-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 "HAPartition<literal> HAPartition</literal>."
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1404
-#, fuzzy, no-c-format
-msgid "HASingletonDeployer service"
-msgstr "client-deployer-service.xml"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1405
-#, 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_Introduction.xml:1408
-#, 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_Introduction.xml:1411
-#, no-c-format
-msgid "Using deploy-hasingleton is very simple, but it does have two drawbacks:"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1415
-#, 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_Introduction.xml:1420
-#, 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_Introduction.xml:1432
-#, no-c-format
-msgid "Mbean deployments using HASingletonController"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1433
-#, no-c-format
-#, fuzzy
-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 "HAPartition."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1436
-#, 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_Introduction.xml:1439
-#, 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_Introduction.xml:1441
-#, 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_Introduction.xml:1444
-#, 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_Introduction.xml:1447
-#, no-c-format
-#, fuzzy
-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 ""
-"\n"
-"<server>\n"
-"\n"
-"<mbean code=\"org.jboss.ha.examples.HASingletonExample\" \n name=“jboss:service=HASingletonExample\"/>\n"
-"\n"
-"\n"
-"<mbean code=\"org.jboss.ha.singleton.HASingletonController\" \n name=\"jboss:service=ExampleHASingletonController\">\n"
-"\n"
-" HAPartition\n"
-"<depends optional-attribute-name=\"ClusterPartition\" proxy-type=\"attribute\">\n"
-"\n"
-"</depends>\n"
-"\n"
-"<depends optional-attribute-name=\"TargetName\">\n"
-"\n"
-"</depends>\n"
-"\n"
-"<attribute name=\"TargetStartMethod\"></attribute>\n"
-"<attribute name=\"TargetStopMethod\"></attribute>\n"
-"</mbean>\n"
-"</server>"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1449
-#, no-c-format
-msgid "Voila! A clustered singleton service."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1451
-#, 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_Introduction.xml:1454
-#, 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_Introduction.xml:1457
-#, 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_Introduction.xml:1459
-#, 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_Introduction.xml:1467
-#, no-c-format
-msgid "HASingleton deployments using a Barrier"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1468
-#, 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_Introduction.xml:1470
-#, no-c-format
-msgid ""
-"<![CDATA[<depends>jboss.ha:service=HASingletonDeployer,type=Barrier</"
-"depends>]]>"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1472
-#, 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_Introduction.xml:1476
-#, 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_Introduction.xml:1479
-#, 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_Introduction.xml:1483
-#, 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_Introduction.xml:1487
-#, 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_Introduction.xml:1496
-#, no-c-format
-msgid "Determining the master node"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1497
-#, 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_Introduction.xml:1500
-#, no-c-format
-#, fuzzy
-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 "HAPartition<literal></literal>."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1503
-#, 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_Introduction.xml:1506
-#, no-c-format
-#, fuzzy
-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 "<literal></literal><literal> HAPartition</literal><literal> HAPartition</literal>."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1510
-#, no-c-format
-#, fuzzy
-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 "<literal> HAPartition</literal>."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1514
-#, 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 ""
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1534
-#, no-c-format
-msgid "Clustered JMS Services"
-msgstr "群集的 JMS 服务"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1536
-#, 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 ""
-"JBoss AS 3.2.4 和更高的版本支持高可用性的 <literal>all</literal> 服务器配置里"
-"的 JMS(HA-JMS)服务。在 JBoss AS 当前的发布版本里,HA-JMS 服务用一个群集的 "
-"singleton fail-over 服务来实现。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1541
-#, 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 ""
-"如果你希望自己来配置 HA-JMS,你可以在以前的 JBoss AS 版本里让它运行。我们有一"
-"个客户成功地在 JBoss AS 3.0.7 里使用 HA-JMS。如果你有更多问题的话,请联系 "
-"JBoss 支持部门。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1545
-#, no-c-format
-msgid ""
-"The HA-JMS in JBoss AS 4.2.2 and earlier was based on the JBoss MQ messaging "
-"product. In later releases of the AS, JBoss MQ was 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_Introduction.xml:1554
-#, no-c-format
-msgid "High Availability Singleton Fail-over"
-msgstr "高可用性的 Singleton Fail-over"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1555
-#, fuzzy, 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 ""
-"JBoss HA-JMS 服务(也就是消息队列和主题)任何给定时间都只在群集里的单节点运行"
-"(主节点)。如果这个节点崩溃了,群集系统简单地选取另外一节点来运行 JMS 服务"
-"(fail-over)。这种设置提供了针对服务器瘫痪的冗余措施,但并没有降低 JMS 服务"
-"器节点的负载。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1557
-#, 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 ""
-"虽然你不能够对 HA-JMS 队列进行负载平衡(只有一个运行这个队列的主节点),但是"
-"你可以平衡处理队列里信息的 MDBs 的负载(请参考 <xref linkend=\"clustering-"
-"jms-loadbalanced\"/>)。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1562
-#, no-c-format
-msgid "Server Side Configuration"
-msgstr "服务端配置"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1564
-#, 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_Introduction.xml:1567
-#, fuzzy, 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 ""
-"为了使用 singleton fail-over HA-JMS 服务,你必须在群集里的所有节点上配置相同"
-"的 JMS 服务。这包括所有和 JMS 相关的 MBeans 以及部署的 JMS 应用程序。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1573
-#, fuzzy, 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 ""
-"JMS 服务器被设置成在 <literal>DefaultDS</literal> 里持久化它的数据。在缺省的"
-"情况下,那就是内含的 HSQLDB。然而,在大部分群集环境里,所有节点都需要把数据持"
-"久化到一个共享数据库里。因此,在你启动群集 JMS 之前要做的第一件事就是建立一个"
-"共享数据库。你需要做如下的事情:"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1579
-#, 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_Introduction.xml:1586
-#, 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 ""
-"把 <literal>server/all/deploy-hasingleton/jms</literal> 目录下的 "
-"<literal>hsqldb-jdbc2-service.xml</literal>文件用特定数据库的文件代替。例如,"
-"MySQL 的文件就是 <literal>mysql-jdbc2-service.xml</literal>。JBoss AS 发行版"
-"本捆绑了一些 RDBMS 的配置文件。它们可以在 <literal>docs/examples/jms</"
-"literal> 下找到。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1595
-#, fuzzy, 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 ""
-"你不需要替换 <literal>server/all/deploy-hasingleton/jms</literal> 目录下的 "
-"<literal>hsqldb-jdbc-state-service.xml</literal> 文件。尽管它的名字里包含 "
-"<literal>hsql</literal>,它适用于所有兼容 SQL92 的数据库,包括 HSQL,MySQL,"
-"SQL Server 和更多数据库。象我们上面配置的那样,它自动使用 "
-"<literal>DefaultDS</literal> 来存放数据。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1606
-#, fuzzy, no-c-format
-msgid "Non-MDB HA-JMS Clients"
-msgstr "HA-JMS 客户"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1608
-#, no-c-format
-msgid ""
-"The HA-JMS client is different from regular JMS clients in two important "
-"aspects."
-msgstr "HA-JMS 客户和常规的 JMS 客户在两个方面有所不同。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1612
-#, 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_Introduction.xml:1620
-#, 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_Introduction.xml:1628
-#, 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_Introduction.xml:1630
-#, no-c-format
-msgid "And in the JBoss-specific descriptor (jboss.xml or jboss-web.xml):"
-msgstr ""
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1634
-#, 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_Introduction.xml:1639
-#, 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_Introduction.xml:1647
-#, 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_Introduction.xml:1651
-#, 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_Introduction.xml:1657
-#, 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_Introduction.xml:1661
-#, no-c-format
-msgid "MDBs and HA-JMS Failover"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1662
-#, 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_Introduction.xml:1672
-#, no-c-format
-msgid "Load Balanced HA-JMS MDBs"
-msgstr "负载平衡的 HA-JMS MDBs "
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1673
-#, 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 ""
-"虽然 HA-JMS 队列(queues)和主题(topics)在同一时间只在单节点上运行,但其他"
-"节点上的 MDBs 也能够接收和处理 HA-JMS 主节点上的信息。这种竞争的情况导致 "
-"MDBs 的平衡负载行为。为了启用 MDBs 的平衡负载,你可以指定队列的 receiver。这"
-"个 receiver 记录哪个节点正在等待信息和信息该按什么样的顺序来处理。JBoss 提供"
-"三个 receiver 的实现(implementations)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1680
-#, no-c-format
-msgid ""
-"The <literal>org.jboss.mq.server.ReceiversImpl</literal> is the default "
-"implementation using a <literal>HashSet</literal>."
-msgstr ""
-"<literal>org.jboss.mq.server.ReceiversImpl</literal> 是 <literal>HashSet</"
-"literal> 的缺省实现(implementation)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1684
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>org.jboss.mq.server.ReceiversImplArrayList</literal> is the "
-"implementation using an <literal>ArrayList</literal>."
-msgstr ""
-"<literal>org.jboss.mq.server.ReceiversImplArrayList</literal> 是 "
-"<literal>ArrayList</literal> 的实现。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1688
-#, no-c-format
-msgid ""
-"The <literal>org.jboss.mq.server.ReceiversImplLinkedList</literal> is the "
-"implementation using a <literal>LinkedList</literal>."
-msgstr ""
-"<literal>org.jboss.mq.server.ReceiversImplLinkedList</literal> 是 "
-"<literal>LinkedList</literal> 的实现。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1692
-#, 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 ""
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1704
-#, no-c-format
-msgid "JBossCache and JGroups Services"
-msgstr "JBossCache 和 JGroups 服务"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1705
-#, fuzzy, 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 ""
-"JGroups 和 JBossCache 为 JBoss AS 群集提供底层的通信,节点复制和缓存服务。这"
-"些服务都配置成 MBeans。对于每一个类型的群集应用程序(如 Stateful Session "
-"EJBs, distributed entity EJBs 等),都有一个 JBossCache 和 JGroups 的 "
-"MBeans 的集合。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1709
-#, 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 ""
-"JBoss AS 带有缺省的 JGroups 和 JBossCache 的配置集。大部分应用程序使用这些缺"
-"省的配置就够了。只是在部署有特殊网络或性能要求的应用程序时,你才需要做更多的"
-"配置。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1714
-#, no-c-format
-msgid "JGroups Configuration"
-msgstr "JGroups Configuration"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1715
-#, 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 ""
-"JGroups 框架提供了启用群集系统里节点间到对点通信的服务。它建立在网络通信协议"
-"栈的顶层,它提供传输,发现(discovery),可靠性(reliability)和故障"
-"(failure)检测,以及群集成员资格管理服务。<xref linkend=\"jbosscache-"
-"JGroupsStack.fig\"/> 展示了 JGroups 的协议栈。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1719
-#, no-c-format
-msgid "Protocol stack in JGroups"
-msgstr "Protocol stack in JGroups"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1726
-#, 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 ""
-"JGroups 配置经常以和群集相关的 MBean 服务的嵌套属性的面目出现,例如  "
-"<literal>ClusterPartition</literal> MBean çš„<literal>PartitionConfig</"
-"literal> 属性或 <literal>TreeCache</literal> MBean 的  "
-"<literal>ClusterConfig</literal> 属性。你可以通过这些 MBean 属性来配置 "
-"JGroups 每一个协议的行为和属性(properties)。下面是一个 "
-"<literal>ClusterPartition</literal> MBean 里的 JGroups 配置的例子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1731
-#, 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_Introduction.xml:1732
-#, 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_Introduction.xml:1737
-#, fuzzy, no-c-format
-msgid "Common Configuration Properties"
-msgstr "其他配置选项"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1738
-#, no-c-format
-msgid ""
-"The following common properties are exposed by all of the JGroups protocols "
-"discussed below:"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1742
-#, 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_Introduction.xml:1746
-#, 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_Introduction.xml:1750
-#, 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_Introduction.xml:1756
-#, no-c-format
-msgid "Transport Protocols"
-msgstr "传输协议"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1757
-#, 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 ""
-"传输协议(transport protocols)从一个群集节点发送信息到另外一个节点(单播 "
-"unicast)或发送到群集里所有其他节点(mcast)。JGroups 支持 UDP,TCP 和 "
-"TUNNEL 等传输协议。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1761
-#, 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 ""
-"<literal>UDP</literal>,<literal>TCP</literal> 和 <literal>TUNNEL</literal> "
-"元素是相互排斥的。你只能在每个 JGroups <literal>Config</literal> 元素里使用一"
-"个传输协议。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1766
-#, no-c-format
-msgid "UDP configuration"
-msgstr "UDP 配置"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1767
-#, 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 ""
-"UDP 是 JGroups 的首选协议。UDP 使用多点传送(multicast )或多个单播"
-"(unicast)来发送和接收信息。如果你选择 UDP 作为你的群集服务的传输协议,你需"
-"要在 JGroups <literal>Config</literal> 元素的 <literal>UDP</literal> 子元素里"
-"配置它。下面是一个示例。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1771
-#, 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_Introduction.xml:1774
-#, no-c-format
-msgid "The available attributes in the above JGroups configuration are listed below."
-msgstr "下列是在上述 JGroups 配置里的可用属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1777
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">ip_mcast</emphasis> 指定是否使用 IP 多点传送"
-"(multicasting)。它的缺省值是 <literal>true</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1782
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">mcast_addr</emphasis> 指定加入到组(就是群集)里的多"
-"点传送地址(class D)。它的缺省值是 <literal>228.8.8.8</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1787
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"bold\">mcast_port</emphasis> specifies the multicast port "
-"number. If omitted, the default is <literal>45566</literal>."
-msgstr ""
-"<emphasis role=\"bold\">mcast_port</emphasis> 指定多点传送端口号码。它的缺省"
-"值是 <literal>45566</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1791
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">bind_addr</emphasis> 指定接收和发送多点传送的接口(如"
-"果可用,使用 <literal>bind.address</literal> 系统属性)。如果你有一个多宿主主"
-"机,把 <literal>bind_addr</literal> 属性设置为合适的 NIC IP 地址。如果 "
-"<literal>ignore.bind.address</literal> 属性为真(true)的话,这个属性将被忽"
-"略。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1794
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">bind_to_all_interfaces</emphasis> 指定是否这个节点应"
-"该为多点传送侦听所有的接口。它的缺省值是 <literal>false</literal>。它覆盖了接"
-"收多点传送的 <literal>bind_addr</literal> 属性。然而,<literal>bind_addr</"
-"literal>(如果设置了)仍会用来发送多点传送信息。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1799
-#, 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_Introduction.xml:1804
-#, 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_Introduction.xml:1810
-#, 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_Introduction.xml:1814
-#, 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_Introduction.xml:1817
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">use_outgoing_packet_handler</emphasis> 指定是否使用单"
-"独的线程来处理输出的(outgoing)信息。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1820
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">enable_bundling</emphasis> 指定是否启用捆绑"
-"(bundling)。如果它设为<literal>true</literal>,节点将会把输出的信息排队,一"
-"直到积累了 <literal>max_bundle_size</literal> 个字节,或者是 "
-"<literal>max_bundle_time</literal> 毫秒后,依哪个先发生而定。然后把排队的信息"
-"捆绑成一个大的信息发送出去。这个信息在接收端再解开。它的缺省值是 "
-"<literal>false</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1828
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">loopback</emphasis> 指定是否在堆栈里回送(loop back)"
-"输出信息。在单播 <literal>unicast</literal> 模式下,信息都会发送给自己。如果"
-"是 <literal>mcast</literal> 模式,多点传送信息的备份将被发送。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1833
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">discard_incompatibe_packets</emphasis> 指定是否丢弃从"
-"不同版本的 JGroups 过来的数据包。群集里的每个数据包都用 JGroups 版本号来标"
-"记。如果它设置为 true,当接收到一个不同 JGroups 版本的信息时,这个信息将被丢"
-"弃; 否则,将记录一个警告。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1839
-#, 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 ""
-"<emphasis role=\"bold\">mcast_send_buf_size,mcast_recv_buf_size,"
-"ucast_send_buf_size,ucast_recv_buf_size</emphasis> 定义接收和发送的缓冲区大"
-"小。设置大的接收缓冲区会比较好,这样数据包就不会因为缓冲区溢出而被丢弃。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1845
-#, no-c-format
-msgid ""
-"<literal>tos</literal> specifies traffic class for sending unicast and "
-"multicast datagrams."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1851
-#, 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 ""
-"在安装 Windows 2000 的机器里,由于 media sense 特征与多点传送冲突(即使你关闭"
-"了 media sense),你需要把 UDP 协议的 <literal>loopback</literal> 属性设为 "
-"<literal>true</literal>。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1859
-#, no-c-format
-msgid "TCP configuration"
-msgstr "TCP 配置"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1860
-#, fuzzy, 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 ""
-"另外,基于 JGroups 的群集系统也可以使用 TCP 连接。和 UDP 相比,当群集规模扩大"
-"时 TCP 会产生更多的网络流量,但是 TCP 更加可靠。TCP 从根本来说是一个单播"
-"(unicast)的协议。为了发送多点传送的信息,JGroups 使用多个 TCP 单播。如要把 "
-"TCP 作为一个传输协议来使用,你应该定义 JGroups <literal>Config</literal> 元素"
-"里的 <literal>TCP</literal> 元素。这是一个 <literal>TCP</literal> 元素的例"
-"子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1866
-#, fuzzy, 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 ""
-"&lt;TCP start_port=\"7800\"\n"
-"    bind_addr=\"192.168.5.1\"\n"
-"    loopback=\"true\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1867
-#, no-c-format
-msgid "Below are the attributes available in the <literal>TCP</literal> element."
-msgstr "下列是 <literal>TCP</literal> 元素里的可用属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1870
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">bind_addr</emphasis> 指定了绑定的地址。它也可以在服务"
-"器启动时用  <literal>-Dbind.address</literal> 命令行选项来设定。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1875
-#, 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_Introduction.xml:1881
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">loopback</emphasis> 指定是否在堆栈里回送(loop back)"
-"输出信息。在单播 <literal>unicast</literal> 模式下,信息都会发送给自己。如果"
-"是 <literal>mcast</literal> 模式,多点传送信息的备份将被发送。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1886
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">mcast_send_buf_size,mcast_recv_buf_size,"
-"ucast_send_buf_size,ucast_recv_buf_size</emphasis> 定义接收和发送的缓冲区大"
-"小。设置大的接收缓冲区会比较好,这样数据包就不会因为缓冲区溢出而被丢弃。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1889
-#, 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 ""
-"<emphasis role=\"bold\">conn_expire_time</emphasis> 指定在多久(毫秒数)没有"
-"网络流量后,reaper 可以关闭这个连接。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1894
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">reaper_interval</emphasis> 指定运行 reaper 的时间(毫"
-"秒)。如果两个值都是 0,reaper 将不会运行。如果其中一个是 &gt; 0,reaper 将被"
-"启用。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1899
-#, 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_Introduction.xml:1902
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">use_incoming_packet_handler</emphasis> 指定是否使用单"
-"独的线程来处理输入的信息。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1905
-#, 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_Introduction.xml:1908
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">ip_mcast</emphasis> 指定是否使用 IP 多点传送"
-"(multicasting)。它的缺省值是 <literal>true</literal>。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1911
-#, 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_Introduction.xml:1923
-#, no-c-format
-msgid "TUNNEL configuration"
-msgstr "TUNNEL 配置"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1924
-#, fuzzy, 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 ""
-"TUNNEL 协议使用外部的路由器来发送信息。这个外部路由器是 "
-"<literal>GossipRouter</literal>。每个节点都得在这个路由器上注册。所有信息都被"
-"发送到这个路由器并被转发到目的地。TUNNEL 方法可以用来设置与防火墙后面的节点通"
-"信。节点可以穿过防火墙(你可以用 80 端口)和 GossipRouter 建立一个 TCP 连接。"
-"路由器使用同一个连接来发送信息到防火墙后面的节点。TUNNEL 配置在 JGroups "
-"<literal>Config</literal> 元素里的 <literal>TUNNEL</literal> 元素里被定义。下"
-"面是一个例子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1929
-#, fuzzy, 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 ""
-"&lt;TUNNEL router_port=\"12001\"\n"
-"    router_host=\"192.168.5.1\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1932
-#, no-c-format
-msgid ""
-"The available attributes in the <literal>TUNNEL</literal> element are listed "
-"below."
-msgstr "下列是 <literal>TUNNEL</literal> 元素里的可用属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1935
-#, no-c-format
-msgid ""
-"<emphasis role=\"bold\">router_host</emphasis> specifies the host on which "
-"the GossipRouter is running."
-msgstr ""
-"<emphasis role=\"bold\">router_host</emphasis> 指定 GossipRouter 运行在哪个主"
-"机上。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1939
-#, no-c-format
-msgid ""
-"<emphasis role=\"bold\">router_port</emphasis> specifies the port on which "
-"the GossipRouter is listening."
-msgstr "<emphasis role=\"bold\">router_port</emphasis> 指定 GossipRouter 侦听的端口。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1943
-#, 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 ""
-"<emphasis role=\"bold\">loopback</emphasis> 是否在堆栈里回送信息。它的缺省值"
-"是 <literal>true</literal>。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1954
-#, no-c-format
-msgid "Discovery Protocols"
-msgstr "发现协议(Discovery Protocols)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1955
-#, fuzzy, 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 ""
-"群集系统需要一直维护当前成员节点的列表,这样负载平衡系统(load balancer)和客"
-"户端拦截器(client interceptor)就知道怎样去指引它们的请求。发现协议"
-"(discovery protocols)用来在群集系统里探索活动节点。当群集系统启动时将检测到"
-"所有的初始节点。之后如果有新的节点加入,它只有在组成员协议(group membership "
-"protocol)(GMS,参见 <xref linkend=\"jbosscache-jgroups-other-gms\"/>)批准"
-"后才能被探索(discovered)到。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1959
-#, fuzzy, 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 ""
-"既然发现协议(discovery protocols)处于传输协议之上,你可以根据你的传输协议选"
-"择不同的发现协议。发现协议在 JGroups MBean <literal>Config</literal> 元素里也"
-"被配置成子元素(sub-elements)。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:1965
-#, no-c-format
-msgid "PING"
-msgstr "PING"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1966
-#, 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_Introduction.xml:1969
-#, no-c-format
-msgid "Here is an example PING configuration for IP multicast."
-msgstr ""
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1973
-#, fuzzy, no-c-format
-msgid ""
-"&lt;PING timeout=\"2000\"\n"
-"    num_initial_members=\"2\"\n"
-"    down_thread=\"false\" up_thread=\"false\"/&gt;"
-msgstr ""
-"&lt;PING timeout=\"2000\"\n"
-"    num_initial_members=\"2\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1974
-#, no-c-format
-msgid "Here is another example PING configuration for contacting a Gossip Router."
-msgstr ""
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:1976
-#, 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_Introduction.xml:1981
-#, no-c-format
-msgid ""
-"The available attributes in the <literal>PING</literal> element are listed "
-"below."
-msgstr "下列是 <literal>PING</literal> 元素里的可用属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1984
-#: Clustering_Guide_Introduction.xml:2032
-#: Clustering_Guide_Introduction.xml:2061
-#: Clustering_Guide_Introduction.xml:2095
-#, fuzzy, 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 "<emphasis role=\"bold\">timeout</emphasis> 指定等待应答的最长时间(毫秒数)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1988
-#: Clustering_Guide_Introduction.xml:2036
-#: Clustering_Guide_Introduction.xml:2065
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">num_initial_members</emphasis> 指定等待的最大的应答数"
-"量。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1992
-#, no-c-format
-msgid ""
-"<emphasis role=\"bold\">gossip_host</emphasis> specifies the host on which "
-"the GossipRouter is running."
-msgstr ""
-"<emphasis role=\"bold\">gossip_host</emphasis> 指定 GossipRouter 在哪个主机上"
-"运行。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:1996
-#, no-c-format
-msgid ""
-"<emphasis role=\"bold\">gossip_port</emphasis> specifies the port on which "
-"the GossipRouter is listening on."
-msgstr ""
-"<emphasis role=\"bold\">gossip_port</emphasis> 指定 GossipRouter 所侦听的端"
-"口。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2000
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">gossip_refresh</emphasis> 指定 GossipRouter 的租约"
-"(lease)的时间间隔(毫秒数)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2004
-#, 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 ""
-"<emphasis role=\"bold\">initial_hosts</emphasis> 是一个用逗号隔开的地址列表"
-"(如:<literal>host1[12345],host2[23456]</literal>),群集系统会 ping 这个列"
-"表来进行探索(discovery)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2009
-#, 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 ""
-"如果<literal>gossip_host</literal> 和 <literal>gossip_port</literal> 都被定义"
-"了,群集系统会使用 GossipRouter 作初始探索(initial discovery)。如果指定了  "
-"<literal>initial_hosts</literal>,群集系统会 ping 这个静态地址列表来进行探"
-"索。否则,群集系统用 IP 多点传送来进行探索。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2014
-#, 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 ""
-"当已经过了 <literal>timeout</literal> 毫秒后或者已经接收到 "
-"<literal>num_initial_members</literal> 应答后,探索阶段就会返回。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2022
-#, no-c-format
-msgid "TCPGOSSIP"
-msgstr "TCPGOSSIP"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2023
-#, 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 ""
-"TCPGOSSIP 协议只用于 GossipRouter。它和 PING 协议配置基本上一样,有着有效的 "
-"<literal>gossip_host</literal> 和 <literal>gossip_port</literal> 属性。它处"
-"于 UDP 和 TCP 协议的上面。下面是一个例子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:2026
-#, fuzzy, 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 ""
-"&lt;PING timeout=\"2000\"\n"
-"    initial_hosts=\"192.168.5.1[12000],192.168.0.2[12000]\"\n"
-"    num_initial_members=\"3\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2029
-#, no-c-format
-msgid ""
-"The available attributes in the <literal>TCPGOSSIP</literal> element are "
-"listed below."
-msgstr "下列是 <literal>TCPGOSSIP</literal> 元素里的可用属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2040
-#, 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 ""
-"<emphasis role=\"bold\">initial_hosts</emphasis> 是一个 GossipRouters 用来注"
-"册的用逗号隔开的地址列表(如:<literal>host1[12345],host2[23456]</"
-"literal>)。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2050
-#, no-c-format
-msgid "TCPPING"
-msgstr "TCPPING"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2051
-#, 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 ""
-"TCPPING 协议使用一套知名成员并 ping 它们来进行探索。它基本上是一个静态的配"
-"置。它工作于 TCP 协议的上面。这里是一个 JGroups <literal>Config</literal> 元"
-"素里的 <literal>TCPPING</literal> 配置元素的例子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:2055
-#, fuzzy, 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 ""
-"&lt;TCPPING timeout=\"2000\"\n"
-"    initial_hosts=\"192.168.5.1[7800],192.168.0.2[7800]\"\n"
-"    port_range=\"2\"\n"
-"    num_initial_members=\"3\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2058
-#, no-c-format
-msgid ""
-"The available attributes in the <literal>TCPPING</literal> element are "
-"listed below."
-msgstr "下列是 <literal>TCPPING</literal> 元素的可用属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2069
-#, 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 ""
-"<emphasis role=\"bold\">initial_hosts</emphasis> 是一个用来 pinging 的用逗号"
-"隔开的地址列表(如:<literal>host1[12345],host2[23456]</literal>)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2073
-#, 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_Introduction.xml:2084
-#, no-c-format
-msgid "MPING"
-msgstr "MPING"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2085
-#, 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_Introduction.xml:2089
-#, fuzzy, 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 ""
-"&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\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2092
-#, no-c-format
-msgid ""
-"The available attributes in the <literal>MPING</literal> element are listed "
-"below."
-msgstr "下列是 <literal>MPING</literal> 元素的可用属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2099
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">num_initial_members</emphasis> 指定等待的最大的应答数"
-"量。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2103
-#, no-c-format
-msgid ""
-"<emphasis role=\"bold\">bind_addr</emphasis> specifies the interface on "
-"which to send and receive multicast packets."
-msgstr ""
-"<emphasis role=\"bold\">bind_addr</emphasis> 指定在哪个接口上发送和接收多点传"
-"送数据包。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2107
-#, 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 ""
-"<emphasis role=\"bold\">bind_to_all_interfaces</emphasis> 覆盖了 "
-"<literal>bind_addr</literal> 并使用多宿主节点上的所有接口。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2111
-#, 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 ""
-"<emphasis role=\"bold\">mcast_addr,mcast_port,ip_ttl</emphasis> 属性和 UDP "
-"协议配置的相关属性相同。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2121
-#, no-c-format
-msgid "Failure Detection Protocols"
-msgstr "故障检测协议(Failure Detection Protocols)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2122
-#, fuzzy, 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 ""
-"故障检测协议(failure detection protocols)用来检测发生故障的节点。一旦检测到"
-"了一个发生故障的节点,群集系统会更新它的视图,使负载平衡系统(load balancer)"
-"和客户拦截器(client interceptors)避开死节点。故障检测协议被配置为 JGroups "
-"MBean <literal>Config</literal> 元素里的子元素。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2128
-#, no-c-format
-msgid "<title>FD</title>"
-msgstr "<title>FD</title>"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2129
-#, fuzzy, 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 ""
-"FD 发现协议(FD discovery protocol)要求每个节点定期地发送 are-you-alive 信息"
-"给它的邻居节点。如果这个邻居没有应答,呼叫节点将给群集系统发送一个 SUSPECT 信"
-"息。当前的 group coordinator 会复核这个可能有问题的节点是否真的已经崩溃了,并"
-"更新群集系统的视图。这里是一个 FD 配置的例子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:2133
-#, fuzzy, no-c-format
-msgid ""
-"&lt;FD timeout=\"2000\"\n"
-"    max_tries=\"3\"\n"
-"    shun=\"true\"\n"
-"    down_thread=\"false\" up_thread=\"false\"/&gt;"
-msgstr ""
-"&lt;FD timeout=\"2000\"\n"
-"    max_tries=\"3\"\n"
-"    shun=\"true\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2136
-#, no-c-format
-msgid ""
-"The available attributes in the <literal>FD</literal> element are listed "
-"below."
-msgstr "下列是 <literal>FD</literal> 元素的可用属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2139
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">timeout</emphasis> 指定对 are-you-alive 信息的应答的"
-"最长等待时间(毫秒数)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2143
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">max_tries</emphasis> 指定在一个节点被怀疑为崩溃前,所"
-"丢失的  are-you-alive 信息的次数。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2147
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">shun</emphasis> 指定崩溃的节点是否该被剔除"
-"(shunned)。一旦被剔除,这个节点将从群集里开除,即使之后它又恢复了。被剔除的"
-"节点可以通过探索过程(discovery process)重新加入到群集系统里来。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2153
-#, 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 ""
-"从某个节点的有规律的网络流量可以判定它是否正常工作。所以,are-you-alive 信息"
-"只是在节点有一段时间没有有规律的网络流量时才发送。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2162
-#, no-c-format
-msgid "FD_SOCK"
-msgstr "FD_SOCK"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2163
-#, 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_Introduction.xml:2167
-#, fuzzy, no-c-format
-msgid "&lt;FD_SOCK_down_thread=\"false\" up_thread=\"false\"/&gt;"
-msgstr ""
-"&lt;pbcast.STATE_TRANSFER \n"
-"    down_thread=\"false\"\n"
-"    up_thread=\"false\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2169
-#, fuzzy, no-c-format
-msgid ""
-"There available attributes in the <literal>FD_SOCK</literal> element are "
-"listed below."
-msgstr "下列是 <literal>FD</literal> 元素的可用属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2172
-#, fuzzy, 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 ""
-"<emphasis role=\"bold\">srv_sock_bind_addr</emphasis> 指定服务器套接字应该绑"
-"定的接口。如果它被忽略,服务器启动时命令行里的 <literal>-D bind.address</"
-"literal> 属性将被使用。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2180
-#, no-c-format
-msgid "VERIFY_SUSPECT"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2181
-#, 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_Introduction.xml:2185
-#, no-c-format
-msgid ""
-"<![CDATA[                        \n"
-"<VERIFY_SUSPECT timeout=\"1500\"\n"
-"        down_thread=\"false\" up_thread=\"false\"/>]]>"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2187
-#, fuzzy, no-c-format
-msgid "The available attributes in the FD_SOCK element are listed below."
-msgstr "下列是 <literal>FD</literal> 元素的可用属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2192
-#, 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_Introduction.xml:2203
-#, no-c-format
-msgid "FD versus FD_SOCK"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2204
-#, 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_Introduction.xml:2208
-#, no-c-format
-msgid "<emphasis>FD</emphasis>"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2213
-#, no-c-format
-msgid "An overloaded machine might be slow in sending are-you-alive responses."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2218
-#, no-c-format
-msgid "A member will be suspected when suspended in a debugger/profiler."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2223
-#, no-c-format
-msgid ""
-"Low timeouts lead to higher probability of false suspicions and higher "
-"network traffic."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2228
-#, no-c-format
-msgid "High timeouts will not detect and remove crashed members for some time."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2235
-#, no-c-format
-msgid "<emphasis>FD_SOCK</emphasis>:"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2241
-#, no-c-format
-msgid ""
-"Suspended in a debugger is no problem because the TCP connection is still "
-"open."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2246
-#, no-c-format
-msgid "High load no problem either for the same reason."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2251
-#, no-c-format
-msgid "Members will only be suspected when TCP connection breaks"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2260
-#, no-c-format
-msgid "So hung members will not be detected."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2265
-#, 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_Introduction.xml:2272
-#, 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_Introduction.xml:2277
-#, 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_Introduction.xml:2282
-#, 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_Introduction.xml:2287
-#, 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_Introduction.xml:2289
-#, no-c-format
-#, fuzzy
-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_Introduction.xml:2292
-#, 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_Introduction.xml:2301
-#, no-c-format
-msgid "Reliable Delivery Protocols"
-msgstr "可靠传输协议(Reliable Delivery Protocols)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2302
-#, fuzzy, 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 ""
-"JGroups 栈里的可靠传输协议(reliable delivery protocols)确保数据包按正确的顺"
-"序(FIFO)正确地递送到目的节点。可靠的信息递送的基础是肯定和否定的递送确认"
-"(delivery acknowledgments)(ACK 和 NAK)。在 ACK 模式下,发送者重新发送信息"
-"直到收到接收者的确认。在 NAK 模式下,当接收者发现一个间断时,它会请求重新传"
-"送。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2309
-#, no-c-format
-msgid "UNICAST"
-msgstr "UNICAST"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2310
-#, fuzzy, 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 ""
-"UNICAST 协议用于单播信息。它使用 ACK。它被配置成 JGroups <literal>Config</"
-"literal> 元素下的一个子元素。这里有一个配置 <literal>UNICAST</literal> 协议的"
-"例子。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:2313
-#, fuzzy, no-c-format
-msgid ""
-"&lt;UNICAST timeout=\"100,200,400,800\"\n"
-"down_thread=\"false\" up_thread=\"false\"/&gt;"
-msgstr "&lt;UNICAST timeout=\"100,200,400,800\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2315
-#, no-c-format
-msgid ""
-"There is only one configurable attribute in the <literal>UNICAST</literal> "
-"element."
-msgstr "<literal>UNICAST</literal> 元素里只有一个可配置属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2318
-#, 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 ""
-"<emphasis role=\"bold\">timeout</emphasis> 指定重新传送的超时时间(毫秒数)。"
-"例如,如果这个超时时间是 \"100,200,400,800\",如果发送者在 100 毫秒后还没有接"
-"到 ACK,它会重新发送信息,第二此重发会在 200 毫秒后,以此类推。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2328
-#, no-c-format
-msgid "NAKACK"
-msgstr "NAKACK"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2329
-#, 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 ""
-"NAKACK 协议用于多点传送信息。它使用 NAK。在这个协议下,每个信息用一个序列号标"
-"识。接收者根据这个序列号来按顺序递送信息。当检测到序列号存在一个间断时,接收"
-"者会要求发送者重新传送丢失的信息。NAKACK 协议被配置为 JGroups "
-"<literal>Config</literal> 元素下的 <literal>pbcast.NAKACK</literal> 子元素。"
-"这里有一个配置示例。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:2336
-#, fuzzy, 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 ""
-"&lt;pbcast.NAKACK\n"
-"    max_xmit_size=\"8192\"\n"
-"    use_mcast_xmit=\"true\" \n"
-"    retransmit_timeout=\"600,1200,2400,4800\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2339
-#, no-c-format
-msgid ""
-"The configurable attributes in the <literal>pbcast.NAKACK</literal> element "
-"are as follows."
-msgstr "下列是 <literal>pbcast.NAKACK</literal> 元素的可配置属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2342
-#, 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 ""
-"<emphasis role=\"bold\">retransmit_timeout</emphasis> 指定重发的超时时间(毫"
-"秒数)。它和  UNICAST 协议里的 <literal>timeout</literal> 属性是一样的。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2347
-#, 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 ""
-"<emphasis role=\"bold\">use_mcast_xmit</emphasis> 决定发送者是否应该重发给整"
-"个群集而不只是请求的节点。这在发送者取消数据包时很有用 - 我们不需要对每个节点"
-"都重发。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2353
-#, 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 ""
-"<emphasis role=\"bold\">max_xmit_size</emphasis> 指定当多个数据包丢失时,捆绑"
-"在一起的重发的最大规模。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2357
-#, 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 ""
-"<emphasis role=\"bold\">discard_delivered_msgs</emphasis> 指定是否丢弃接收节"
-"点上的递送信息。在缺省情况下,我们保存所有的递送的信息。然而,如果我们只需要"
-"发送者重发信息,我们就可以启用这个选项来丢弃递送的信息。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2364
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"bold\">gc_lag specifies</emphasis> the number of messages "
-"garbage collection lags behind."
-msgstr ""
-"<emphasis role=\"bold\">NumAcceptThreads</emphasis>:用来接受客户联接的线程的"
-"数量。它的缺省值是 1。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2375
-#, no-c-format
-msgid "Other Configuration Options"
-msgstr "其他配置选项"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2376
-#, no-c-format
-msgid ""
-"In addition to the protocol stacks, you can also configure JGroups network "
-"services in the <literal>Config</literal> element."
-msgstr ""
-"除了协议栈以外,你也可以在 <literal>Config</literal> 元素里配置 JGroups 网络"
-"服务。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2380
-#, no-c-format
-msgid "Group Membership"
-msgstr "组成员资格(Group Membership)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2381
-#, 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 ""
-"JGroups 栈里的组成员资格(group membership)服务维护一个活动节点的列表。它处"
-"理加入和离开群集系统的请求。它也处理故障检测协议(failure detection "
-"protocols)发送的 SUSPECT 信息。当组成员资格有变动时,它通知群集系统里的所有"
-"节点,负载平衡系统(load balancer)和客户端拦截器(client side "
-"interceptors)。组成员资格(group membership)服务可以在 JGroups "
-"<literal>Config</literal> 元素下的 <literal>pbcast.GMS</literal> 子元素里配"
-"置。这里是一个配置示例。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:2387
-#, fuzzy, 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 ""
-"&lt;pbcast.GMS print_local_addr=\"true\"\n"
-"    join_timeout=\"3000\"\n"
-"    down_thread=\"false\" \n"
-"    join_retry_timeout=\"2000\"\n"
-"    shun=\"true\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2391
-#, no-c-format
-msgid ""
-"The configurable attributes in the <literal>pbcast.GMS</literal> element are "
-"as follows."
-msgstr "下列是 <literal>pbcast.GMS</literal> 元素里的可配置属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2394
-#, 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 ""
-"<emphasis role=\"bold\">join_timeout</emphasis> 指定了等待新节点 JOIN 请求成"
-"功的最长时间(毫秒数)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2398
-#, 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 ""
-"<emphasis role=\"bold\">join_retry_timeout</emphasis> 指定 JOIN 失败后重新递"
-"交前所等待的时间(毫秒数)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2402
-#, 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 ""
-"<emphasis role=\"bold\">print_local_addr</emphasis> 指定是否在启动时输出节点"
-"自己的地址。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2406
-#, 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 ""
-"<emphasis role=\"bold\">shun</emphasis> 指定如果收到指明自己并非成员节点的群"
-"集视图,节点是否剔除(shun)自己。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2410
-#, no-c-format
-msgid ""
-"<emphasis role=\"bold\">disable_initial_coord</emphasis> specifies whether "
-"to prevent this node as the cluster coordinator."
-msgstr ""
-"<emphasis role=\"bold\">disable_initial_coord</emphasis> 指定是否阻止这个节点"
-"成为群集控制点(cluster coordinator)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2414
-#, 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_Introduction.xml:2423
-#, no-c-format
-msgid "Flow Control"
-msgstr "流量控制(Flow Control)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2424
-#, 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 ""
-"流量控制(flow control)服务试图在节点间控制发送和接收数据传输率。如果一个节"
-"点发送的过快,它可能会使接收节点难以负荷,导致数据包的丢失而且不得不重新发"
-"送。在 JGroups 里,流量控制通过基于信用值(credit-based)的系统来实现。发送和"
-"接收节点具有相同的初始信用值(credits)(字节数)。发送者减去所发送信息的字节"
-"数,而接收者积累它接收到的信息的字节数。当发送者的信用值减少至某一极限时,接"
-"收者将把一些信用值发送给发送者。如果发送者的信用值被用光了,发送者将暂停,直"
-"到它收到接收者的信用值为止。流量控制服务在 JGroups <literal>Config</literal> "
-"元素下的 <literal>FC</literal> 子元素里配置。下面是一个配置示例。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:2435
-#, fuzzy, no-c-format
-msgid ""
-"&lt;FC max_credits=\"1000000\"\n"
-"down_thread=\"false\" up_thread=\"false\" \n"
-"    min_threshold=\"0.10\"/&gt;"
-msgstr ""
-"&lt;FC max_credits=\"1000000\"\n"
-"    down_thread=\"false\" \n"
-"    min_threshold=\"0.10\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2438
-#: Clustering_Guide_Introduction.xml:2539
-#, no-c-format
-msgid ""
-"The configurable attributes in the <literal>FC</literal> element are as "
-"follows."
-msgstr "下列是 <literal>FC</literal> 元素的可配置属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2441
-#, 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 ""
-"<emphasis role=\"bold\">max_credits</emphasis> 指定最大的信用值(字节数)。这"
-"个值应该小于 JVM 的 heap size。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2445
-#, 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 ""
-"<emphasis role=\"bold\">min_credits</emphasis> 指定发送者的极限信用值,如果低"
-"于这个值,接收者就应该发送更多的信用值给发送者。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2449
-#, 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 ""
-"<emphasis role=\"bold\">min_threshold</emphasis> 指定极限值的百分比。它可以覆"
-"盖 <literal>min_credits</literal> 属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2455
-#, 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_Introduction.xml:2464
-#, no-c-format
-msgid "Fragmentation"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2465
-#, 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_Introduction.xml:2468
-#, no-c-format
-msgid ""
-"<![CDATA[        \n"
-"                <FRAG2 frag_size=\"60000\" down_thread=\"false\" up_thread="
-"\"false\"/>]]>"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2470
-#, fuzzy, no-c-format
-msgid "The configurable attributes in the FRAG2 element are as follows."
-msgstr "下列是 <literal>FC</literal> 元素的可配置属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2475
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis role=\"bold\">frag_size</emphasis> specifies the max frag size in "
-"bytes. Messages larger than that are fragmented."
-msgstr ""
-"<emphasis role=\"bold\">max_credits</emphasis> 指定最大的信用值(字节数)。这"
-"个值应该小于 JVM 的 heap size。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2479
-#, 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_Introduction.xml:2490
-#, no-c-format
-msgid "State Transfer"
-msgstr "状态传输(State Transfer)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2491
-#, 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 ""
-"状态传输服务(state transfer service)把状态从一个现存的节点(就是群集控制"
-"点)传输到新加入的节点上。它可以在 JGroups <literal>Config</literal> 元素下"
-"的 <literal>pbcast.STATE_TRANSFER</literal> 子元素里配置。它没有任何可配置属"
-"性。下面是一个配置示例。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:2495
-#, fuzzy, no-c-format
-msgid "&lt;pbcast.STATE_TRANSFER down_thread=\"false\" up_thread=\"false\"/&gt;"
-msgstr ""
-"&lt;pbcast.STATE_TRANSFER \n"
-"    down_thread=\"false\"\n"
-"    up_thread=\"false\"/&gt;"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2502
-#, no-c-format
-msgid "Distributed Garbage Collection"
-msgstr "分布式垃圾收集(Distributed Garbage Collection)"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2503
-#, 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 ""
-"在 JGroups 群集系统里,在失败的情况下,所有的节点都得保存所有接收到的信息,用"
-"于可能发生的重新传送。然而,如果我们一直保存这些信息,就会用光所有的内存。所"
-"以,JGroups 的分布式垃圾收集(distributed garbage collection )服务定期地从每"
-"个节点的内存里清理所有节点都已经看过的信息。我们在 JGroups <literal>Config</"
-"literal> 元素下的 <literal>pbcast.STABLE</literal> 子元素里配置分布式垃圾收集"
-"(distributed garbage collection )服务。下面是一个配置示例。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:2507
-#, fuzzy, 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 ""
-"&lt;pbcast.STABLE stability_delay=\"1000\"\n"
-"    desired_avg_gossip=\"5000\" \n"
-"    down_thread=\"false\"\n"
-"    max_bytes=\"250000\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2509
-#, no-c-format
-msgid ""
-"The configurable attributes in the <literal>pbcast.STABLE</literal> element "
-"are as follows."
-msgstr "下列是 <literal>pbcast.STABLE</literal> 元素里的可配置属性。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2512
-#, 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 ""
-"<emphasis role=\"bold\">desired_avg_gossip</emphasis> 指定垃圾收集(garbage "
-"collection)服务运行的时间间隔(毫秒数)。它如果为 0,这个服务将不会运行。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2517
-#, 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 ""
-"<emphasis role=\"bold\">max_bytes</emphasis> 指定了在群集系统触发垃圾收集"
-"(garbage collection)服务之前,能接收的最多字节数。它如果为 0,这个服务将不"
-"会运行。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2522
-#, 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_Introduction.xml:2526
-#, no-c-format
-msgid ""
-"Set the <literal>max_bytes</literal> attribute when you have a high traffic "
-"cluster."
-msgstr "当你有一个大流量的群集系统时,设置 <literal>max_bytes</literal> 属性。"
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2531
-#, no-c-format
-msgid "Merging"
-msgstr "Merging"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2532
-#, 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 ""
-"当有网络错误发生时,群集系统可能分为己个不同的子分区(partitions)。JGroups "
-"有一个 MERGE 服务,它允许分区里的控制点(coordinators)相互通信且再次组成单一"
-"群集系统。流量控制服务可以在 JGroups <literal>Config</literal> 元素下的 "
-"<literal>MERGE2</literal> 子元素里配置。下面是一个配置示例。"
-
-#. Tag: programlisting
-#: Clustering_Guide_Introduction.xml:2536
-#, fuzzy, no-c-format
-msgid ""
-"&lt;MERGE2 max_interval=\"10000\"\n"
-"    min_interval=\"2000\"\n"
-"    down_thread=\"false\" up_thread=\"false\"/&gt;"
-msgstr ""
-"&lt;MERGE2 max_interval=\"10000\"\n"
-"    min_interval=\"2000\"/&gt;"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2542
-#, no-c-format
-msgid ""
-"<emphasis role=\"bold\">max_interval</emphasis> specifies the maximum number "
-"of milliseconds to send out a MERGE message."
-msgstr ""
-"<emphasis role=\"bold\">max_interval</emphasis> 指定发送 MERGE 信息的最大时间"
-"间隔(毫秒数)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2546
-#, no-c-format
-msgid ""
-"<emphasis role=\"bold\">min_interval</emphasis> specifies the minimum number "
-"of milliseconds to send out a MERGE message."
-msgstr ""
-"<emphasis role=\"bold\">min_interval</emphasis> 指定发送 MERGE 信息的最小时间"
-"间隔(毫秒数)。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2550
-#, 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 ""
-"JGroups 在 <literal>min_interval</literal> 之间 <literal>max_interval</"
-"literal> 选取一个随机值来发送 MERGE 信息。"
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2553
-#, 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_Introduction.xml:2559
-#, no-c-format
-msgid "Binding JGroups Channels to a particular interface"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2560
-#, 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_Introduction.xml:2563
-#, 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_Introduction.xml:2566
-#, no-c-format
-msgid ""
-"Beginning with AS 4.2.0, for security reasons the JBoss Application Server "
-"binds 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_Introduction.xml:2569
-#, no-c-format
-msgid ""
-"So, what are <emphasis>best practices</emphasis> for managing how JGroups "
-"binds to interfaces?"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2574
-#, no-c-format
-msgid "Binding JGroups to the same interface as other services. Simple, just use -b:"
-msgstr ""
-
-#. Tag: screen
-#: Clustering_Guide_Introduction.xml:2576
-#, no-c-format
-msgid "./run.sh -b 192.168.1.100 -c all"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2580
-#, 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_Introduction.xml:2588
-#, 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_Introduction.xml:2596
-#, 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_Introduction.xml:2604
-#, no-c-format
-msgid "Using different interfaces for different channels:"
-msgstr ""
-
-#. Tag: screen
-#: Clustering_Guide_Introduction.xml:2606
-#, no-c-format
-msgid "./run.sh -b 10.0.0.100 -Djgroups.ignore.bind_addr=true -c all"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2611
-#, 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_Introduction.xml:2616
-#, no-c-format
-msgid "Isolating JGroups Channels"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2617
-#, no-c-format
-#, fuzzy
-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 "HAPartition."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2620
-#, 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_Introduction.xml:2623
-#, 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_Introduction.xml:2626
-#, 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_Introduction.xml:2629
-#, no-c-format
-#, fuzzy
-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 "HAPartition HAPartition."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2632
-#, 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_Introduction.xml:2635
-#, no-c-format
-#, fuzzy
-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 "HAPartition HAPartition HAPartition."
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2641
-#, no-c-format
-msgid "Changing the Group Name"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2642
-#, no-c-format
-#, fuzzy
-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 "HAPartition."
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2645
-#, no-c-format
-#, fuzzy
-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 "HAPartition<screen></screen>"
-
-#. Tag: screen
-#: Clustering_Guide_Introduction.xml:2649
-#, no-c-format
-msgid ""
-"<![CDATA[<attribute name=\"ClusterName\">Tomcat-${jboss.partition.name:"
-"Cluster}</attribute>]]>"
-msgstr ""
-
-#. Tag: title
-#: Clustering_Guide_Introduction.xml:2655
-#, no-c-format
-msgid "Changing the multicast address and port"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2656
-#, 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_Introduction.xml:2662
-#, no-c-format
-msgid ""
-"<![CDATA[<Config>\n"
-"<UDP mcast_addr=\"${jboss.partition.udpGroup:228.1.2.3}\"\n"
-" ....]]>"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2663
-#, 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_Introduction.xml:2666
-#, 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_Introduction.xml:2668
-#, no-c-format
-msgid "Why isn't it sufficient to change the group name?"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2669
-#, 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_Introduction.xml:2673
-#, no-c-format
-msgid "Why do I need to change the multicast port if I change the address?"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2674
-#, 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_Introduction.xml:2680
-#, no-c-format
-msgid "JGroups Troubleshooting"
-msgstr ""
-
-#. Tag: emphasis
-#: Clustering_Guide_Introduction.xml:2681
-#, no-c-format
-msgid "Nodes do not form a cluster"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2683
-#, 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_Introduction.xml:2685
-#, 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_Introduction.xml:2688
-#, no-c-format
-msgid "Then in another window start <literal>McastSenderTest</literal>:"
-msgstr ""
-
-#. Tag: screen
-#: Clustering_Guide_Introduction.xml:2690
-#, 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_Introduction.xml:2693
-#, 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_Introduction.xml:2696
-#, 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_Introduction.xml:2708
-#, no-c-format
-msgid "Causes of missing heartbeats in FD"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2709
-#, 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_Introduction.xml:2715
-#, 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_Introduction.xml:2720
-#, no-c-format
-msgid "B or C are garbage collecting, same as above."
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2725
-#, no-c-format
-msgid "A combination of the 2 cases above"
-msgstr ""
-
-#. Tag: para
-#: Clustering_Guide_Introduction.xml:2730
-#, 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_Introduction.xml:2735
-#, 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 ""
-

Deleted: projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Clustering_Intro.po
===================================================================
--- projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Clustering_Intro.po	2009-02-16 23:38:45 UTC (rev 84281)
+++ projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Clustering_Intro.po	2009-02-17 00:25:40 UTC (rev 84282)
@@ -1,791 +0,0 @@
-# translation of Clustering_Intro.po to
-# Language /tmp/mike/JBEAP420/JBAS translations for JBEAP package.
-# Copyright (C) 2007, 2009 Free Software Foundation, Inc.
-#
-# Automatically generated, 2007.
-# Xi HUANG <xhuang at redhat.com>, 2009.
-msgid ""
-msgstr ""
-"Project-Id-Version: Clustering_Intro\n"
-"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-01-20 02:37+0000\n"
-"PO-Revision-Date: 2009-02-03 16:10+1000\n"
-"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
-"Language-Team:  <en at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#. Tag: title
-#: Clustering_Intro.xml:6
-#, no-c-format
-msgid "Quick Tutorial to Setup a Clustered Web Application"
-msgstr "设立一个群集 Web 应用程序的快速教程"
-
-#. Tag: para
-#: Clustering_Intro.xml:7
-#, no-c-format
-msgid ""
-"Web server clustering is to use multiple JBoss AS server instances to serve "
-"the same web address (e.g., http://www.jboss.com/). It is one of the most "
-"common clustering architectures JBoss AS users deploy. In this tutorial, we "
-"discuss the basic architecture of a web cluster and give step-by-step "
-"instructions on how to setup the cluster. A very simple web cluster looks "
-"like <xref linkend=\"Quick_Tutorial_to_Setup_a_Clustered_Web_Application-"
-"A_very_simple_web_cluster\"/>."
-msgstr ""
-"Web 服务器群集将使用多个 JBoss AS 实例来服务于相同的 web 地址(如 http://www.jboss.com/)。这是 JBoss AS 部署的最常见的群集架构。在本教程里,我们讨论了 Web 群集的基本架构并给出了设立这种群集的逐步说明。<xref linkend=\"Quick_Tutorial_to_Setup_a_Clustered_Web_Application-"
-"A_very_simple_web_cluster\"/> 是一个很简单的 Web 群集。"
-
-#. Tag: title
-#: Clustering_Intro.xml:11
-#, no-c-format
-msgid "A very simple web cluster"
-msgstr "一个非常简单的 Web 群集"
-
-#. Tag: para
-#: Clustering_Intro.xml:18
-#, no-c-format
-msgid ""
-"A lightweight web server, known as the load balancer, receives all HTTP "
-"requests from that web address and dispatches them to JBoss AS nodes in the "
-"cluster. The JBoss AS node does the heavy lifting of processing the request "
-"and generating the response. All the JBoss AS nodes share the same database "
-"server for persistent data in the application. Notice that each node "
-"contains the entire JBoss AS stack, including the web server, servlet "
-"container, EJB container, persistence manager etc. Breaking the JBoss AS "
-"stack to different physical servers would substantially complicate the "
-"architecture but without much scalability benefit."
-msgstr "轻量级的 Web 服务器,也称为负载平衡系统,它从该 web 地址接收所有的 HTTP 请求并转发给群集里的 JBoss AS 节点。JBoss AS 节点处理请求并生成响应。所有的 JBoss AS 节点共享相同的数据库。请注意,每个节点都包含整个 JBoss AS 栈,如 web 服务器、Servlet 容器、EJB 容器、持久化管理者等等。把 JBoss AS 栈分布到不同的物理服务器上将遵循这种架构,但扩充性并没受益于太多。"
-
-#. Tag: title
-#: Clustering_Intro.xml:22
-#, no-c-format
-msgid "Setup the simple web cluster"
-msgstr "设立简单的 Web 群集"
-
-#. Tag: para
-#: Clustering_Intro.xml:23
-#, no-c-format
-msgid ""
-"In our simple cluster depicted in <xref linkend="
-"\"Quick_Tutorial_to_Setup_a_Clustered_Web_Application-"
-"A_very_simple_web_cluster\"/>, every JBoss AS node is independent of each "
-"other. The load balancer \"remembers\" the user sessions and always forwards "
-"requests from the same session to the same JBoss AS node (a.k.a sticky "
-"session). So, each JBoss AS node stores its own set of HTTP session data. "
-"There is no information sharing between JBoss AS nodes, besides the "
-"persistent data in the shared database."
-msgstr ""
-"在 <xref linkend="
-"\"Quick_Tutorial_to_Setup_a_Clustered_Web_Application-"
-"A_very_simple_web_cluster\"/> 描述的简单群集里,每个 JBoss AS 节点都相互独立。负载平衡系统“记住”了用户会话并总是把请求从相同会话转发给相同的 JBoss AS 实例(也称为 Sticky Session)。所以,每个 JBoss AS 节点都保存自己的一套 HTTP 会话数据。除了共享数据库里的持久性数据以外,JBoss AS 节点间没有共享的信息。"
-
-#. Tag: para
-#: Clustering_Intro.xml:26
-#, no-c-format
-msgid ""
-"Assuming that the load balancer and the shared database are not performance "
-"bottlenecks, this cluster can scale linearly with the number of JBoss AS "
-"nodes. Of course, the simplicity and scalability has their price. The most "
-"obvious shortcomings of the this simple architecture are the lack of support "
-"for failover and database cache. We will look at solutions for those "
-"problems in <xref linkend=\"Optional_improvements_to_the_simple_cluster-"
-"Database_cache\"/>."
-msgstr ""
-"假设负载平衡系统和共享数据库不是性能的瓶颈,该群集可以用 JBoss AS 节点线性地扩充。当然,简单性和可扩充性有其价值所在。这个简单构建的最明显的缺点是缺乏对失效切换和数据库缓存的支持。我们将在 <xref linkend=\"Optional_improvements_to_the_simple_cluster-"
-"Database_cache\"/> 里讨论相应的解决方案。"
-
-#. Tag: title
-#: Clustering_Intro.xml:30
-#, no-c-format
-msgid "Setup the load balancer"
-msgstr "设立负载平衡系统"
-
-#. Tag: para
-#: Clustering_Intro.xml:31
-#, no-c-format
-msgid ""
-"The easiest way to setup a load balancer is to use the Apache web server "
-"with the mod_jk module to interact with JBoss AS. After installing the "
-"Apache web server, you should download the mod_jk 1.2.x binary from <ulink "
-"url=\"http://www.apache.org/dist/jakarta/tomcat-connectors/jk/binaries/\"> "
-"http://www.apache.org/dist/jakarta/tomcat-connectors/jk/binaries/</ulink>. "
-"Rename the downloaded file to mod_jk.so and copy it under APACHE_HOME/"
-"modules/ directory."
-msgstr ""
-"设立负载平衡系统的最简单的方法是使用 Apache web 服务器,它用 mod_jk 模块和 JBoss AS 进行交互。在安装了 Apache 之后,你应该从 <ulink "
-"url=\"http://www.apache.org/dist/jakarta/tomcat-connectors/jk/binaries/\"> "
-"http://www.apache.org/dist/jakarta/tomcat-connectors/jk/binaries/</ulink> 下载 mod_jk 1.2.x。把它重命名为 mod_jk.so 并复制到 APACHE_HOME/"
-"modules/ 目录下。"
-
-#. Tag: title
-#: Clustering_Intro.xml:35
-#, no-c-format
-msgid "Use mod_jk 1.2.x"
-msgstr "使用 mod_jk 1.2.x"
-
-#. Tag: para
-#: Clustering_Intro.xml:36
-#, no-c-format
-msgid ""
-"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."
-msgstr "我们强烈建议你使用 mod_jk 1.2.x,因为 mod_jk 和 mod_jk2 都被取消且不再被支持,社区里也不会再进行相关开发了。"
-
-#. Tag: para
-#: Clustering_Intro.xml:41
-#, no-c-format
-msgid ""
-"Aside from loading balancing, using Apache mod_jk to front JBoss AS servers "
-"have other benefits. The most important one is that Apache serves static "
-"content (e.g., images) much faster than Tomcat (i.e., the embedded servlet "
-"server in JBoss AS). Apache also handles SSL and keep-alive connections much "
-"more efficiently than Tomcat. In addition, Apache provides modules for "
-"access control, URL rewriting, CGI/PHP execution. So, we recommend fronting "
-"JBoss AS with Apache mod_jk even if you have only one JBoss AS node."
-msgstr "除了负载平衡,JBoss AS 服务器使用 Apache mod_jk 还有其他好处。最重要的一点是 Apache 处理静态内容(如图像)比 Tomcat(JBoss AS 里内嵌的 servlet 服务器)快很多。Apache 处理 SSL 和 keep-alive 连接也比 Tomcat 更为高效。此外,Apache 为访问控制、URL 重写、 CGI/PHP 执行提供了对应的模块。所以,即使你只有一个 JBoss AS 节点,我们推荐在前面使用 Apache mod_jk。"
-
-#. Tag: para
-#: Clustering_Intro.xml:45
-#, no-c-format
-msgid ""
-"To tell the Apache server to use mod_jk, you need to add the following line "
-"to the APACHE_HOME/conf/httpd.conf file."
-msgstr "要使 Apache 服务器使用 mod_jk,你需要在 APACHE_HOME/conf/httpd.conf 文件里添加下面的一行。"
-
-#. Tag: title
-#: Clustering_Intro.xml:48
-#, no-c-format
-msgid "Add this to the httpd.conf file"
-msgstr "在 httpd.conf 文件里添加:"
-
-#. Tag: programlisting
-#: Clustering_Intro.xml:49
-#, no-c-format
-msgid ""
-"# Include mod_jk&#39;s specific configuration file\n"
-"Include conf/mod_jk.conf"
-msgstr ""
-"# Include mod_jk&#39;s specific configuration file\n"
-"Include conf/mod_jk.conf"
-
-#. Tag: para
-#: Clustering_Intro.xml:50
-#, no-c-format
-msgid ""
-"Next, you should configure the interaction between Apache server and mod_jk "
-"by creating the APACHE_HOME/conf/mod_jk.conf file as follows. The LoadModule "
-"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. The JkMount directive tells Apache which URLs it should "
-"forward to the mod_jk module (and, in turn, to the JBoss AS instances). In "
-"the above file, all requests with URL path /application/* 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., /*) to mod_jk."
-msgstr ""
-"然后,你应该通过创建 APACHE_HOME/conf/mod_jk.conf 文件配置 Apache 服务器和 mod_jk 之间的交互。LoadModule 指令必须引用前面章节里下载的 mod_jk 库。"
-"</literal><literant</liter 指令告诉 Apache 应该把 URLs 转发给哪个 mod_jk 模块"
-"(和 Servlet 容器)。在上面的文件里,所有基于 URL 路径 <literal>/application/"
-"*</literal> 的请求都被发送到  mod_jk 负载平衡系统(load-balancer)。这样的"
-"话,你能够使 Apache 直接处理静态内容 (或 PHP 内容)而只对 Java 应用程序使用"
-"负载平衡系统。如果你只把 mod_jk 当作负载平衡系统使用,你也可以把所有的 URLs "
-"(也就是 <literal>/*</literal>)转发给 mod_jk。"
-
-#. Tag: title
-#: Clustering_Intro.xml:53
-#, no-c-format
-msgid "The mod_jk.conf file"
-msgstr "mod_jk.conf 文件"
-
-#. Tag: programlisting
-#: Clustering_Intro.xml:54
-#, 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"
-"# JkRequestLogFormat\n"
-"JkRequestLogFormat \"%w %V %T\"\n"
-"               \n"
-"# Mount your applications\n"
-"JkMount /application/* loadbalancer\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 ""
-"# 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"
-"# JkRequestLogFormat\n"
-"JkRequestLogFormat \"%w %V %T\"\n"
-"               \n"
-"# Mount your applications\n"
-"JkMount /application/* loadbalancer\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;"
-
-#. Tag: para
-#: Clustering_Intro.xml:55
-#, no-c-format
-msgid ""
-"Then, you need to configure mod_jk itself to load balance the JBoss AS "
-"cluster. The workers file conf/workers.properties specifies the locations of "
-"JBoss AS server nodes and how calls should be load-balanced across them. For "
-"a two nodes setup, the file could look like the following."
-msgstr ""
-"然后,你需要配置 mod_jk 来平衡 JBoss AS 群集的负载。<literal>conf/workers.properties</"
-"literal> 文件指定不同的 Servlet 容器的存放位置和怎样对它们之间的调用进行"
-"负载平衡。对于两节点群集的设立,这个文件可能类似于:"
-
-#. Tag: title
-#: Clustering_Intro.xml:58
-#, no-c-format
-msgid "The workers.properties file"
-msgstr "workers.properties 文件"
-
-#. Tag: programlisting
-#: Clustering_Intro.xml:59
-#, 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 ""
-"# 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"
-
-#. Tag: para
-#: Clustering_Intro.xml:60
-#, no-c-format
-msgid ""
-"The above file configures mod_jk to perform weighted round-robin load "
-"balancing between two JBoss AS instances, node1 and node2, listening on port "
-"8009. In the works.properties file, each node is defined using the worker."
-"XXX naming convention where XXX represents an arbitrary name you choose for "
-"one of the target JBoss AS node. For each worker, you must give the host "
-"name (or IP address) and port number of the AJP13 connector (the port 8009 "
-"is default). The lbfactor 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, the more HTTP requests it "
-"will receive. This setting can be used to differentiate servers with "
-"different processing power. The cachesize attribute defines the size of the "
-"thread pools associated to the JBoss AS node (i.e. the number of concurrent "
-"requests it will forward to the node). Make sure this number does not "
-"outnumber the number of threads configured on the AJP13 connector of the "
-"node. The last part of the conf/workers.properties file defines the "
-"loadbalancer worker. The worker.loadbalancer.balanced_workers line must list "
-"all workers previously defined in the same file, and then load-balancing "
-"will happen over these workers."
-msgstr ""
-"上面的文件配置了 mod_jk 来执行侦听端口 8009 的两个 JBoss AS 实例(node1 和 node2)间的 weighted round-robin 负载平衡策略。在 works.properties 文件里,每个节点都用 worker."
-"XXX 命名定义,这里的 XXX 代表了你为其中一个目标 JBoss AS 选取的任意名字。对于每个 worker,你必须给出主机名(或 IP 地址)以及 AJP13 连接器的端口号码(缺省为 8009)。lbfactor 属性是这个特殊 worker 的负载平衡因子。它用来定义节点对于其他节点的优先级(或权重)。数字越大,表示它将接收越多的 HTTP 请求。这个设置可以用来区分具有不同处理能力的服务器。cachesize 属性定义和 JBoss AS 节点关联的线程池的大小(也就是它将向该节点转发并发请求的数目)。请确保这个数字小于 AJP13 连接器所配置的线程数。conf/workers.properties 文件的最后一部分定义了 loadbalancer worker。worker.loadbalancer.balanced_workers 这一行必须列出同一文件里定义的所有 worker,这样负载平衡才会基于这些 worker 来运行。"
-
-#. Tag: title
-#: Clustering_Intro.xml:64
-#, no-c-format
-msgid "Sticky sessions"
-msgstr "Sticky session"
-
-#. Tag: para
-#: Clustering_Intro.xml:65
-#, no-c-format
-msgid ""
-"In mod_jk, you almost always configure the load balancer to use \"sticky "
-"sessions\". With sticky sessions, mod_jk forwards requests in the same web "
-"session to the same JBoss AS node. The sticky session ensures that the user "
-"is always served by the JBoss AS instance that has the correct session "
-"state. Sticky session is required for our simple cluster setup."
-msgstr ""
-"在 mod_jk 里,你总是会配置负载平衡系统使用 \"sticky "
-"sessions\"。这样,mod_jk 把相同 web 会话里的请求转发给相同的 JBoss AS 节点。sticky session 确保了总是具有正确会话状态的 JBoss AS 实例来为客户服务。我们这个简单的群集设立需要 Sticky session。"
-
-#. Tag: title
-#: Clustering_Intro.xml:72
-#, no-c-format
-msgid "Configure JBoss AS nodes"
-msgstr "配置 JBoss AS 节点"
-
-#. Tag: para
-#: Clustering_Intro.xml:73
-#, no-c-format
-msgid ""
-"The JBoss AS nodes in the cluster are almost identical to each other. They "
-"must run the same version of JBoss AS, the same applications, and have the "
-"same configuration except for few clustering related configuration options. "
-"In this section, we cover two JBoss AS configuration options required for "
-"the web cluster. One of them is universal for all nodes and the other is "
-"unique for each node."
-msgstr "群集里的 JBoss AS 节点几乎是相同的。它们必须运行相同的 JBoss AS 版本、相同的应用程序以及具有除了少数群集相关的配置选项外的相同配置。在本节里,我们涵盖这个 Web 群集所需的两个 JBoss AS 配置选项。其中一个是对于所有节点通用的,而两外一个是每个节点所专有的。"
-
-#. Tag: title
-#: Clustering_Intro.xml:77
-#, no-c-format
-msgid "The clustering profile for JBoss AS"
-msgstr "JBoss AS 的群集配置"
-
-#. Tag: para
-#: Clustering_Intro.xml:78
-#, no-c-format
-msgid ""
-"For this simple clustering architecture, you do not even need the "
-"\"clustering\" profile of JBoss AS -- you can just use the default JBoss AS "
-"profile since there is no communication (i.e., clustering) between JBoss AS "
-"nodes."
-msgstr "对于这个简单的群集架构,你甚至不需要“群集”配置 - 既然 JBoss AS 节点间没有通信,你可以使用缺省的 JBoss AS 配置。"
-
-#. Tag: para
-#: Clustering_Intro.xml:82
-#, no-c-format
-msgid ""
-"First, we must configure all JBoss AS nodes to add an \"identifier\" of "
-"itself to all HTTP session IDs it serves. This way, the load balancer would "
-"know which JBoss AS node to forward each request just by checking at the "
-"session ID of the request. To do that, edit the JBOSS_HOME/server/all/deploy/"
-"jboss-web.deploy/META-INF/jboss-service.xml file (replace all with your own "
-"server configuration name). Locate the &lt;attribute&gt; element with a name "
-"of UseJK, and set its value to true as follows."
-msgstr ""
-"首先,我们必须配置所有的 JBoss AS 节点,为其服务的所有 HTTP 会话 ID 添加一个“标识符”。由此,负载平衡系统将根据请求的会话 ID 知道把每个请求转发给哪个 JBoss AS 节点。为了实现这一点,请编辑 JBOSS_HOME/server/all/deploy/"
-"jboss-web.deploy/META-INF/jboss-service.xml 文件(用自己的服务器配置名代替 all),找到名为 UseJK 的 &lt;attribute&gt; 元素,并设置为 true。"
-
-#. Tag: title
-#: Clustering_Intro.xml:85
-#, no-c-format
-msgid ""
-"Configure jboss-service.xml to support JBoss AS node identity in HTTP "
-"session IDs"
-msgstr "配置 jboss-service.xml,使其支持 HTTP 会话 ID 里的 JBoss AS 节点标识符。"
-
-#. Tag: programlisting
-#: Clustering_Intro.xml:86
-#, no-c-format
-msgid "&lt;attribute name=\"UseJK\"&gt;true&lt;/attribute&gt;"
-msgstr "&lt;attribute name=\"UseJK\"&gt;true&lt;/attribute&gt;"
-
-#. Tag: para
-#: Clustering_Intro.xml:87
-#, no-c-format
-msgid ""
-"Second, you need to actually give an identity to each JBoss AS node. On each "
-"clustered JBoss node, you need to name the node according to the name "
-"specified in workers.properties. For instance, on JBoss instance node1, edit "
-"the JBOSS_HOME/server/all/deploy/jboss-web.deployer/server.xml file (replace "
-"all with your own server configuration name if necessary). Locate the &lt;"
-"Engine&gt; element and add an attribute jvmRoute as follows."
-msgstr ""
-"其次,我们需要为每个 JBoss AS 节点定义一个标识符。在每个群集节点上,我们得按 <literal>workers.properties</literal> 里指定的名字"
-"来命名节点名。例如,在 JBoss 实例节点1上,编辑 <literal>JBOSS_HOME/server/"
-"all/deploy/jbossweb-tomcat50.sar/server.xml</literal> 文件(有必要的话用你自"
-"己的服务器名代替<literal>/all</literal>)。定位 <literal>&lt;Engine&gt;</"
-"literal> 元素并加入一个 <literal>jvmRoute</literal> 属性:"
-
-#. Tag: title
-#: Clustering_Intro.xml:90
-#, no-c-format
-msgid "Add node information to the server.xml file"
-msgstr "在 server.xml 文件里添加节点信息"
-
-#. Tag: programlisting
-#: Clustering_Intro.xml:91
-#, no-c-format
-msgid ""
-"&lt;Engine name=\"jboss.web\" \n"
-"        defaultHost=\"localhost\" jvmRoute=\"node1\"&gt;\n"
-"... ...\n"
-"&lt;/Engine&gt;"
-msgstr ""
-"&lt;Engine name=\"jboss.web\" \n"
-"        defaultHost=\"localhost\" jvmRoute=\"node1\"&gt;\n"
-"... ...\n"
-"&lt;/Engine&gt;"
-
-#. Tag: para
-#: Clustering_Intro.xml:92
-#, no-c-format
-msgid ""
-"Each JBoss AS instance appends its own jvmRoute value to its HTTP session "
-"IDs so that mod_jk can route incoming requests. That&#39;s all you need on "
-"the JBoss AS node."
-msgstr "每个 JBoss AS 实例都把自己的 jvmRoute 值附加在 HTTP 会话 ID 里,这样 mod_jk 就能够路由转入的请求。对于 JBoss AS 节点,这就是你需要做的全部事情了。"
-
-#. Tag: title
-#: Clustering_Intro.xml:98
-#, no-c-format
-msgid "Shared Database"
-msgstr "共享的数据库"
-
-#. Tag: para
-#: Clustering_Intro.xml:99
-#, no-c-format
-msgid ""
-"By default, JBoss AS uses an embedded HSQL database for persistence data "
-"storage. For a web cluster to work properly, you must use a shared database "
-"for all server nodes. We recommend you setup a separate MySQL database "
-"server and then configure it as the DataSource for applications deployed on "
-"all nodes. Please see <xref linkend=\"alternative_DBs\"/> for more "
-"information on how to setup external databases as DataSources."
-msgstr "在缺省情况下,JBoss AS 使用一个内嵌的 HSQL 数据库来持久化数据。为了使 web 群集正常工作,你必须为所有服务器节点使用一个共享数据库。我们推荐你设立一个单独的 MySQL 数据库服务器并配置为部署在所有的节点上的应用程序的数据源。关于如何把外部书库设立为数据源的更多信息,请参考 <xref linkend=\"alternative_DBs\"/>。"
-
-#. Tag: title
-#: Clustering_Intro.xml:107
-#, no-c-format
-msgid "Optional improvements to the simple cluster"
-msgstr "对这个简单群集的可选的改进方法"
-
-#. Tag: para
-#: Clustering_Intro.xml:108
-#, no-c-format
-msgid ""
-"The simple web cluster we discussed above is simply a load balanced "
-"architecture for servers that only share information at the database level. "
-"This architecture is highly scalable but it does not provide crucial "
-"clustering features such as failover and distributed caching. With some "
-"simple optional steps, you can easily add those features to your cluster."
-msgstr "我们在上面讨论的简单的 web 群集只是一个负载平衡架构,它只共享数据库级别的信息。这个架构是高度可扩充的,但它没有提供关键的群集功能,如失效切换和分布式缓存。通过几个简单的可选步骤,你可以轻易地在群集里添加这些功能。"
-
-#. Tag: para
-#: Clustering_Intro.xml:111
-#, no-c-format
-msgid ""
-"Please note that you need to install a clustering enabled JBoss AS profile "
-"(i.e., the all or ejb3-cluster profiles) on all your server nodes for the "
-"optional setups."
-msgstr "请注意,你需要在所有服务器节点上安装启用了群集的 JBoss AS 配置(如 all 或 ejb3-cluster 配置)。"
-
-#. Tag: title
-#: Clustering_Intro.xml:115
-#, no-c-format
-msgid "Failover support"
-msgstr "对失效切换的支持"
-
-#. Tag: para
-#: Clustering_Intro.xml:116
-#, no-c-format
-msgid ""
-"The simple web cluster does not support failover if one of the server nodes "
-"crashes. Since each JBoss AS node stores its own HTTP session state data -- "
-"the users on the crashed server would lose their sessions when the load "
-"balancer forwards their requests to another node. The solution is for each "
-"node in the cluster to replicate its HTTP session data to other nodes in the "
-"cluster, so that when the node crashes, there is another node node to pick "
-"up all users it left off without any session loss."
-msgstr "如果其中一个服务器节点崩溃的话,这个简单的 Web 群集不支持失效切换。既然每个 JBoss AS 节点都保存自己的 HTTP 会话状态数据 - 当负载平衡系统把请求转发给其他节点时,崩溃的服务器上的用户将丢失这些会话。解决方案是每个节点把其 HTTP 会话数据复制到群集的其他节点上,这样如果该节点崩溃了,另外一个节点将接管它丢下的用户并不会丢失任何会话数据。"
-
-#. Tag: para
-#: Clustering_Intro.xml:119
-#, no-c-format
-msgid ""
-"When you start multiple clustering enabled JBoss AS instances on the same "
-"network, they automatically form a cluster. Therefore, all you need to do is "
-"to enable HTTP session replication in your web application. That is by "
-"adding a &lt;distributable/&gt; tag in your web.xml file."
-msgstr "当你在相同网络里启动多个启用了群集的 JBoss AS 实例时,它们将自动组成群集。因此,你所需的只是在你的 web 应用程序里启用 HTTP 会话复制。这是通过在 web.xml 文件里添加 &lt;distributable/&gt; 标签来实现的。"
-
-#. Tag: programlisting
-#: Clustering_Intro.xml:122
-#, no-c-format
-msgid ""
-"&lt;web-app  ...&gt;\n"
-"    &lt;distributable/&gt;\n"
-"    &lt;!-- ... --&gt;\n"
-"&lt;/web-app&gt;"
-msgstr ""
-"&lt;web-app  ...&gt;\n"
-"    &lt;distributable/&gt;\n"
-"    &lt;!-- ... --&gt;\n"
-"&lt;/web-app&gt;"
-
-#. Tag: para
-#: Clustering_Intro.xml:123
-#, no-c-format
-msgid ""
-"However, failover does not come free. Since extra object serialization (CPU "
-"intensive) and communication between server nodes (network intensive) are "
-"required, the cluster can no longer scale linearly with the number of nodes. "
-"With the default setup, the HTTP sessions on each node are replicated to all "
-"other nodes in the cluster. So the clustering workload increases "
-"geometrically with the number of server nodes. The cluster would not scale "
-"beyond 8 to 10 servers with the default setup. For a truly scalable failover "
-"solution, we need to setup buddy replication in the cluster so that each "
-"node only replicates its HTTP session data to another \"buddy\" failover "
-"node."
-msgstr "然而,失效切换是要付出代价的。既然需要额外的对象序列化(CPU 消耗)和服务器节点间的通信(网络消耗),群集不再可根据节点数目线性扩充。使用缺省的设置,每个节点上的 HTTP 会话都被复制到群集里所有其他节点上。群集不会使用缺省设置扩展至 8 到 10 个服务器。对于确实可扩充的失效切换解决方案来说,我们需要设立 buddy 复制来使每个节点只复制自己的 HTTP 会话数据大另外一个 \"buddy\" 切换节点上。"
-
-#. Tag: title
-#: Clustering_Intro.xml:129
-#, no-c-format
-msgid "Database cache"
-msgstr "数据库缓存"
-
-#. Tag: para
-#: Clustering_Intro.xml:130
-#, no-c-format
-msgid ""
-"Database cache is very useful for improving performance of ORM solutions "
-"like Hibernate and EJB 3.0. It stores frequently accessed data objects in "
-"the application server&#39;s memory and hence reduces the round trips to the "
-"database server. However, the challenge is to keep the cache on all server "
-"nodes in sync. For instance, data object O might be cached on both server "
-"nodes A and B. Now, node A updates object O and flushes the change back to "
-"the database. If A and B are not correlated, there is no way for B to know "
-"that object O already has an updated value in the database -- so users on "
-"server B would continue to access the expired value of O and get errors."
-msgstr "对于提高 ORM 解决方案如 Hibernate 和 EJB 3.0 的性能来说,数据库缓存是非常有用的。它把被频繁访问的数据对象保存在应用服务器的内存里,由此减少了对数据库服务器的访问。然而,如何在所有服务器节点间保持同步是一个挑战。例如,数据对象 O 可能缓存在节点 A 和 B 上。现在,节点 A 更新了对象 O 并把改动冲刷回数据库。如果 A 和 B 不相关联,B 就不可能知道对象 O 已经更新了数据库 - 所以节点 B 上的用户将继续使用过期的对象 O,从而出现错误。"
-
-#. Tag: para
-#: Clustering_Intro.xml:133
-#, no-c-format
-msgid ""
-"The solution here is to use a distributed database cache. The cache is "
-"\"shared\" by all server nodes. So, if one node adds / updates / removes, "
-"any object into / from the cache, all other nodes get the updated cache "
-"instantly as well. Here we give an example configuration for EJB 3.0 entity "
-"bean, which is supported by Hibernate 3.2+."
-msgstr ""
-"这里的解决方案是使用分布式数据库缓存。这个缓存由所有服务器节点所“共享”。所以,如果一个节点在缓存里添加/更新/删除了任何对象,所有其他的节点都将立即获得更新的缓存。我们在这里给出一个用于 EJB 3.0 entity "
-"bean 的配置示例,Hibernate 3.2 及更新版本支持它。"
-
-#. Tag: para
-#: Clustering_Intro.xml:136
-#, no-c-format
-msgid ""
-"The distributed database cache is supported out of the box in the ejb3-"
-"cluster profile of JBoss AS. As the case with HTTP session replication, all "
-"you need is to enable this feature in your application. First, you need to "
-"specify JBoss TreeCache as your database cache provider in your persistence."
-"xml file."
-msgstr ""
-"JBoss AS çš„ ejb3-"
-"cluster 配置缺省支持分布式缓存。因为带有 HTTP 会话复制,你所需要做的是在应用程序里启用该功能。首先,你需要在 persistence."
-"xml 文件里把 JBoss TreeCache 指定为数据库缓存提供者。"
-
-#. Tag: programlisting
-#: Clustering_Intro.xml:139
-#, 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;\n"
-"\n"
-"&lt;property name=\"treecache.mbean.object_name\"&gt;\n"
-"    jboss.cache:service=EJB3EntityTreeCache\n"
-"&lt;/property&gt;"
-msgstr ""
-"&lt;!-- Clustered cache with TreeCache --&gt;\n"
-"&lt;property name=\"cache.provider_class\"&gt;\n"
-"    org.jboss.ejb3.entity.TreeCacheProviderHook\n"
-"&lt;/property&gt;\n"
-"\n"
-"&lt;property name=\"treecache.mbean.object_name\"&gt;\n"
-"    jboss.cache:service=EJB3EntityTreeCache\n"
-"&lt;/property&gt;"
-
-#. Tag: para
-#: Clustering_Intro.xml:140
-#, no-c-format
-msgid "The on each entity bean class you want to cache, add the @Cache annotation."
-msgstr "对于每个你要缓存的 entity bean 类上,添加 @Cache 注解。"
-
-#. Tag: programlisting
-#: Clustering_Intro.xml:143
-#, no-c-format
-msgid ""
-"@Entity \n"
-"@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL) \n"
-"public class Product implements Serializable { \n"
-"  // ... ... \n"
-"}"
-msgstr ""
-"@Entity \n"
-"@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL) \n"
-"public class Product implements Serializable { \n"
-"  // ... ... \n"
-"}"
-
-#. Tag: para
-#: Clustering_Intro.xml:144
-#, no-c-format
-msgid ""
-"That&#39;s it. Now the Product data objects are cached in the shared cache "
-"across all JBoss AS server nodes in the cluster."
-msgstr "好了,现在 Product 对象已经缓存在群集里所有 JBoss AS 服务器节点的共享缓存里了。"
-
-#. Tag: title
-#: Clustering_Intro.xml:152
-#, no-c-format
-msgid "Basic optimization"
-msgstr "基本的优化"
-
-#. Tag: para
-#: Clustering_Intro.xml:153
-#, no-c-format
-msgid ""
-"In this section, we will give a few optimization tips to improve the "
-"performance of the cluster. Details of those optimization techniques will be "
-"covered later in this book."
-msgstr "在本节里,我们将介绍一些优化要点来提高群集的性能。本书后面的章节将介绍这些优化技术的详情。"
-
-#. Tag: para
-#: Clustering_Intro.xml:156
-#, no-c-format
-msgid ""
-"The first tip is to balance the connection pools in JBoss AS server nodes "
-"and the load balancer. The goal is to make the Apache connection poll 80% "
-"the size of the combined connection pools of the JBoss AS nodes. In "
-"addition, to optimize thread performance in the load balancer, we highly "
-"recommend you install the \"worker\" MPM for Apache on Unix / Linux servers "
-"and the \"winnt\" MPM for Windows servers."
-msgstr "第一点是调整 JBoss AS 服务器节点和负载平衡系统里的连接池。其目标是使 Apache 的连接占 JBoss AS 节点所有连接的 80%。此外,为了优化负载平衡系统里的线程性能,我们强烈推荐安装 Apache 的 \"worker\" MPM(用于 Unix / Linux 服务器)或 \"winnt\" MPM(用于 Windows 服务器)。"
-
-#. Tag: para
-#: Clustering_Intro.xml:159
-#, no-c-format
-msgid ""
-"Second, we need to understand that HTTP session replication is very "
-"expensive and should be minimized when possible. Choosing the right "
-"replication trigger and granularity is an important step. For instance, "
-"setting the replication trigger to SET might require you to write more code "
-"to push changed data back into the session. But it can drastically reduce "
-"the replication work load for a mostly read-only application. Setting the "
-"granularity level to ATTRIBUTE would be much more efficient than SESSION if "
-"the session size is large. However, setting the granularity level to FIELD "
-"may not have a great benefit due to the AOP overhead associated with dirty "
-"checking on fields."
-msgstr "其次,我们需要理解 HTTP 会话复制的代价是非常高的,它应该被尽量最小化。选择正确的复制触发器和颗粒度是一个重要的步骤。例如,把触发器设置为 SET 可能要求你编写更多的代码来把改动的数据放回会话里。但对于大部分时间只读的应用程序来说,它会极大地减少复制负荷。如果会话规模很大,把颗粒度级别设置为 ATTRIBUTE 将比 SESSION 更高效。然而,由于和字段脏检查关联的 AOP 开销过大,设置颗粒度为 FIELD 可能并没有太多好处。"
-
-#. Tag: para
-#: Clustering_Intro.xml:162
-#, no-c-format
-msgid ""
-"In addition, as we discussed before, the default \"replicate-to-all-nodes\" "
-"approach for HTTP session replication does scale for large clusters."
-msgstr "此外,如我们前面所讨论的,用于 HTTP 会话复制的缺省的 \"replicate-to-all-nodes\" 方法不能在大型群集里进行扩充。"
-
-#. Tag: para
-#: Clustering_Intro.xml:165
-#, no-c-format
-msgid ""
-"At the network level, it is important to make sure that you use an "
-"asynchronous communication mechanism to replicate HTTP sessions. Since the "
-"replicated HTTP sessions are only used when a rare failover happens, it is "
-"not essential for the failover node to always have the exact same state as "
-"the primary node at real time."
-msgstr "从网络级别来说,确保你使用异步通信机制来复制 HTTP 会话是很重要的。既然被复制的 HTTP 会话只在发生失效切换时才被使用,切换节点和源节点实时地保持相同状态并没有必要。"
-
-#. Tag: para
-#: Clustering_Intro.xml:168
-#, no-c-format
-msgid ""
-"It also worth noting that the choice of underlying network protocols for the "
-"inter-node communication also affects performance. In general, on a small "
-"network (i.e., 4 or less nodes) the node-to-node TCP/IP protocol would out "
-"perform the broadcast-based UDP protocol. It is the opposite when the "
-"cluster size grows larger."
-msgstr "为节点内通信选择底层的网络协议也影响性能,这也值得注意。通常来说,在一个小型网络里(4 个节点或更少),节点到节点的 TCP/IP 协议不会执行基于广播的 UDP 协议。而当群集扩大时则相反。"
-




More information about the jboss-cvs-commits mailing list