[jboss-cvs] JBossAS SVN: r78879 - projects/docs/enterprise/4.3/Cache/Cache_Tree_Cache_Guide/zh-CN.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Sep 25 21:42:33 EDT 2008


Author: xhuang at jboss.com
Date: 2008-09-25 21:42:33 -0400 (Thu, 25 Sep 2008)
New Revision: 78879

Modified:
   projects/docs/enterprise/4.3/Cache/Cache_Tree_Cache_Guide/zh-CN/Treecache_marshaller.po
Log:
update

Modified: projects/docs/enterprise/4.3/Cache/Cache_Tree_Cache_Guide/zh-CN/Treecache_marshaller.po
===================================================================
--- projects/docs/enterprise/4.3/Cache/Cache_Tree_Cache_Guide/zh-CN/Treecache_marshaller.po	2008-09-26 01:10:55 UTC (rev 78878)
+++ projects/docs/enterprise/4.3/Cache/Cache_Tree_Cache_Guide/zh-CN/Treecache_marshaller.po	2008-09-26 01:42:33 UTC (rev 78879)
@@ -9,8 +9,8 @@
 "Project-Id-Version: Treecache_marshaller\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-09-21 04:43+0000\n"
-"PO-Revision-Date: 2008-09-25 14:37+1000\n"
-"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"PO-Revision-Date: 2008-09-26 11:42+1000\n"
+"Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -39,7 +39,7 @@
 
 #. Tag: para
 #: Treecache_marshaller.xml:9
-#, fuzzy, no-c-format
+#, no-c-format
 msgid ""
 "In addition to providing the performance and efficiency enhancements over "
 "standard Java serialization, The <literal>TreeCacheMarshaller</literal> also "
@@ -54,8 +54,8 @@
 "a portion of the tree."
 msgstr ""
 "除了提供比标准的 Java 序列化更好的性能和效率外,"
-"<literal>TreeCacheMarshaller</literal> 也提供另外一个功能。为了对从对象进行解"
-"序列化"
+"<literal>TreeCacheMarshaller</literal> 也提供另外一个功能。为了对从远处缓存复制的对象进行解"
+"序列化,缓存实例需要访问定义该对象的类的类加载器。如果缓存自己的类加载器可以访问所需类的话,这很简单。但是当 JBoss Cache 用作支持使用不同类加载器的客户的服务时,你可以配置 <literal>TreeCacheMarshaller</literal> 对每个 Region 使用不同的类加载器,这可以通过允许应用程序代码注册应该被用来处理部分树复制的类加载器来实现。"
 
 #. Tag: title
 #: Treecache_marshaller.xml:13
@@ -205,7 +205,7 @@
 "portion of the cache rooted in a particular FQN. Once registered, the "
 "classloader will be used to unmarshal any replication traffic related to the "
 "node identified by the FQN or to any of its descendants."
-msgstr ""
+msgstr "在 <literal>UseRegionBasedMarshalling</literal> 被设置为 <literal>true</literal> 后的任何时候,应用程序代码都可以调用 <literal>registerClassLoader</literal> 来把类加载器和以特定 FQN 为根的缓存部分进行关联。一旦进行了注册,类加载器将被用来散集和 FQN 标识的节点及其子节点相关的复制。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:25
@@ -213,7 +213,7 @@
 msgid ""
 "At this time, <literal>registerClassLoader</literal> only supports String-"
 "based FQNs."
-msgstr ""
+msgstr "目前,<literal>registerClassLoader</literal> 只支持基于字符串的 FQN。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:28
@@ -226,6 +226,8 @@
 "be thrown if an attempt is made to register classloader <literal>Y</literal> "
 "for FQN <literal>/a/b</literal>."
 msgstr ""
+"请注意,为已经注册类加载器的 FQN 的子 FQN 注册类加载器是无效的。例如,假设 FQN "
+"<literal>/a</literal> 注册了类加载器 <literal>X</literal>,那么如果试图为 FQN <literal>/a/b</literal> 注册类加载器 <literal>Y</literal>,<literal>RegionNameConflictException</literal> 将被抛出。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:31
@@ -236,13 +238,13 @@
 "call this method when you are done using the cache with a particular "
 "classloader, or a reference to the classloader will be held, causing a "
 "memory leak!"
-msgstr ""
+msgstr "方法 <literal>unregisterClassLoader</literal> 被用来删除类加载器和特定缓存 Region 的关联。当使用完带有特定类加载器的缓存时,请记得调用这个方法,否则类加载器将一直保留,这可能导致内存溢出!"
 
 #. Tag: title
 #: Treecache_marshaller.xml:37
 #, no-c-format
 msgid "Region Activation/Inactivation"
-msgstr ""
+msgstr "Region 激活/取消激活"
 
 #. Tag: para
 #: Treecache_marshaller.xml:38
@@ -254,37 +256,37 @@
 "The result of this is that it is difficult or impossible to register all "
 "required classloaders before a cache is started. For example, consider the "
 "following scenario:"
-msgstr ""
+msgstr "上面讨论的 API 很有帮助,但在带有不同类加载器的应用程序共享缓存时,这些应用程序的生命周期通常和缓存不同。所以,在缓存启动前注册所有需要的类加载器是很困难甚至不可能的。例如下面的情况:"
 
 #. Tag: para
 #: Treecache_marshaller.xml:43
 #, no-c-format
 msgid "TreeCache on machine A starts."
-msgstr ""
+msgstr "主机 A 上的 TreeCache 启动。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:46
 #, no-c-format
 msgid "On A a classloader is registered under FQN /x."
-msgstr ""
+msgstr "在主机 A 上,FQN /x 下注册了一个类加载器。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:49
 #, no-c-format
 msgid "Machine B starts, so TreeCache on B starts."
-msgstr ""
+msgstr "主机 B 上的 TreeCache 启动。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:52
 #, no-c-format
 msgid "An object is put in the machine A cache under FQN /x/1."
-msgstr ""
+msgstr "在主机 A 的缓存 FQN /x/1 下放入一个对象。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:55
 #, no-c-format
 msgid "Replication to B fails, as the required classloader is not yet registered."
-msgstr ""
+msgstr "向 B 复制的操作失败,因为所需的类加载器还未注册。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:58
@@ -292,7 +294,7 @@
 msgid ""
 "On B a classloader is registered under FQN /x, but too late to prevent the "
 "replication error."
-msgstr ""
+msgstr "在主机 B 上的  FQN /x 下注册一个类加载器,但未能防止复制失败。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:61
@@ -301,7 +303,7 @@
 "Furthermore, if any objects had been added to server A before server B was "
 "started, the initial transfer of state from A to B would have failed as "
 "well, as B would not be able to unmarshal the transferred objects."
-msgstr ""
+msgstr "而且,如果任何对象在 B 启动前已经添加到 A 里,从 A 到 B 的初始状态转移也会失败,因为 B 不能够散集所转移的对象。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:64
@@ -312,7 +314,7 @@
 "tree. That portion of the tree is considered \"inactive\". After the needed "
 "classloader has been registered, the portion of the tree can be \"activated"
 "\". Activation causes the following events to occur:"
-msgstr ""
+msgstr "要解决这个问题,如果使用基于 Region 的散集,你可以配置缓存实例忽略部分树的复制事件。树的这部分被认为是“不活动的”。在所需的类加载器注册后,树的这部分就成为“活动的”。激活会产生下列事件:"
 
 #. Tag: para
 #: Treecache_marshaller.xml:69
@@ -320,7 +322,7 @@
 msgid ""
 "Any existing state for that portion of the tree is transferred from another "
 "node in the cluster and integrated into the local tree."
-msgstr ""
+msgstr "该部分的任何现有状态将从群集里的另外一个节点转移和集成到本地树里。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:72
@@ -328,7 +330,7 @@
 msgid ""
 "TreeCacheMarshaller begins normal handling of replication traffic related to "
 "the portion of the tree."
-msgstr ""
+msgstr "TreeCacheMarshaller 开始普通的和部分树相关的复制处理过程。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:75
@@ -337,7 +339,7 @@
 "In addition to the basic marshalling related API discussed above, TreeCache "
 "exposes the following API related to activating and inactivating portions of "
 "the cache:"
-msgstr ""
+msgstr "除了上面讨论的基本列集 API,TreeCache 还开放下列和激活/取消激活部分树相关的的 API:"
 
 #. Tag: programlisting
 #: Treecache_marshaller.xml:78
@@ -409,6 +411,71 @@
 "RegionNameConflictException,\n"
 "CacheException;"
 msgstr ""
+"/**\n"
+" * Sets whether the entire tree is inactive upon startup, only responding\n"
+" * to replication messages after {@link #activateRegion(String)} is\n"
+" * called to activate one or more parts of the tree.\n"
+" * &lt;p&gt;\n"
+" * This property is only relevant if {@link #getUseRegionBasedMarshalling()} "
+"is\n"
+" * <code>true</code>.\n"
+" *\n"
+" */\n"
+"public void setInactiveOnStartup(boolean inactiveOnStartup);\n"
+"\n"
+"/**\n"
+" * Gets whether the entire tree is inactive upon startup, only responding\n"
+" * to replication messages after {@link #activateRegion(String)} is\n"
+" * called to activate one or more parts of the tree.\n"
+" * &lt;p&gt;\n"
+" * This property is only relevant if {@link #getUseRegionBasedMarshalling()} "
+"is\n"
+" * <code>true</code>.\n"
+" */\n"
+"public boolean isInactiveOnStartup();\n"
+"\n"
+"/**\n"
+" * Causes the cache to transfer state for the subtree rooted at\n"
+" * <code>subtreeFqn</code> and to begin accepting replication messages\n"
+" * for that subtree.\n"
+" * \n"
+" * NOTE: This method will cause the creation of a node\n"
+" * in the local tree at <code>subtreeFqn</code> whether or not that\n"
+" * node exists anywhere else in the cluster.  If the node does not exist\n"
+" * elsewhere, the local node will be empty.  The creation of this node will\n"
+" * not be replicated.\n"
+" *\n"
+" * @param subtreeFqn Fqn string indicating the uppermost node in the\n"
+" * portion of the tree that should be activated.\n"
+" *\n"
+" * @throws RegionNotEmptyException if the node <code>subtreeFqn</code>\n"
+" * exists and has either data or children\n"
+" *\n"
+" * @throws IllegalStateException if useRegionBasedMarshalling is "
+"<code>false</code>\n"
+" */\n"
+"public void activateRegion(String subtreeFqn)\n"
+"    throws RegionNotEmptyException, RegionNameConflictException, "
+"CacheException;\n"
+"\n"
+"/**\n"
+" * Causes the cache to stop accepting replication events for the subtree\n"
+" * rooted at <code>subtreeFqn</code> and evict all nodes in that subtree.\n"
+" *\n"
+" * @param subtreeFqn Fqn string indicating the uppermost node in the\n"
+" * portion of the tree that should be activated.\n"
+" * @throws RegionNameConflictException if <code>subtreeFqn</code> indicates\n"
+" * a node that is part of another subtree that is being specially\n"
+" * managed (either by activate/inactiveRegion()\n"
+" * or by registerClassLoader())\n"
+" * @throws CacheException if there is a problem evicting nodes\n"
+" *\n"
+" * @throws IllegalStateException if useRegionBasedMarshalling is "
+"<code>false</code>\n"
+" */\n"
+"public void inactivateRegion(String subtreeFqn) throws "
+"RegionNameConflictException,\n"
+"CacheException;"
 
 #. Tag: para
 #: Treecache_marshaller.xml:79
@@ -419,13 +486,13 @@
 "where region activation is needed, this property would be set to true. This "
 "property should be set as part of normal cache configuration, typically in "
 "the cache's XML configuration file:"
-msgstr ""
+msgstr "属性 <literal>InactiveOnStartup</literal> 控制在缓存启动时整个缓存是否应该认为是不活动的。在需要 region 激活的大多数情况下,这个属性将被设置为 true。这个属性应该作为普通缓存配置的一部分,它通常在缓存的 XML 配置文件里进行设置:"
 
 #. Tag: programlisting
 #: Treecache_marshaller.xml:82
 #, no-c-format
 msgid "&lt;attribute name=\"InactiveOnStartup\"&gt;true&lt;/attribute&gt;"
-msgstr ""
+msgstr "&lt;attribute name=\"InactiveOnStartup\"&gt;true&lt;/attribute&gt;"
 
 #. Tag: para
 #: Treecache_marshaller.xml:83
@@ -435,6 +502,8 @@
 "will be performed on startup, even if property <literal>FetchInMemoryState</"
 "literal> is true."
 msgstr ""
+"当 <literal>InactiveOnStartup</literal> 被设置为 true 时,启动时将不会执行状态转移,即使属性 <literal>FetchInMemoryState</"
+"literal> 为 true。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:86
@@ -452,7 +521,7 @@
 "oldest member of the cluster also has the region inactivated, and thus "
 "cannot provide state. So, each node in the cluster is queried until one "
 "provides state."
-msgstr ""
+msgstr "当调用 <literal>activateRegion()</literal> 时,群集里的每个节点都将被查询是否具有该部分树的活动状态。如果有,该节点将返回当前状态,然后集成到树里。一旦从节点转移了状态,就不会再向其他节点请求该状态。这个过程和属性 <literal>FetchInMemoryState</literal> 为 true 时在启动时发生的初始状态转移不同。在初始状态转移过程中,只有群集里最老的成员才会被查询。而对于 region 激活来说,这个方法是不够的,因为最老的成员也可能有未激活的 region,因此不能提供状态。所以,群集里的每个节点都会被查询,直至某个节点提供状态为止。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:89
@@ -463,6 +532,9 @@
 "tree being activated. If there is any, a <literal>RegionNotEmptyException</"
 "literal> will be thrown."
 msgstr ""
+"在从其他节点请求状态之前,<literal>activateRegion()</"
+"literal> 将确认数据不存在于正在激活的部分树里。如果有,<literal>RegionNotEmptyException</"
+"literal> 将被抛出。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:92
@@ -477,13 +549,13 @@
 "local activity on an inactive region, but, as discussed above "
 "<literal>activateRegion()</literal> will throw an exception if it discovers "
 "data in a region that is being activated."
-msgstr ""
+msgstr "当树的 region 被标记为不活动,这只意味着忽略从其他节点复制到树的这一部分,理解这一点很重要。从技术上来讲,把对象置于本地树的不活动部分仍然是可能的(通过 <literal>put</literal> 调用),任何这样的本地活动都将被复制到其他节点。TreeCache 不会阻止不活动 region 上的这种本地活动,但是,如上面所讨论的,如果涉及活动的 region 里的数据,<literal>activateRegion()</literal> 将抛出异常。"
 
 #. Tag: title
 #: Treecache_marshaller.xml:96
 #, no-c-format
 msgid "Example usage of Region Activation/Inactivation"
-msgstr ""
+msgstr "使用 Region 激活/取消激活的例子"
 
 #. Tag: para
 #: Treecache_marshaller.xml:97
@@ -496,6 +568,8 @@
 "be a web application, which when started will register its classloader with "
 "the TreeCache and activate its own region of the cache."
 msgstr ""
+"作为一个使用 region 激活/取消激活的例子,让我们想象如下场景:把 <literal>-service.xml</literal> 部署在 JBoss "
+"<literal>/deploy</literal> 目录下,从而把 TreeCache 实例部署为一个共享 MBean 服务。这个缓存的用户可以是一个 web 应用程序,它在启动时将向 TreeCache 注册自己的类加载器并激活自己的 region。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:100
@@ -503,7 +577,7 @@
 msgid ""
 "First, the XML configuration file for the shared cache service would be "
 "configured as follows (only relevant portions are shown):"
-msgstr ""
+msgstr "首先,共享缓存服务的 XML 配置文件如下(只显示相关部分):"
 
 #. Tag: programlisting
 #: Treecache_marshaller.xml:103
@@ -537,6 +611,33 @@
 "  &lt;/mbean&gt;\n"
 "&lt;/server&gt;"
 msgstr ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;\n"
+"&lt;server&gt;\n"
+"  &lt;classpath codebase=\"./lib\" archives=\"jboss-cache.jar, jgroups.jar"
+"\" /&gt;\n"
+"\n"
+"  &lt;!--  "
+"====================================================================  --"
+"&gt;\n"
+"  &lt;!--  Defines TreeCache "
+"configuration                                       --&gt;\n"
+"  &lt;!--  "
+"====================================================================  --"
+"&gt;\n"
+"  &lt;mbean code=\"org.jboss.cache.TreeCache\" name=\"com.xyz.cache:"
+"service=SharedCache\"&gt;\n"
+"\n"
+"    .......\n"
+"\n"
+"    &lt;!-- Configure Marshalling --&gt;\n"
+"    &lt;attribute name=\"getUseRegionBasedMarshalling\"&gt;true&lt;/"
+"attribute&gt;\n"
+"    &lt;attribute name=\"InactiveOnStartup\"&gt;true&lt;/attribute&gt;\n"
+"\n"
+"    ........\n"
+"\n"
+"  &lt;/mbean&gt;\n"
+"&lt;/server&gt;"
 
 #. Tag: para
 #: Treecache_marshaller.xml:104
@@ -547,7 +648,7 @@
 "part of initialization and destruction of the app. So, using a "
 "<literal>ServletContextListener</literal> to manage these tasks seems "
 "logical. Following is an example listener:"
-msgstr ""
+msgstr "对于 web 应用程序来说,注册/取消注册类加载器和激活/取消激活缓存里应用程序的 region 都是应用程序初始化和结束时应该完成的事情。所以,使用 <literal>ServletContextListener</literal> 来管理这些任务是有道理的。下面是一个 listener 的例子:"
 
 #. Tag: programlisting
 #: Treecache_marshaller.xml:107
@@ -596,6 +697,48 @@
 "   }\n"
 "}"
 msgstr ""
+"package example;\n"
+"\n"
+"import javax.management.MalformedObjectNameException;\n"
+"import javax.management.ObjectName;\n"
+"import javax.servlet.ServletContextEvent;\n"
+"import javax.servlet.ServletContextListener;\n"
+"\n"
+"import org.jboss.cache.TreeCacheMBean;\n"
+"import org.jboss.mx.util.MBeanProxyExt;\n"
+"\n"
+"public class ActiveInactiveRegionExample implements ServletContextListener\n"
+"{\n"
+"   private TreeCacheMBean cache;\n"
+"\n"
+"   public void contextInitialized(ServletContextEvent arg0) {\n"
+"      try {\n"
+"         findCache();\n"
+"\n"
+"         cache.registerClassLoader(\"/example\", Thread.currentThread()."
+"getContextClassLoader());\n"
+"         cache.activeRegion(\"/example\");\n"
+"      }\n"
+"      catch (Exception e) {\n"
+"         // ... handle exception\n"
+"      }\n"
+"\n"
+"   }\n"
+"\n"
+"   public void contextDestroyed(ServletContextEvent arg0) {\n"
+"      cache.inactivateRegion(\"/example\");\n"
+"      cache.unregisterClassLoader(\"/example\");\n"
+"   }\n"
+"\n"
+"   private void findCache() throws MalformedObjectNameException {\n"
+"      // Find the shared cache service in JMX and create a proxy to it\n"
+"      ObjectName cacheServiceName_ = new ObjectName(\"com.xyz.cache:"
+"service=SharedCache\");\n"
+"      // Create Proxy-Object for this service\n"
+"      cache = (TreeCacheMBean) MBeanProxyExt.create(TreeCacheMBean.class, "
+"cacheServiceName_);\n"
+"   }\n"
+"}"
 
 #. Tag: para
 #: Treecache_marshaller.xml:108
@@ -609,6 +752,8 @@
 "region and unregisters its classloader (thus ensuring that the classloader "
 "isn't leaked via a reference to it held by TreeCacheMarshaller)."
 msgstr ""
+"这个 listener 利用 JBoss 的工具类 <literal>MBeanProxyExt</"
+"literal> 来在 JMX 里查找 TreeCache 并创建一个代理。(请参看下面的“在 JBoss 里运行和使用 TreeCache”章节)。然后它注册自己的类加载器并激活自己的 region。当应用程序被销毁时,它取消激活自己的 region 并取消注册自己的类加载器(因此确保类加载器不会由于 TreeCacheMarshaller 保留的引用而溢出)。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:111
@@ -617,13 +762,13 @@
 "Note the order of the method calls in the example class -- register a "
 "classloader before activating a region, and inactivate the region before "
 "unregistering the classloader."
-msgstr ""
+msgstr "请注意这个例子里的方法调用顺序 - 在激活 region 之前注册类加载器,并在取消注册之前先取消激活这个 region。"
 
 #. Tag: title
 #: Treecache_marshaller.xml:119
 #, no-c-format
 msgid "Region Activation/Inactivation with a CacheLoader"
-msgstr ""
+msgstr "带有类加载器的 Region 激活/取消激活"
 
 #. Tag: para
 #: Treecache_marshaller.xml:120
@@ -636,6 +781,9 @@
 "literal> interface. It additionally specifies the following methods needed "
 "to support the partial state transfer that occurs when a region is activated:"
 msgstr ""
+"activateRegion()/inactivateRegion() API 也可以和类加载器一起使用,但只能在缓存加载器实现实现了接口 <literal>org.jboss.cache.loader.ExtendedCacheLoader</"
+"literal> 才可以。这是普通的 <literal>CacheLoader</"
+"literal> 接口的子接口。此外它还指定下列支持发生在 region 激活时的部分状态转移所需的方法:"
 
 #. Tag: programlisting
 #: Treecache_marshaller.xml:123
@@ -681,6 +829,45 @@
 "    */\n"
 "   void setRegionManager(RegionManager manager);"
 msgstr ""
+"/**\n"
+"    * Fetch a portion of the state for this cache from secondary storage\n"
+"    * (disk, DB) and return it as a byte buffer.\n"
+"    * This is for activation of a portion of new cache from a remote cache.\n"
+"    * The new cache would then call {@link #storeState(byte[], Fqn)}.\n"
+"    *\n"
+"    * @param subtree Fqn naming the root (i.e. highest level parent) node "
+"of\n"
+"    *                the subtree for which state is requested.\n"
+"    *\n"
+"    * @see org.jboss.cache.TreeCache#activateRegion(String)\n"
+"    */\n"
+"   byte[] loadState(Fqn subtree) throws Exception;\n"
+"\n"
+"   /**\n"
+"    * Store the given portion of the cache tree's state in secondary "
+"storage.\n"
+"    * Overwrite whatever is currently in secondary storage.\n"
+"    *\n"
+"    * @param state   the state to store\n"
+"    * @param subtree Fqn naming the root (i.e. highest level parent) node "
+"of\n"
+"    *                the subtree included in <code>state</code>.\n"
+"    */\n"
+"   void storeState(byte[] state, Fqn subtree) throws Exception;\n"
+"\n"
+"   /**\n"
+"    * Sets the RegionManager this object should use to manage\n"
+"    * marshalling/unmarshalling of different regions using different\n"
+"    * classloaders.\n"
+"    * \n"
+"    * NOTE: This method is only intended to be used\n"
+"    * by the <code>TreeCache</code> instance this cache loader is\n"
+"    * associated with.\n"
+"    * \n"
+"    *\n"
+"    * @param manager the region manager to use, or <code>null</code>.\n"
+"    */\n"
+"   void setRegionManager(RegionManager manager);"
 
 #. Tag: para
 #: Treecache_marshaller.xml:124
@@ -692,12 +879,14 @@
 "FileCacheLoader and JDBCCacheLoader, respectively, implementing the extra "
 "methods in the extended interface."
 msgstr ""
+"JBossCache 目前带有两个 ExtendedCacheLoade 实现:<literal>FileExtendedCacheLoader</literal> 和 "
+"<literal>JDBCExtendedCacheLoader</literal>。这些类分别继承了 FileCacheLoader 和 JDBCCacheLoader,并在扩展接口里实现了额外的方法。"
 
 #. Tag: title
 #: Treecache_marshaller.xml:130
 #, no-c-format
 msgid "Performance over Java serialization"
-msgstr ""
+msgstr "Java 序列化的性能"
 
 #. Tag: para
 #: Treecache_marshaller.xml:131
@@ -708,7 +897,7 @@
 "method ids for known methods and magic numbers for known internal class "
 "types which drastically reduces the size of calls to remote caches, greatly "
 "improving throughput and reducing the overhead of Java serialization."
-msgstr ""
+msgstr "为了获得性能和效率的提升,<literal>TreeCacheMarshaller</literal> 使用了大量的技术,包括已知方法的方法 ID 和已知内部类类型的 magic 号码,这些都极大地降低了对远处缓存的调用规模,大大地提高了吞吐量并减少了 Java 序列化的开销。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:134
@@ -724,12 +913,14 @@
 "the <literal>-Dserialization.jboss=false</literal> environment variable into "
 "your JVM."
 msgstr ""
+"为了更快地运行,<literal>TreeCacheMarshaller</literal> 还使用了 <ulink url=\"http://labs.jboss.org/portal/index.html?ctrl:id=page.default."
+"info&amp;project=serialization\">JBoss Serialization</ulink>,这是一个用于用户自定义类的 Java 序列化的高效替代方案。在缺省情况下,JBoss Serialization 都被启用,它也可以被禁用,从而对用户自定义类的列集继续使用 Java 序列化。在 JVM 里传入 <literal>-Dserialization.jboss=false</literal> 环境变量就可以禁用 JBoss Serialization。"
 
 #. Tag: title
 #: Treecache_marshaller.xml:140
 #, no-c-format
 msgid "Backward compatibility"
-msgstr ""
+msgstr "向后兼容性"
 
 #. Tag: para
 #: Treecache_marshaller.xml:141
@@ -745,6 +936,8 @@
 "than JBoss Cache) still exists, even though with JBoss Cache 1.4.0, we've "
 "moved to a much more efficient and sophisticated marshalling mechanism."
 msgstr ""
+"JBoss Cache 里的列集现在有不同的版本了。缓存间的所有通信都包含一个 <literal>short</literal> 版本,它允许不同版本的 JBoss Cache 实例相互通信。到 JBoss Cache 1.4.0 为止,既然所有的版本都使用简单的 <literal>org.jgroups."
+"MethodCall</literal> 对象序列化,如果它们都使用相同的 JGroups 版本,那它们就可以相互通信。这个要求仍然存在(对 JGroups 消息层的要求更甚于 JBoss Cache),即使我们在 JBoss Cache 1.4.0 里已经采用一个更为高效和复杂的列集机制。"
 
 #. Tag: para
 #: Treecache_marshaller.xml:144
@@ -755,7 +948,7 @@
 "and future releases to marshall data in a format that is compatible with "
 "older versions, however, you would have to start JBoss Cache with the "
 "following configuration attribute:"
-msgstr ""
+msgstr "JBoss Cache 1.4.0 和以后的版本将能够从以前版本里散集数据。然而,为了以和老版本兼容的格式散集数据,你需要用下列的属性来启动 JBoss Cache:"
 
 #. Tag: programlisting
 #: Treecache_marshaller.xml:145
@@ -764,4 +957,6 @@
 "&lt;!-- takes values such as 1.2.3, 1.2.4 and 1.3.0 --&gt;\n"
 "&lt;attribute name=\"ReplicationVersion\"&gt;1.2.4&lt;/attribute&gt;"
 msgstr ""
+"&lt;!-- takes values such as 1.2.3, 1.2.4 and 1.3.0 --&gt;\n"
+"&lt;attribute name=\"ReplicationVersion\"&gt;1.2.4&lt;/attribute&gt;"
 




More information about the jboss-cvs-commits mailing list