[jboss-cvs] JBossAS SVN: r91327 - 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
Wed Jul 15 23:41:10 EDT 2009
Author: xhuang at jboss.com
Date: 2009-07-15 23:41:10 -0400 (Wed, 15 Jul 2009)
New Revision: 91327
Modified:
projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/J2EE_EJBs_On_JBOSS.po
projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/The_CMP_Engine.po
projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Web_Services.po
Log:
update
Modified: projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/J2EE_EJBs_On_JBOSS.po
===================================================================
--- projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/J2EE_EJBs_On_JBOSS.po 2009-07-16 03:39:41 UTC (rev 91326)
+++ projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/J2EE_EJBs_On_JBOSS.po 2009-07-16 03:41:10 UTC (rev 91327)
@@ -9,7 +9,7 @@
"Project-Id-Version: J2EE_EJBs_On_JBOSS\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-20 02:37+0000\n"
-"PO-Revision-Date: 2009-07-09 14:08+1000\n"
+"PO-Revision-Date: 2009-07-16 13:40+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -21,12 +21,12 @@
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:6, no-c-format
msgid "EJBs on JBoss"
-msgstr "JBoss 的 EJB"
+msgstr "JBoss 里的 EJB"
#. Tag: subtitle
#: J2EE_EJBs_On_JBOSS.xml:7, no-c-format
msgid "The EJB Container Configuration and Architecture"
-msgstr "EJB 容器配置和架构"
+msgstr "EJB 容器配置和架构 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:8
@@ -42,14 +42,17 @@
"look at various configuration capabilities throughout this chapter as we "
"explore the container architecture."
msgstr ""
-"JBoss EJB 容器架构使用模块化的插件。EJB 容器的所有关键部件都可以由自定义的插件和/或拦截器来替换。这种方法允许对 EJB 的行为进行调优以满足需要。大多数的 EJB 容器行为都可以通过 EJB "
-"JAR <literal>META-INF/jboss.xml</literal> 和服务器缺省的 <literal>standardjboss.xml</literal> 描述符进行配置。在本章探索容器架构的同时,我们也将讨论不同的配置选项。"
+"JBoss EJB 容器架构采用模块化的插件。EJB 容器的所有关键部件都可以用自定义的插"
+"件和/或拦截器来替换。这种方法允许对 EJB 容器的行为进行微调和优化以满足用户的"
+"需要。EJB 容器的大多数行为都可以通过 EJB JAR 里的 <literal>META-INF/jboss."
+"xml</literal> 描述符文件以及缺省的 <literal>standardjboss.xml</literal> 进行"
+"配置。我们将在本章探索容器架构时讨论不同的配置模式。"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:12
#, no-c-format
msgid "The EJB Client Side View"
-msgstr "EJB 的客户端视图"
+msgstr "EJB 的客户端视图 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:13
@@ -66,20 +69,25 @@
"The_composition_of_an_EJBHome_proxy_in_JBoss.\"/> shows the composition of "
"an EJB home proxy and its relation to the EJB deployment."
msgstr ""
-"我们将通过 home 和 remote 代理从 EJB 客户端视图开始 EJB 容器之旅。容器提供者负责为 EJB 实现生成 <literal>javax.ejb.EJBHome</literal> 和 <literal>javax.ejb.EJBObject</literal>。客户从不会直接引用 EJB Bean,它们都是引用实现了 home 接口的 <literal>EJBHome</literal>,以及实现了 remote 接口的 <literal>EJBObject</literal>。<xref linkend=\"The_EJB_Client_Side_View-"
-"The_composition_of_an_EJBHome_proxy_in_JBoss.\"/> 展示了 EJB home 代理的构成以及和 EJB 部署的关系。"
+"我们将通过 home 和 remote 代理查看 EJB 的客户端视图来开始我们的 EJB 之旅。容"
+"器提供者负责生成 EJB 实现的 <literal>javax.ejb.EJBHome</literal> 和 "
+"<literal>javax.ejb.EJBObject</literal>。客户从不直接引用 EJB bean 实例,而是"
+"引用实现了 home 接口的 <literal>EJBHome</literal>,以及实现了 remote 接口的 "
+"<literal>EJBObject</literal>。<xref linkend=\"The_EJB_Client_Side_View-"
+"The_composition_of_an_EJBHome_proxy_in_JBoss.\"/> 展示了 EJB home 代理以及它"
+"和 EJB 部署之间关系的结构。"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:17
#, no-c-format
msgid "The composition of an EJBHome proxy in JBoss."
-msgstr "JBoss 里的 EJBHome 的构成。"
+msgstr "JBoss 里的 EJBHome 代理的结构。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:24
#, no-c-format
msgid "The numbered items in the figure are:"
-msgstr "这个图例里的标号表示:"
+msgstr "图例里的编号为: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:29
@@ -89,8 +97,9 @@
"deploy an EJB JAR. An <literal>EJBModule</literal> (<literal>org.jboss.ejb."
"EJBModule</literal>) is created to encapsulate the deployment metadata."
msgstr ""
-"调用 EJBDeployer (<literal>org.jboss.ejb.EJBDeployer</literal>) 来部署 EJB JAR。<literal>EJBModule</literal> (<literal>org.jboss.ejb."
-"EJBModule</literal>) 被创建以封装部署元数据。"
+"部署 EJB JAR 时调用 EJBDeployer (<literal>org.jboss.ejb.EJBDeployer</"
+"literal>)。创建 <literal>EJBModule</literal> (<literal>org.jboss.ejb."
+"EJBModule</literal>) 来封装部署元数据。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:34
@@ -103,9 +112,11 @@
"literal> metadata. There can be multiple proxy factories associated with an "
"EJB and we will look at how this is defined shortly."
msgstr ""
-"<literal>EJBModule</literal> 生命周期的创建阶段创建了一个 <literal>EJBProxyFactory</literal> (<literal>org.jboss.ejb.EJBProxyFactory</"
-"literal>),它根据 <literal>EJBModule</literal><literal>invoker-proxy-bindings</"
-"literal> 元数据就管理 EJB home 和 remote 接口代理的创建。一个 EJB 会关联多个代理工厂,我们马上会看到这是如何定义的。"
+"<literal>EJBModule</literal> 的生命周期的 create 阶段创建了一个管理基于 "
+"<literal>EJBModule</literal><literal>invoker-proxy-bindings</literal> 元数据"
+"的 EJB home 和 remote 热模特接口代理的 <literal>EJBProxyFactory</literal> "
+"(<literal>org.jboss.ejb.EJBProxyFactory</literal>) 。有多个代理工厂和 EJB 相"
+"关联,很快我们将讨论怎样对它们进行定义。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:39
@@ -120,9 +131,13 @@
"<literal>ClientContainer</literal> (<literal>org.jboss.proxy."
"ClientContainer</literal>), and the client side interceptors."
msgstr ""
-"<literal>ProxyFactory</literal> 构成逻辑代理并把 home 绑定到 JNDI。逻辑代理由动态的 <literal>Proxy</literal> (<literal>java.lang.reflect.Proxy</literal>) 、代理开放的 EJB 的 home 接口、以 <literal>ClientContainer</literal> (<literal>org.jboss.proxy."
-"ClientContainer</literal>) 形式实现的 <literal>ProxyHandler</literal> (<literal>java.lang.reflect."
-"InvocationHandler</literal>) 以及客户端拦截器组成。"
+"<literal>ProxyFactory</literal> 构建了逻辑代理(logical proxy)并把 home 代理"
+"綁定到 JNDI 里。逻辑代理由动态的 <literal>Proxy</literal> (<literal>java."
+"lang.reflect.Proxy</literal>)、代理所开放的 EJB 的 home 接口、"
+"<literal>ClientContainer</literal> (<literal>org.jboss.proxy."
+"ClientContainer</literal>) 形式的 <literal>ProxyHandler</literal> "
+"(<literal>java.lang.reflect.InvocationHandler</literal>) 以及客户端拦截器组"
+"成。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:44
@@ -140,8 +155,13 @@
"The use of dynamic proxies avoids the EJB specific compilation step required "
"by many other EJB containers."
msgstr ""
-"<literal>EJBProxyFactory</literal> 创建的代理是一个标准的动态代理。它是一个可序列化的对象,它代理 <literal>EJBModule</literal> 里元数据定义的 EJB home 和 "
-"remote 接口。代理用 <literal>ClientContainer</literal> 处理程序把通过强类型 EJB 接口发起的请求转换为无类型的调用。动态代理实例绑定到 JNDI 作为客户查找的 EJB home 接口。当客户查找 EJB home 接口时,home 代理以及 <literal>ClientContainer</literal> 和其拦截器被传输到客户端 VM。动态代理的使用避免了许多其他 EJB 容器所要求的 EJB 专有的编译步骤。"
+"<literal>EJBProxyFactory</literal> 创建的代理是一个标准的动态代理。它是一个代"
+"理 <literal>EJBModule</literal> 元数据定义的 EJB 的 home 和 remote 接口的可序"
+"列化的对象。这个代理用关联的 <literal>ClientContainer</literal> handler 把强"
+"类型的 EJB 接口产生的请求翻译成解除类型的调用。作为客户所查找的 EJB home 接口"
+"綁定到 JNDI 里的是动态代理实例。当客户查找 EJB home 时,home 代理和 "
+"<literal>ClientContainer</literal> 以及拦截器被传输到客户端的 VM。动态代理的"
+"使用避免了其他容器所要求的 EJB 专有的编译步骤。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:49
@@ -153,7 +173,11 @@
"the sense of Java's strong type system. A proxy can be cast to any of "
"the home interfaces and reflection on the proxy provides the full details of "
"the interfaces it proxies."
-msgstr "EJB home 接口在 ejb-jar.xml 描述符里进行声明且可以通过 EJBModule 元数据进行访问。动态代理的一个关键特点是它们实现自己开放的接口。对于 Java 这样的强类型系统来说,事实就是这样。代理可以转换成任何 home 接口,而代理的反射(Reflection)可以提供其代理接口的全部细节。"
+msgstr ""
+"EJB home 接口在 ejb-jar.xml 描述符里进行声明且可通过 EJBModule 元数据使用。动"
+"态代理的一个关键属性是它们可以实现所开放的接口。由于 Java 的强类型特点,这很"
+"有用处。代理可以转换成任何的 home 接口,且对它的反射(reflection)可以提供它"
+"所代理的接口的全部细节。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:54
@@ -170,9 +194,15 @@
"(<literal>org.jboss.proxy.Interceptor</literal>). The "
"<literal>InvocationContext</literal> contains:"
msgstr ""
-"代理把经过其任何接口的调用委托给 <literal>ClientContainer</literal> 处理程序。处理程序的唯一必需方法是:<literal>public Object invoke(Object proxy, Method m, Object"
-"[] args) throws Throwable</literal>。<literal>EJBProxyFactory</literal> 创建一个 <literal>ClientContainer</literal> 并将其指定为 <literal>ProxyHandler</literal>。<literal>ClientContainer</literal> 的状态由 <literal>InvocationContext</literal> (<literal>org."
-"jboss.invocation.InvocationContext</literal>) 和拦截器链 (<literal>org.jboss.proxy.Interceptor</literal>) 组成。<literal>InvocationContext</literal> 包含:"
+"代理把通过它的任何接口进行的调用委托给 <literal>ClientContainer</literal> "
+"handler。这个 handler 所需的唯一方法是:<literal>public Object invoke(Object "
+"proxy, Method m, Object[] args) throws Throwable</literal>。"
+"<literal>EJBProxyFactory</literal> 创建一个 <literal>ClientContainer</"
+"literal> 并把它作为 <literal>ProxyHandler</literal> 分配。"
+"<literal>ClientContainer</literal> 的状态由 <literal>InvocationContext</"
+"literal> (<literal>org.jboss.invocation.InvocationContext</literal>) 和一个拦"
+"截器链(<literal>org.jboss.proxy.Interceptor</literal>)组成。"
+"<literal>InvocationContext</literal> 包括: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:59
@@ -180,19 +210,21 @@
msgid ""
"the JMX <literal>ObjectName</literal> of the EJB container MBean the "
"<literal>Proxy</literal> is associated with"
-msgstr "<literal>Proxy</literal> 所关联的 EJB 容器 MBean 的 JMX <literal>ObjectName</literal>"
+msgstr ""
+"这个<literal>代理</literal>所关联的 EJB 容器 MBean 的 JMX "
+"<literal>ObjectName</literal> "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:64
#, no-c-format
msgid "the <literal>javax.ejb.EJBMetaData</literal> for the EJB"
-msgstr "用于 EJB 的 <literal>javax.ejb.EJBMetaData</literal>"
+msgstr "EJB 的 <literal>javax.ejb.EJBMetaData</literal> "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:69
#, no-c-format
msgid "the JNDI name of the EJB home interface"
-msgstr "EJB home 接口的 JNDI 名称"
+msgstr "EJB home 接口的 JNDI 名称 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:74
@@ -200,9 +232,7 @@
msgid ""
"the transport specific invoker (<literal>org.jboss.invocation.Invoker</"
"literal>)"
-msgstr ""
-"传输专有的调用者(<literal>org.jboss.invocation.Invoker</"
-"literal>)"
+msgstr "和传输相关的调用者(<literal>org.jboss.invocation.Invoker</literal>) "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:79
@@ -215,7 +245,12 @@
"metadata. Interceptors (<literal>org.jboss.proxy.Interceptor</literal>) "
"handle the different EJB types, security, transactions and transport. You "
"can add your own interceptors as well."
-msgstr "拦截器链包括组成 EJB home 和 remote 接口行为的功能单元。正如我们讨论 <literal>jboss.xml</literal> 描述符时所看到的,这是 EJB 可配置的一个方面,而 <literal>EJBModule</literal> 则包含了拦截器的组成。拦截器(<literal>org.jboss.proxy.Interceptor</literal>)处理不同的 EJB 类型、安全性、事务和传输。你也可以添加自己的拦截器。"
+msgstr ""
+"拦截器链由实现 EJB home 或 remote 接口行为的功能单元组成。在我们讨论 "
+"<literal>jboss.xml</literal> 描述符时,我们将看到这是 EJB 的一个可配置特性,"
+"而拦截器描述包含在 <literal>EJBModule</literal> 元数据里。拦截器"
+"(<literal>org.jboss.proxy.Interceptor</literal>)处理不同的 EJB 类型、安全"
+"性、事务和传输。你也可以添加自己的拦截器。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:84
@@ -225,7 +260,9 @@
"to the server side detached invoker that handles the transport details of "
"the EJB method invocation. The detached invoker is a JBoss server side "
"component."
-msgstr "和代理相关联的传输专有的调用者和服务器端处理 EJB 方法调用的传输细节的脱管调用者相关联。脱管调用者是一个 JBoss 服务器端的组件。"
+msgstr ""
+"和代理关联的传输专有的调用者和服务器端处理 EJB 方法调用传输细节的脱管调用者"
+"(detached invoker)相关联。脱管调用者是一个 JBoss 服务器端的组件。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:89
@@ -240,8 +277,12 @@
"transport handler that knows how to send the request to the server and "
"obtain the reply, taking care of the transport specific details."
msgstr ""
-"客户端拦截器的配置是通过 <literal>jboss.xml</literal><literal>client-interceptors</literal> 元素完成的。当 <literal>ClientContainer</literal> 的 invoke 方法被调用时,它创建一个无类型的 <literal>Invocation</literal> (<literal>org.jboss."
-"invocation.Invocation</literal>) 来封装请求。然后这通过拦截器链进行传递。链里的最后一个拦截器将是知道如何把请求发送给服务器并获得回应的传输处理者,它处理相关的传输细节。"
+"客户端拦截器的配置可通过 <literal>jboss.xml</literal> 的 <literal>client-"
+"interceptors</literal> 元素来完成。当 <literal>ClientContainer</literal> 被调"
+"用时,它创建一个无类型的 <literal>Invocation</literal>(<literal>org.jboss."
+"invocation.Invocation</literal>)来封装请求。然后这被传递给拦截器链。链里的最"
+"后一个拦截器将是传输处理者,它知道如何把请求发送到服务器并获得响应、以及处理"
+"传输相关的细节。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:92
@@ -267,7 +308,7 @@
msgid ""
"The client-interceptors from the Standard Stateless SessionBean "
"configuration."
-msgstr "Standard Stateless SessionBean 配置里的 client-interceptors。"
+msgstr "Standard Stateless SessionBean 配置里的客户端拦截器配置。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:96
@@ -384,8 +425,9 @@
"literal> configuration that overrides these settings. The functionality "
"provided by each client interceptor is:"
msgstr ""
-"这是在可以覆盖这些设置的 EJB JAR <literal>META-INF/jboss.xml</"
-"literal> 配置缺席的情况下使用的 stateless session bean 的客户端拦截器配置。每个客户端拦截器提供的功能是:"
+"这是在没有覆盖这些设置的 EJB JAR <literal>META-INF/jboss.xml</literal> 时所使"
+"用的用于 stateless session bean 的客户端拦截器配置。每个客户端拦截器所提供的"
+"功能是: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:103
@@ -397,8 +439,10 @@
"locally in the client VM. Any other methods are propagated to the next "
"interceptor."
msgstr ""
-"<emphasis role=\"bold\">org.jboss.proxy.ejb.HomeInterceptor</emphasis>:在客户度 VM 里对 <literal>EJBHome</literal> 接口的 <literal>getHomeHandle</literal>、 <literal>getEJBMetaData</"
-"literal> 和 remove 方法进行本地处理。任何其他方法都将传递给下一个拦截器。"
+"<emphasis role=\"bold\">org.jboss.proxy.ejb.HomeInterceptor</emphasis>:处理 "
+"<literal>getHomeHandle</literal>、<literal>getEJBMetaData</literal> 并删除客"
+"户端 VM 里的 <literal>EJBHome</literal> 接口方法。任何其他方法都被传递到下一"
+"个拦截器。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:108
@@ -412,9 +456,11 @@
"other methods are propagated to the next interceptor."
msgstr ""
"<emphasis role=\"bold\">org.jboss.proxy.ejb.StatelessSessionInterceptor</"
-"emphasis>:在客户端 VM 里对 <literal>EJBObject</literal> 接口的 <literal>toString</literal>、<literal>equals</"
-"literal>、<literal>hashCode</literal>、<literal>getHandle</literal>、"
-"<literal>getEJBHome</literal> 和 <literal>isIdentical</literal> 方法进行本地处理。任何其他方法都将传递给下一个拦截器。"
+"emphasis>:处理 <literal>toString</literal>、<literal>equals</literal>、"
+"<literal>hashCode</literal>、<literal>getHandle</literal>、"
+"<literal>getEJBHome</literal> 和客户端 VM 里的 <literal>EJBObject</literal> "
+"接口的 <literal>isIdentical</literal> 方法。任何其他方法都被传递到下一个拦截"
+"器。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:113
@@ -423,7 +469,9 @@
"<emphasis role=\"bold\">org.jboss.proxy.SecurityInterceptor</emphasis>: "
"associates the current security context with the method invocation for use "
"by other interceptors or the server."
-msgstr "<emphasis role=\"bold\">org.jboss.proxy.SecurityInterceptor</emphasis>:将当前安全上下文和其他拦截器或服务器使用的方法调用进行关联。"
+msgstr ""
+"<emphasis role=\"bold\">org.jboss.proxy.SecurityInterceptor</emphasis>:把当"
+"前安全性上下文和其他服务器或拦截器使用的方法调用进行关联。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:118
@@ -432,7 +480,9 @@
"<emphasis role=\"bold\">org.jboss.proxy.TransactionInterceptor</emphasis>: "
"associates any active transaction with the invocation method invocation for "
"use by other interceptors."
-msgstr "<emphasis role=\"bold\">org.jboss.proxy.TransactionInterceptor</emphasis>:将活动事务和其他拦截器使用的方法调用进行关联。"
+msgstr ""
+"<emphasis role=\"bold\">org.jboss.proxy.TransactionInterceptor</emphasis>:把"
+"任何活动事务和其他拦截器使用的方法调用相关联。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:123
@@ -466,13 +516,14 @@
"semantics for method calls."
msgstr ""
"<emphasis role=\"bold\">org.jboss.invocation.MarshallingInvokerInterceptor</"
-"emphasis>:继承 <literal>InvokerInterceptor</literal>,不对 in-VM 操作进行优化。它用于方法调用的强制 <literal>call-by-value</literal> 模式。"
+"emphasis>:继承 <literal>InvokerInterceptor</literal> 但不优化 VM 内部的调"
+"用。它被用来强制方法的 <literal>call-by-value(值调用)</literal>模式。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:132
#, no-c-format
msgid "Specifying the EJB Proxy Configuration"
-msgstr "指定 EJB 代理配置"
+msgstr "指定 EJB 代理配置 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:133
@@ -494,7 +545,9 @@
msgid ""
"<emphasis role=\"bold\">entity-rmi-invoker</emphasis>: a RMI/JRMP "
"configuration for entity beans"
-msgstr "<emphasis role=\"bold\">entity-rmi-invoker</emphasis>:用于 Entity Bean 的 RMI/JRMP 配置"
+msgstr ""
+"<emphasis role=\"bold\">entity-rmi-invoker</emphasis>:用于 Enitty Bean 的 "
+"RMI/JRMP 配置。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:143
@@ -502,7 +555,9 @@
msgid ""
"<emphasis role=\"bold\">clustered-entity-rmi-invoker</emphasis>: a RMI/JRMP "
"configuration for clustered entity beans"
-msgstr "<emphasis role=\"bold\">clustered-entity-rmi-invoker</emphasis>:用于群集 Entity Bean 的 RMI/JRMP 配置"
+msgstr ""
+"<emphasis role=\"bold\">clustered-entity-rmi-invoker</emphasis>:用于群集 "
+"Enitty Bean 的 RMI/JRMP 配置。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:148
@@ -510,7 +565,9 @@
msgid ""
"<emphasis role=\"bold\">stateless-rmi-invoker</emphasis>: a RMI/JRMP "
"configuration for stateless session beans"
-msgstr "<emphasis role=\"bold\">stateless-rmi-invoker</emphasis>:用于 stateless session bean 的 RMI/JRMP 配置"
+msgstr ""
+"<emphasis role=\"bold\">stateless-rmi-invoker</emphasis>::用于 Stateless "
+"Session Bean 的 RMI/JRMP 配置。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:153
@@ -519,8 +576,8 @@
"<emphasis role=\"bold\">clustered-stateless-rmi-invoker</emphasis>: a RMI/"
"JRMP configuration for clustered stateless session beans"
msgstr ""
-"<emphasis role=\"bold\">clustered-stateless-rmi-invoker</emphasis>:用于群集 stateless session bean 的 RMI/"
-"JRMP 配置"
+"<emphasis role=\"bold\">clustered-stateless-rmi-invoker</emphasis>:用于群集 "
+"Stateless Session Bean 的 RMI/JRMP 配置。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:158
@@ -528,7 +585,9 @@
msgid ""
"<emphasis role=\"bold\">stateful-rmi-invoker</emphasis>: a RMI/JRMP "
"configuration for clustered stateful session beans"
-msgstr "<emphasis role=\"bold\">stateful-rmi-invoker</emphasis>:用于群集 stateful session bean 的 RMI/JRMP 配置"
+msgstr ""
+"<emphasis role=\"bold\">stateful-rmi-invoker</emphasis>:用于 Stateful "
+"Session Bean 的 RMI/JRMP 配置。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:163
@@ -537,8 +596,8 @@
"<emphasis role=\"bold\">clustered-stateful-rmi-invoker</emphasis>: a RMI/"
"JRMP configuration for clustered stateful session beans"
msgstr ""
-"<emphasis role=\"bold\">clustered-stateful-rmi-invoker</emphasis>:用于群集 stateful session bean 的 RMI/"
-"JRMP 配置"
+"<emphasis role=\"bold\">clustered-stateful-rmi-invoker</emphasis>:用于群集 "
+"Stateful Session Bean 的 RMI/JRMP 配置。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:168
@@ -546,7 +605,9 @@
msgid ""
"<emphasis role=\"bold\">message-driven-bean</emphasis>: a JMS invoker for "
"message driven beans"
-msgstr "<emphasis role=\"bold\">message-driven-bean</emphasis>:用于 Message driven bean 的 JMS 调用者"
+msgstr ""
+"<emphasis role=\"bold\">message-driven-bean</emphasis>:用于 Message Driven "
+"Bean 的 JMS 调用者。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:173
@@ -554,7 +615,9 @@
msgid ""
"<emphasis role=\"bold\">singleton-message-driven-bean</emphasis>: a JMS "
"invoker for singleton message driven beans"
-msgstr "<emphasis role=\"bold\">singleton-message-driven-bean</emphasis>:用于单点登录 message driven bean 的 JMS 调用者"
+msgstr ""
+"<emphasis role=\"bold\">singleton-message-driven-bean</emphasis>:用于单点登"
+"录(Singleton)的 Message Driven Bean 的 JMS 调用者。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:178
@@ -562,7 +625,9 @@
msgid ""
"<emphasis role=\"bold\">message-inflow-driven-bean</emphasis>: a JMS invoker "
"for message inflow driven beans"
-msgstr "<emphasis role=\"bold\">message-inflow-driven-bean</emphasis>:用于 message inflow driven bean 的 JMS 调用者"
+msgstr ""
+"<emphasis role=\"bold\">message-inflow-driven-bean</emphasis>:用于 Message "
+"Inflow Driven Bean 的 JMS 调用者。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:183
@@ -570,7 +635,9 @@
msgid ""
"<emphasis role=\"bold\">jms-message-inflow-driven-bean</emphasis>: a JMS "
"inflow invoker for standard message driven beans"
-msgstr "<emphasis role=\"bold\">jms-message-inflow-driven-bean</emphasis>:用于 standard message driven bean 的 JMS inflow 调用者"
+msgstr ""
+"<emphasis role=\"bold\">jms-message-inflow-driven-bean</emphasis>:用于标准 "
+"Message Driven Bean 的 JMS Inflow 调用者。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:188
@@ -578,7 +645,9 @@
msgid ""
"<emphasis role=\"bold\">iiop</emphasis>: a RMI/IIOP for use with session and "
"entity beans."
-msgstr "<emphasis role=\"bold\">iiop</emphasis>:用于 session 和 entity bean 的 RMI/IIOP。"
+msgstr ""
+"<emphasis role=\"bold\">iiop</emphasis>:用于 Session 和 Entity Bean 的 RMI/"
+"IIOP。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:193
@@ -591,22 +660,23 @@
"<xref linkend=\"Specifying_the_EJB_Proxy_Configuration-"
"The_invoker_proxy_binding_schema\"/>."
msgstr ""
-"为了引入新的协议绑定或者自定义代理工厂,亦或者客户端的拦截器栈,你需要定义一个新的 <literal>invoker-"
-"proxy-binding</literal>。<xref linkend=\"Specifying_the_EJB_Proxy_Configuration-"
-"The_invoker_proxy_binding_schema\"/> 给出了用于代理配置规格的完整的 <literal>invoker-proxy-binding</literal> "
-"DTD 片段。"
+"为了引入新的协议綁定、或者自定义代理工厂、或者客户端的拦截器栈,你需要定义一"
+"个新的 <literal>invoker-proxy-binding</literal>。<xref linkend="
+"\"Specifying_the_EJB_Proxy_Configuration-The_invoker_proxy_binding_schema\"/"
+"> 里给出了用于代理配置规格的完整的 <literal>invoker-proxy-binding</literal> "
+"DTD 片段。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:197
#, no-c-format
msgid "The invoker-proxy-binding schema"
-msgstr "invoker-proxy-binding 模式"
+msgstr "invoker-proxy-binding 模式 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:204
#, no-c-format
msgid "The <literal>invoker-proxy-binding</literal> child elements are:"
-msgstr "<literal>invoker-proxy-binding</literal> 子元素是:"
+msgstr "<literal>invoker-proxy-binding</literal> 的子元素有: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:209
@@ -619,7 +689,12 @@
"to specify addition proxy bindings. You will see how this is done when we "
"look at the <literal>jboss.xml</literal> elements that control the server "
"side EJB container configuration."
-msgstr "<emphasis role=\"bold\">name</emphasis>:<literal>name</literal> 元素给出了 <literal>invoker-proxy-binding</literal> 的唯一名称。在设置缺省代理绑定和 EJB 部署级别以指定额外的代理绑定时,这个名称用于引用 EJB 容器配置里的绑定。从 <literal>jboss.xml</literal> 里控制服务器端的 EJB 容器配置,你会到这是如何实现的。"
+msgstr ""
+"<emphasis role=\"bold\">name</emphasis>:<literal>name</literal> 元素为 "
+"<literal>invoker-proxy-binding</literal> 赋予一个唯一名称。当设置缺省的代理綁"
+"定以及 EJB 部署级别来指定其他代理綁定时,这个名字被用来引用 EJB 容器配置里的"
+"綁定。看看 <literal>jboss.xml</literal> 里控制服务器端的 EJB 容器配置的元素的"
+"内容,你就知道这是如何实现的。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:214
@@ -630,8 +705,9 @@
"of the detached invoker MBean service the proxy invoker will be associated "
"with."
msgstr ""
-"<emphasis role=\"bold\">invoker-mbean</emphasis>:<literal>invoker-"
-"mbean</literal> 元素给出代理调用者将关联的脱管调用者 MBean 服务的 JMX <literal>ObjectName</literal> 字符串。"
+"<emphasis role=\"bold\">invoker-mbean</emphasis>:<literal>invoker-mbean</"
+"literal> 元素指定了代理调用者将关联的脱管调用者(detached invoker)MBean 服务"
+"的 JMX <literal>ObjectName</literal> 字符串。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:219
@@ -645,9 +721,11 @@
"specific invoker and context. The current JBoss implementations of the "
"<literal>EJBProxyFactory</literal> interface include:"
msgstr ""
-"<emphasis role=\"bold\">proxy-factory</emphasis>:<literal>proxy-"
-"factory</literal> 元素指定代理工厂的全限定类名,这个工厂必须实现 <literal>org.jboss.ejb."
-"EJBProxyFactory</literal> 接口。<literal>EJBProxyFactory</literal> 处理代理的配置和协议专有的调用者和上下文的关联。目前 JBoss 实现的 <literal>EJBProxyFactory</literal> 包括:"
+"<emphasis role=\"bold\">proxy-factory</emphasis>:<literal>proxy-factory</"
+"literal> 元素指定代理工厂的全限定类名,这个工厂必须实现 <literal>org.jboss."
+"ejb.EJBProxyFactory</literal> 接口。<literal>EJBProxyFactory</literal> 处理代"
+"理的配置以及协议专有的调用者和上下文之间的联系。目前 JBoss 对 "
+"<literal>EJBProxyFactory</literal> 接口的实现包括: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:224
@@ -655,7 +733,9 @@
msgid ""
"<emphasis role=\"bold\">org.jboss.proxy.ejb.ProxyFactory</emphasis>: The RMI/"
"JRMP specific factory."
-msgstr "<emphasis role=\"bold\">org.jboss.proxy.ejb.ProxyFactory</emphasis>:RMI/JRMP 专有的工厂。"
+msgstr ""
+"<emphasis role=\"bold\">org.jboss.proxy.ejb.ProxyFactory</emphasis>:RMI/"
+"JRMP 专有的工厂。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:229
@@ -663,7 +743,9 @@
msgid ""
"<emphasis role=\"bold\">org.jboss.proxy.ejb.ProxyFactoryHA</emphasis>: The "
"cluster RMI/JRMP specific factory."
-msgstr "<emphasis role=\"bold\">org.jboss.proxy.ejb.ProxyFactoryHA</emphasis>:群集 RMI/JRMP 专有的工厂。"
+msgstr ""
+"<emphasis role=\"bold\">org.jboss.proxy.ejb.ProxyFactoryHA</emphasis>:群集 "
+"RMI/JRMP 专有的工厂。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:234
@@ -673,7 +755,7 @@
"emphasis>: The JMS specific factory."
msgstr ""
"<emphasis role=\"bold\">org.jboss.ejb.plugins.jms.JMSContainerInvoker</"
-"emphasis>:JMS 专有的工厂。"
+"emphasis>:JMS 专有的工厂。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:239
@@ -682,8 +764,8 @@
"<emphasis role=\"bold\">org.jboss.proxy.ejb.IORFactory</emphasis>: The RMI/"
"IIOP specific factory."
msgstr ""
-"<emphasis role=\"bold\">org.jboss.proxy.ejb.IORFactory</emphasis>:RMI/"
-"IIOP 专有的工厂。"
+"<emphasis role=\"bold\">org.jboss.proxy.ejb.IORFactory</emphasis>:RMI/IIOP "
+"专有的工厂。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:246
@@ -697,7 +779,9 @@
"three invocation protocols: RMI/RJMP, RMI/IIOP and JMS."
msgstr ""
"<emphasis role=\"bold\">proxy-factory-config</emphasis>:<literal>proxy-"
-"factory-config</literal> 元素指定 <literal>proxy-factory</literal> 实现的其他信息。可惜的是,目前它还是元素的非结构化集合。只有一些元素可应用到代理工厂的每个类型上。其子元素分成 3 个调用协议:RMI/RJMP、RMI/IIOP 和 JMS。"
+"factory-config</literal> 元素指定 <literal>proxy-factory</literal> 实现的其他"
+"信息。目前它只是元素的一个非结构化的集合。只有一些元素可以应用于代理工厂的每"
+"个类型。子元素根据 3 种调用协议进行划分:RMI/RJMP、RMI/IIOP 和 JMS。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:251
@@ -707,9 +791,9 @@
"ProxyFactory</literal> and <literal>org.jboss.proxy.ejb.ProxyFactoryHA</"
"literal> the following elements apply:"
msgstr ""
-"对于 RMI/JRMP 专有的代理工厂 <literal>org.jboss.proxy.ejb."
-"ProxyFactory</literal> 和 <literal>org.jboss.proxy.ejb.ProxyFactoryHA</"
-"literal>,使用下面的元素:"
+"对于 RMI/JRMP 相关的代理工厂 <literal>org.jboss.proxy.ejb.ProxyFactory</"
+"literal> 和 <literal>org.jboss.proxy.ejb.ProxyFactoryHA</literal>,使用下面的"
+"元素: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:256
@@ -720,8 +804,8 @@
"valued proxy interceptor stacks."
msgstr ""
"<emphasis role=\"bold\">client-interceptors</emphasis>:<literal>client-"
-"interceptors</literal> 定义 home、remote 和可选的 multi-"
-"valued 代理拦截器栈。"
+"interceptors</literal> 定义 home、remote 和多值的(multi-valued)代理拦截器"
+"栈。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:261 J2EE_EJBs_On_JBOSS.xml:275
@@ -730,7 +814,10 @@
"<emphasis role=\"bold\">web-class-loader</emphasis>: The web class loader "
"defines the instance of the <literal>org.jboss.web.WebClassLoader</literal> "
"that should be associated with the proxy for dynamic class loading."
-msgstr "<emphasis role=\"bold\">web-class-loader</emphasis>:web-class-loader 元素定义应该和用于动态类加载关联的 <literal>org.jboss.web.WebClassLoader</literal> 实例。"
+msgstr ""
+"<emphasis role=\"bold\">web-class-loader</emphasis>:web 类加载器定义了应该和"
+"用于动态类加载的代理相关的 <literal>org.jboss.web.WebClassLoader</literal> 的"
+"实例。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:266
@@ -738,7 +825,9 @@
msgid ""
"The following <literal>proxy-factory-config</literal> is for an entity bean "
"accessed over RMI."
-msgstr "下面的 <literal>proxy-factory-config</literal> 用于通过 RMI 访问的 Entity Bean。"
+msgstr ""
+"下面的 <literal>proxy-factory-config</literal> 用于通过 RMI 访问的 Enity "
+"Bean。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:269
@@ -845,8 +934,8 @@
"For the RMI/IIOP specific proxy factory, <literal>org.jboss.proxy.ejb."
"IORFactory</literal>, the following elements apply:"
msgstr ""
-"对于 RMI/IIOP 专有的代理工厂 <literal>org.jboss.proxy.ejb."
-"IORFactory</literal>,应用下面的元素:"
+"对于 RMI/IIOP 相关的代理工厂 <literal>org.jboss.proxy.ejb.IORFactory</"
+"literal>,使用下面的元素: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:280
@@ -856,8 +945,9 @@
"Valid values are <literal>per-servant</literal> and <literal>shared</"
"literal>."
msgstr ""
-"<emphasis role=\"bold\">poa</emphasis>:可移植对象适配器的用法。有效值为 <literal>per-servant</literal> 和 <literal>shared</"
-"literal>。"
+"<emphasis role=\"bold\">poa</emphasis>:可移植对象适配器(Portable Object "
+"Adapter)的用法。 其有效值为 <literal>per-servant</literal> 和 "
+"<literal>shared</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:285
@@ -865,7 +955,9 @@
msgid ""
"<emphasis role=\"bold\">register-ejbs-in-jnp-context</emphasis>: A flag "
"indicating if the EJBs should be register in JNDI."
-msgstr "<emphasis role=\"bold\">register-ejbs-in-jnp-context</emphasis>:表示 EJB 是否应该在 JNDI 里注册的标记。"
+msgstr ""
+"<emphasis role=\"bold\">register-ejbs-in-jnp-context</emphasis>:指定 EJB 是"
+"否应该在 JNDI 里注册。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:290
@@ -873,7 +965,7 @@
msgid ""
"<emphasis role=\"bold\">jnp-context</emphasis>: The JNDI context in which to "
"register EJBs."
-msgstr "<emphasis role=\"bold\">jnp-context</emphasis>::EJB 注册的 JNDI 上下文。"
+msgstr "<emphasis role=\"bold\">jnp-context</emphasis>:EJB 所注册的 JNDI 上下文。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:295
@@ -882,7 +974,9 @@
"<emphasis role=\"bold\">interface-repository-supported</emphasis>: This "
"indicates whether or not a deployed EJB has its own CORBA interface "
"repository."
-msgstr "<emphasis role=\"bold\">interface-repository-supported</emphasis>:表示部署的 EJB 是否有自己的 CORBA 接口库。"
+msgstr ""
+"<emphasis role=\"bold\">interface-repository-supported</emphasis>:这指出部署"
+"的 EJB 是否有自己的 CORBA 接口库。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:300
@@ -890,7 +984,9 @@
msgid ""
"The following shows a <literal>proxy-factory-config</literal> for EJBs "
"accessed over IIOP."
-msgstr "下面展示了用于通过 IIOP 访问的 EJB 的 <literal>proxy-factory-config</literal>。"
+msgstr ""
+"下面展示了用于通过 IIOP 访问的 EJB 的 <literal>proxy-factory-config</"
+"literal>。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:303
@@ -919,8 +1015,8 @@
"For the JMS specific proxy factory, <literal>org.jboss.ejb.plugins.jms."
"JMSContainerInvoker</literal>, the following elements apply:"
msgstr ""
-"对于 JMS 专有的代理工厂 <literal>org.jboss.ejb.plugins.jms."
-"JMSContainerInvoker</literal>,使用下面的元素:"
+"对于 JMS 相关的代理工厂 <literal>org.jboss.ejb.plugins.jms."
+"JMSContainerInvoker</literal>,使用下面的元素: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:309
@@ -928,7 +1024,9 @@
msgid ""
"<emphasis role=\"bold\">MinimumSize</emphasis>: This specifies the minimum "
"pool size for MDBs processing . This defaults to 1."
-msgstr "<emphasis role=\"bold\">MinimumSize</emphasis>:指定 MDB 处理的池的最小容量。缺省为 1。"
+msgstr ""
+"<emphasis role=\"bold\">MinimumSize</emphasis>:指定 MDB 的最小进程池大小。缺"
+"省值为 1。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:314
@@ -937,7 +1035,9 @@
"<emphasis role=\"bold\">MaximumSize</emphasis>: This specifies the upper "
"limit to the number of concurrent MDBs that will be allowed for the JMS "
"destination. This defaults to 15."
-msgstr "<emphasis role=\"bold\">MaximumSize</emphasis>:指定 JMS 目的地允许的并行 MDB 的上限。缺省为 15。"
+msgstr ""
+"<emphasis role=\"bold\">MaximumSize</emphasis>:指定 JMS 目的地允许的并行的 "
+"MDB 的数量的上限。缺省值为 15。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:319
@@ -954,8 +1054,13 @@
"to 1. This value should not be modified from the default unless your JMS "
"provider indicates this is supported."
msgstr ""
-"<emphasis role=\"bold\">MaxMessages</emphasis>:为 <literal>javax.jms."
-"QueueConnection</literal> 和 <literal>javax.jms.TopicConnection</literal> 接口的 <literal>createConnectionConsumer</literal> 方法指定 <literal>maxMessages</literal> 参数值以及 <literal>javax.jms.TopicConnection</literal> 的 <literal>createDurableConnectionConsumer</literal> 方法的 <literal>maxMessages</literal> 参数值。它是可一次分配给服务器会话的最大消息数目。缺省为 1。这个值不应该被修改,除非你的 JMS 提供者提供支持。"
+"<emphasis role=\"bold\">MaxMessages</emphasis>:指定 <literal>javax.jms."
+"QueueConnection</literal> 和 <literal>javax.jms.TopicConnection</literal> 接"
+"口的 <literal>createConnectionConsumer</literal> 方法的 "
+"<literal>maxMessages</literal> 参数的值,以及<literal>javax.jms."
+"TopicConnection</literal> 的 <literal>createDurableConnectionConsumer</"
+"literal> 方法的 <literal>maxMessages</literal> 参数的值。这是可一次分配给服务"
+"器会话的消息的最大数目。除非你的 JMS 提供者提供支持,否则不要修改它的缺省值。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:324
@@ -964,7 +1069,9 @@
"<emphasis role=\"bold\">KeepAliveMillis</emphasis>: This specifies the keep "
"alive time interval in milliseconds for sessions in the session pool. The "
"default is 30000 (30 seconds)."
-msgstr "<emphasis role=\"bold\">KeepAliveMillis</emphasis>:指定会话池里的会话保持活动状态的时间间隔(毫秒)。缺省值为 30000(30 秒)。"
+msgstr ""
+"<emphasis role=\"bold\">KeepAliveMillis</emphasis>:指定会话池里的会话的 "
+"keep alive 时间间隔。缺省值是 30000(30 秒)。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:329
@@ -972,7 +1079,9 @@
msgid ""
"<emphasis role=\"bold\">MDBConfig</emphasis>: Configuration for the MDB JMS "
"connection behavior. Among the elements supported are:"
-msgstr "<emphasis role=\"bold\">MDBConfig</emphasis>:配置 MDB JMS 的连接行为。所支持的元素是:"
+msgstr ""
+"<emphasis role=\"bold\">MDBConfig</emphasis>:配置 MDB JMS 连接的行为。被支持"
+"的元素有: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:334
@@ -980,7 +1089,9 @@
msgid ""
"<emphasis role=\"bold\">ReconnectIntervalSec</emphasis>: The time to wait "
"(in seconds) before trying to recover the connection to the JMS server."
-msgstr "<emphasis role=\"bold\">ReconnectIntervalSec</emphasis>:恢复和 JMS 服务器的连接的等待时间(秒)。"
+msgstr ""
+"<emphasis role=\"bold\">ReconnectIntervalSec</emphasis>:试图恢复和 JMS 服务"
+"器的连接前等待的时间(秒)。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:339
@@ -988,7 +1099,9 @@
msgid ""
"<emphasis role=\"bold\">DeliveryActive</emphasis>: Whether or not the MDB is "
"active at startup. The default is true."
-msgstr "<emphasis role=\"bold\">DeliveryActive</emphasis>:MDB 在启动时是否处于活动状态。缺省为 true。"
+msgstr ""
+"<emphasis role=\"bold\">DeliveryActive</emphasis>:指定这个 MDB 是否在启动时"
+"就进入活动状态。缺省值为 true。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:344
@@ -996,7 +1109,9 @@
msgid ""
"<emphasis role=\"bold\">DLQConfig</emphasis>: Configuration for an MDB's "
"dead letter queue, used when messages are redelivered too many times."
-msgstr "<emphasis role=\"bold\">DLQConfig</emphasis>:配置 MDB 的 dead letter 队列,它在消息被重新递送太多次数时使用。"
+msgstr ""
+"<emphasis role=\"bold\">DLQConfig</emphasis>:配置 MDB 的 dead letter 队列,"
+"在消息被重递送太多次数时使用。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:349
@@ -1007,8 +1122,9 @@
"mandatory for an MDB and must implement <literal>org.jboss.jms.jndi."
"JMSProviderAdapter</literal>."
msgstr ""
-"<emphasis role=\"bold\">JMSProviderAdapterJNDI</emphasis>:<literal>java:/</literal> 命名空间里的 JMS 提供者适配器的 JNDI 名称。对于 MDB 来说这是强制的且必须实现 <literal>org.jboss.jms.jndi."
-"JMSProviderAdapter</literal>。"
+"<emphasis role=\"bold\">JMSProviderAdapterJNDI</emphasis>:JMS 提供者适配器"
+"在 <literal>java:/</literal> 命名空间里的 JNDI 名称。对于 MDB 这是强制的,且"
+"必须实现<literal>org.jboss.jms.jndi.JMSProviderAdapter</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:354
@@ -1018,7 +1134,11 @@
"name of the session pool in the <literal>java:/</literal> namespace of the "
"JMS provider's session pool factory. This is mandatory for an MDB and "
"must implement <literal>org.jboss.jms.asf.ServerSessionPoolFactory</literal>."
-msgstr "<emphasis role=\"bold\">ServerSessionPoolFactoryJNDI</emphasis>:JMS 提供者的会话池工厂的 <literal>java:/</literal> 命名空间里的会话池的 JNDI 名称。对于 MDB 来说它是强制的且必须实现 <literal>org.jboss.jms.asf.ServerSessionPoolFactory</literal>。"
+msgstr ""
+"<emphasis role=\"bold\">ServerSessionPoolFactoryJNDI</emphasis>:JMS 提供者的"
+"会话池工厂里的会话池的基于 <literal>java:/</literal> 命名空间的 JNDI 名称。对"
+"于 MDB 这是强制的且必须实现 <literal>org.jboss.jms.asf."
+"ServerSessionPoolFactory</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:361
@@ -1026,13 +1146,15 @@
msgid ""
"gives a sample <literal>proxy-factory-config</literal> fragment taken from "
"the <literal>standardjboss.xml</literal> descriptor."
-msgstr "给出 <literal>standardjboss.xml</literal> 描述符里的 <literal>proxy-factory-config</literal> 示例片段。"
+msgstr ""
+"给出了 <literal>standardjboss.xml</literal> 描述符里的一个 <literal>proxy-"
+"factory-config</literal> 片段示例。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:364
#, no-c-format
msgid "A sample JMSContainerInvoker proxy-factory-config"
-msgstr "JMSContainerInvoker proxy-factory-config 示例"
+msgstr "JMSContainerInvoker 的 proxy-factory-config 示例 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:365
@@ -1080,7 +1202,7 @@
#: J2EE_EJBs_On_JBOSS.xml:372
#, no-c-format
msgid "The EJB Server Side View"
-msgstr "EJB 的服务器端视图"
+msgstr "EJB 的服务器端视图 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:373
@@ -1089,13 +1211,15 @@
"Every EJB invocation must end up at a JBoss server hosted EJB container. In "
"this section we will look at how invocations are transported to the JBoss "
"server VM and find their way to the EJB container via the JMX bus."
-msgstr "每个 EJB 调用都必须在以 JBoss 服务器为宿主的 EJB 容器里结束。本节我们将讨论怎样把调用传送到 JBoss 服务器 VM 并通过 JMX 总线进入 EJB 容器里。"
+msgstr ""
+"每个 EJB 调用都必须在以 JBoss 服务器为宿主的 EJB 容器里结束。本节我们将看到这"
+"些调用是如何传输到 JBoss 服务器 VM 里并通过 JMX 总线进入 EJB 容器里的。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:377
#, no-c-format
msgid "Detached Invokers - The Transport Middlemen"
-msgstr "脱管调用者 - 传输中介"
+msgstr "脱管调用者 - 传输中介 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:378
@@ -1108,12 +1232,17 @@
"presented in <xref linkend=\"Detached_Invokers___The_Transport_Middlemen-"
"The_transport_invoker_server_side_architecture\"/>."
msgstr ""
+"在早前开放 MBean 服务的 RMI 兼容接口时,我们讨论了脱管调用者的架构。在这里我"
+"们将看看怎样使用脱管调用者来为客户开放 EJB 容器的 home 和 bean 接口。<xref "
+"linkend=\"Detached_Invokers___The_Transport_Middlemen-"
+"The_transport_invoker_server_side_architecture\"/> 体现了调用者架构的通用视"
+"图。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:382
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The transport invoker server side architecture"
-msgstr "The main components in the detached invoker architecture"
+msgstr "传输调用者的服务器端架构 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:389
@@ -1129,6 +1258,13 @@
"<literal>invoker-bindings</literal> specify one or more invokers to use with "
"the EJB container MBean."
msgstr ""
+"对于每种类型的 home 代理都有一个与调用者的綁定以及相关联的传输协议。容器可能"
+"同时有多个活动的调用协议。在 <literal>jboss.xml</literal> 文件里,"
+"<literal>invoker-proxy-binding-name</literal> 匹配 <literal>invoker-proxy-"
+"binding/name</literal> 元素。对于 <literal>container-configuration</literal> "
+"级别而言,这指定了将用于部署在容器里的 EJB 的缺省调用者。从 bean 级别来说,"
+"<literal>invoker-bindings</literal> 指定了一个或多个和 EJB 容器 MBean 一起使"
+"用的调用者。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:392
@@ -1146,6 +1282,13 @@
"<literal>ejb-ref</literal> to the home proxy binding for <literal>ejb-ref</"
"literal> target EJB home that matches the referencing invoker type."
msgstr ""
+"当为给定的 EJB 部署指定多个调用者时,home 代理必须赋予一个唯一的 JNDI 綁定位"
+"置。这是通过 <literal>invoker/jndi-name</literal> 元素指定的。有多个调用者存"
+"在时产生的另外一个问题是,如何处理远程 home 接口或 EJB 调用其他 bean 时获得的"
+"接口。任何这样的接口都需要使用和调用外部 EJB 相同的调用者来使远程 home 和接口"
+"和客户初始化这个调用所用的代理相兼容。<literal>invoker/ejb-ref</literal> 元素"
+"允许你把独立于协议的 ENC <literal>ejb-ref</literal> 映射到符合引用调用者类型"
+"的 <literal>ejb-ref</literal> target EJB home 的 home 代理綁定。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:395
@@ -1157,6 +1300,10 @@
"following example illustrates the custom <literal>JRMPInvoker</literal> "
"configuration and its mapping to a stateless session bean."
msgstr ""
+"在 Testsuite 的 <literal>org.jboss.test.jrmp</literal> 软件包里你可以找到一个"
+"使用启用压缩套接字的自定义的 <literal>JRMPInvoker</literal> MBean 的示例。下"
+"面的例子演示了自定义的 <literal>JRMPInvoker</literal> 配置及其到一个 "
+"stateless session bean 的映射。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:398
@@ -1176,6 +1323,19 @@
"</mbean>\n"
" </server>"
msgstr ""
+"<server>\n"
+" <mbean code=\"org.jboss.invocation.jrmp.server.JRMPInvoker\"\n"
+" name=\"jboss:service=invoker,type=jrmp,"
+"socketType=CompressionSocketFactory\">\n"
+" <attribute name=\"RMIObjectPort\">4445</attribute>\n"
+" <attribute name=\"RMIClientSocketFactory\">\n"
+" org.jboss.test.jrmp.ejb.CompressionClientSocketFactory\n"
+" </attribute>\n"
+" <attribute name=\"RMIServerSocketFactory\">\n"
+" org.jboss.test.jrmp.ejb.CompressionServerSocketFactory\n"
+" </attribute>\n"
+"</mbean>\n"
+" </server>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:399
@@ -1185,10 +1345,12 @@
"to port 4445 and to use custom socket factories that enable compression at "
"the transport level."
msgstr ""
+"缺省的 <literal>JRMPInvoker</literal> 在这里已经自定义为綁定端口 4445 且使用"
+"自定义的在传输层启用压缩的套接字工厂。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:402
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<?xml version=\"1.0\"?>\n"
"<!DOCTYPE jboss PUBLIC\n"
@@ -1251,68 +1413,66 @@
" </invoker-proxy-bindings>\n"
"</jboss>"
msgstr ""
+"<?xml version=\"1.0\"?>\n"
+"<!DOCTYPE jboss PUBLIC\n"
+" \"-//JBoss//DTD JBOSS 3.2//EN\"\n"
+" \"http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd\">\n"
+"<!-- The jboss.xml descriptor for the jrmp-comp.jar ejb unit -->\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-"
+" <enterprise-beans>\n"
+" <session>\n"
+" <ejb-name>StatelessSession</ejb-name>\n"
+" <configuration-name>Standard Stateless SessionBean</"
+"configuration-name>\n"
+" <invoker-bindings>\n"
+" <invoker>\n"
+" <invoker-proxy-binding-name>\n"
+" stateless-compression-invoker\n"
+" </invoker-proxy-binding-name>\n"
+" <jndi-name>jrmp-compressed/StatelessSession</"
+"jndi-name>\n"
+" </invoker>\n"
+" </invoker-bindings>\n"
+" </session>\n"
+" </enterprise-beans>\n"
+" \n"
+" <invoker-proxy-bindings>\n"
+" <invoker-proxy-binding>\n"
+" <name>stateless-compression-invoker</name>\n"
+" <invoker-mbean>\n"
+" jboss:service=invoker,type=jrmp,"
+"socketType=CompressionSocketFactory\n"
+" </invoker-mbean>\n"
+" <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</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>"
+" <proxy-factory-config>\n"
+" <client-interceptors>\n"
+" <home>\n"
+" <interceptor>org.jboss.proxy.ejb."
+"HomeInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"TransactionInterceptor</interceptor>\n"
+" <interceptor>org.jboss.invocation."
+"InvokerInterceptor</interceptor>\n"
+" </home>\n"
+" <bean>\n"
+" <interceptor>\n"
+" org.jboss.proxy.ejb.StatelessSessionInterceptor\n"
+" </interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"TransactionInterceptor</interceptor>\n"
+" <interceptor>org.jboss.invocation."
+"InvokerInterceptor</interceptor>\n"
+" </bean>\n"
+" </client-interceptors>\n"
+" </proxy-factory-config>\n"
+" </invoker-proxy-binding>\n"
+" </invoker-proxy-bindings>\n"
+"</jboss>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:403
@@ -1325,6 +1485,11 @@
"compression-invoker</literal> is linked to the custom JRMP invoker we just "
"declared."
msgstr ""
+"<literal>StatelessSession</literal> EJB <literal>invoker-bindings</literal> "
+"设置指定 <literal>stateless-compression-invoker</literal> 将和綁定在 JNDI 名"
+"称 <literal>jrmp-compressed/StatelessSession</literal> 下的 home 接口一起使"
+"用。<literal>stateless-compression-invoker</literal> 链接至我们刚才声明的自定"
+"义 JRMP 调用者。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:406
@@ -1334,10 +1499,13 @@
"package, is an example of using the <literal>HttpInvoker</literal> to "
"configure a stateless session bean to use the RMI/HTTP protocol."
msgstr ""
+"下面的例子,<literal>org.jboss.test.hello</literal> testsuite 软件包,是一个"
+"用 <literal>HttpInvoker</literal> 来配置使用 RMI/HTTP 协议的 stateless "
+"session bean 的例子。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:409
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<!DOCTYPE jboss PUBLIC\n"
@@ -1394,68 +1562,60 @@
" </invoker-proxy-bindings>\n"
"</jboss>"
msgstr ""
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<!DOCTYPE jboss PUBLIC\n"
+" \"-//JBoss//DTD JBOSS 3.2//EN\"\n"
+" \"http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd\">\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-"
+" <enterprise-beans>\n"
+" <session>\n"
+" <ejb-name>HelloWorldViaHTTP</ejb-name>\n"
+" <jndi-name>helloworld/HelloHTTP</jndi-name>\n"
+" <invoker-bindings>\n"
+" <invoker>\n"
+" <invoker-proxy-binding-name>\n"
+" stateless-http-invoker\n"
+" </invoker-proxy-binding-name>\n"
+" </invoker>\n"
+" </invoker-bindings>\n"
+" </session>\n"
+" </enterprise-beans>\n"
+" <invoker-proxy-bindings>\n"
+" <!-- A custom invoker for RMI/HTTP -->\n"
+" <invoker-proxy-binding>\n"
+" <name>stateless-http-invoker</name>\n"
+" <invoker-mbean>jboss:service=invoker,type=http</invoker-"
"mbean>\n"
-" <proxy-factory>org.jboss.proxy.ejb.ProxyFactoryHA</proxy-"
+" <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</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>"
+" <proxy-factory-config>\n"
+" <client-interceptors>\n"
+" <home>\n"
+" <interceptor>org.jboss.proxy.ejb."
+"HomeInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"TransactionInterceptor</interceptor>\n"
+" <interceptor>org.jboss.invocation."
+"InvokerInterceptor</interceptor>\n"
+" </home>\n"
+" <bean>\n"
+" <interceptor>\n"
+" org.jboss.proxy.ejb.StatelessSessionInterceptor\n"
+" </interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"TransactionInterceptor</interceptor>\n"
+" <interceptor>org.jboss.invocation."
+"InvokerInterceptor</interceptor>\n"
+" </bean>\n"
+" </client-interceptors>\n"
+" </proxy-factory-config>\n"
+" </invoker-proxy-binding>\n"
+" </invoker-proxy-bindings>\n"
+"</jboss>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:410
@@ -1468,10 +1628,15 @@
"found in the <literal>http-invoker.sar/META-INF/jboss-service.xml</literal> "
"descriptor, and its service descriptor fragment is show here:"
msgstr ""
+"在这里定义了一个名为 <literal>stateless-http-invoker</literal> 的自定义的 "
+"invoker-proxy-binding。它把 <literal>HttpInvoker</literal> MBean 用作脱管调用"
+"者。在 <literal>http-invoker.sar/META-INF/jboss-service.xml</literal> 描述符"
+"里找到的 <literal>jboss:service=invoker,type=http</literal> 是 "
+"<literal>HttpInvoker</literal> MBean 的缺省名称,下面是它的服务描述符片段: "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:413
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<!-- The HTTP invoker service configuration -->\n"
"<mbean code=\"org.jboss.invocation.http.server.HttpInvoker\"\n"
@@ -1487,40 +1652,40 @@
" <attribute name=\"UseHostName\">true</attribute>\n"
"</mbean>"
msgstr ""
-"<!-- Expose the SRP service interface via HTTP -->\n"
-"<mbean code=\"org.jboss.invocation.http.server.HttpProxyFactory\"\n"
-" name=\"jboss.security.tests:service=SRP/HTTP\">\n"
-" <attribute name=\"InvokerURL\">http://localhost:8080/invoker/"
-"JMXInvokerServlet</attribute>\n"
-" <attribute name=\"InvokerName\">jboss.security.tests:"
-"service=SRPService</attribute>\n"
-" <attribute name=\"ExportedInterface\">\n"
-" org.jboss.security.srp.SRPRemoteServerInterface\n"
-" </attribute>\n"
-" <attribute name=\"JndiName\">srp-test-http/SRPServerInterface</"
-"attribute>\n"
+"<!-- The HTTP invoker service configuration -->\n"
+"<mbean code=\"org.jboss.invocation.http.server.HttpInvoker\"\n"
+" name=\"jboss:service=invoker,type=http\">\n"
+" <!-- Use a URL of the form http://<hostname>:8080/invoker/"
+"EJBInvokerServlet\n"
+" where <hostname> is InetAddress.getHostname value on which "
+"the server\n"
+" is running. -->\n"
+" <attribute name=\"InvokerURLPrefix\">http://</attribute>\n"
+" <attribute name=\"InvokerURLSuffix\">:8080/invoker/"
+"EJBInvokerServlet</attribute>\n"
+" <attribute name=\"UseHostName\">true</attribute>\n"
"</mbean>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:414
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The client proxy posts the EJB invocation content to the "
"<literal>EJBInvokerServlet</literal> URL specified in the "
"<literal>HttpInvoker</literal> service configuration."
msgstr ""
-"和 JNDI/HTTP 相关的 <literal>InvokerServlet</literal> 的配置是 "
-"<literal>JMXInvokerServlet</literal>,它定义了:"
+"客户代理把 EJB 调用内容发送给 <literal>HttpInvoker</literal> 服务配置里指定"
+"的 <literal>EJBInvokerServlet</literal> URL。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:420
#, no-c-format
msgid "The HA JRMPInvoker - Clustered RMI/JRMP Transport"
-msgstr "The HA JRMPInvoker - Clustered RMI/JRMP Transport"
+msgstr "HA JRMPInvoker - 群集的 RMI/JRMP 传输"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:421
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The <literal>org.jboss.invocation.jrmp.server.JRMPInvokerHA</literal> "
"service is an extension of the <literal>JRMPInvoker</literal> that is a "
@@ -1531,31 +1696,29 @@
"clustering architecture and the implementation of the HA RMI proxies see the "
"JBoss Clustering docs."
msgstr ""
-"<literal>org.jboss.proxy.generic.ProxyFactoryHA</literal> 服务是 cluster-"
-"aware factory <literal>ProxyFactoryHA</literal> 的一个扩展。"
-"<literal>ProxyFactoryHA</literal> 完全支持 <literal>JRMPProxyFactory</"
-"literal> 的所有属性。这意味着对端口,接口和套接字传输的自定义绑定,对于群集"
-"的 RMI/JRMP 也是可用的。此外,下面的与群集相关的属性也被支持:"
+"<literal>org.jboss.invocation.jrmp.server.JRMPInvokerHA</literal> 服务是可检"
+"测群集的 <literal>JRMPInvoker</literal> 的扩展。<literal>JRMPInvokerHA</"
+"literal> 完全支持<literal>JRMPInvoker</literal> 的所有属性。这表示自定义的端"
+"口綁定、接口和套接字传输都对于群集的 RMI/JRMP 可用。关于群集架构和 HA RMI 代"
+"理实现的其他信息,请参考相关的 JBoss 群集的文档。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:427
#, no-c-format
msgid "The HA HttpInvoker - Clustered RMI/HTTP Transport"
-msgstr "The HA HttpInvoker - Clustered RMI/HTTP Transport"
+msgstr "HA HttpInvoker - 群集的 RMI/HTTP 传输"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:428
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The RMI/HTTP layer allows for software load balancing of the invocations in "
"a clustered environment. An HA capable extension of the HTTP invoker has "
"been added that borrows much of its functionality from the HA-RMI/JRMP "
"clustering."
msgstr ""
-"RMI/HTTP 层允许群集环境里的调用的负载平衡。HTTP 调用者的具备 HA 能力的扩展借"
-"用了 HA-RMI/JRMP 群集里的大部分功能。要启用 HA-RMI/HTTP,你需要配置 EJB 容器"
-"的调用者。这可以通过 <literal>jboss.xml</literal> 描述符或 "
-"<literal>standardjboss.xml</literal> 描述符来完成。"
+"RMI/HTTP 层允许群集环境里的调用的负载平衡。添加的 HTTP 调用者的具备 HA 能力的"
+"扩展借用了 HA-RMI/JRMP 群集里的大部分功能。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:431
@@ -1569,16 +1732,22 @@
"of a stateless session configuration taken from the <literal>org.jboss.test."
"hello</literal> testsuite package."
msgstr ""
+"要启用 HA-RMI/HTTP,你需要配置 EJB 容器的调用者。这可以通过 <literal>jboss."
+"xml</literal> 或 <literal>standardjboss.xml</literal> 描述符来实现。<xref "
+"linkend=\"The_HA_HttpInvoker___Clustered_RMIHTTP_Transport-A_jboss."
+"xml_stateless_session_configuration_for_HA_RMIHTTP\"/> 展示了 <literal>org."
+"jboss.test.hello</literal> testsuite 软件包里的一个 stateless session 配置的"
+"例子。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:434
#, no-c-format
msgid "A jboss.xml stateless session configuration for HA-RMI/HTTP"
-msgstr ""
+msgstr "jboss.xml 关于使用 HA-RMI/HTTP 的 stateless session 的配置 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:435
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<jboss>\n"
" <enterprise-beans>\n"
@@ -1632,67 +1801,55 @@
"</jboss>"
msgstr ""
"<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>"
+" <enterprise-beans>\n"
+" <session>\n"
+" <ejb-name>HelloWorldViaClusteredHTTP</ejb-name>\n"
+" <jndi-name>helloworld/HelloHA-HTTP</jndi-name>\n"
+" <invoker-bindings>\n"
+" <invoker>\n"
+" <invoker-proxy-binding-name>\n"
+" stateless-httpHA-invoker\n"
+" </invoker-proxy-binding-name>\n"
+" </invoker>\n"
+" </invoker-bindings>\n"
+" <clustered>true</clustered>\n"
+" </session>\n"
+" </enterprise-beans>\n"
+" <invoker-proxy-bindings>\n"
+" <invoker-proxy-binding>\n"
+" <name>stateless-httpHA-invoker</name>\n"
+" <invoker-mbean>jboss:service=invoker,type=httpHA</"
+"invoker-mbean>\n"
+" <proxy-factory>org.jboss.proxy.ejb.ProxyFactoryHA</"
+"proxy-factory>\n"
+" <proxy-factory-config>\n"
+" <client-interceptors>\n"
+" <home>\n"
+" <interceptor>org.jboss.proxy.ejb."
+"HomeInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"TransactionInterceptor</interceptor>\n"
+" <interceptor>org.jboss.invocation."
+"InvokerInterceptor</interceptor>\n"
+" </home>\n"
+" <bean>\n"
+" <interceptor>\n"
+" org.jboss.proxy.ejb.StatelessSessionInterceptor\n"
+" </interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"TransactionInterceptor</interceptor>\n"
+" <interceptor>org.jboss.invocation."
+"InvokerInterceptor</interceptor>\n"
+" </bean>\n"
+" </client-interceptors>\n"
+" </proxy-factory-config>\n"
+" </invoker-proxy-binding>\n"
+" </invoker-proxy-bindings>\n"
+"</jboss>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:436
@@ -1702,6 +1859,9 @@
"references the <literal>jboss:service=invoker,type=httpHA</literal> invoker "
"service. This service would be configured as shown below."
msgstr ""
+"<literal>stateless-httpHA-invoker</literal> invoker-proxy-binding 引用 "
+"<literal>jboss:service=invoker,type=httpHA</literal> 调用者服务。这个服务将依"
+"如下进行配置。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:439
@@ -1721,6 +1881,19 @@
" <attribute name=\"UseHostName\">true</attribute>\n"
"</mbean>"
msgstr ""
+"<mbean code=\"org.jboss.invocation.http.server.HttpInvokerHA\"\n"
+" name=\"jboss:service=invoker,type=httpHA\">\n"
+" <!-- Use a URL of the form\n"
+" http://<hostname>:8080/invoker/EJBInvokerHAServlet\n"
+" where <hostname> is InetAddress.getHostname value on which "
+"the server\n"
+" is running.\n"
+" -->\n"
+" <attribute name=\"InvokerURLPrefix\">http://</attribute>\n"
+" <attribute name=\"InvokerURLSuffix\">:8080/invoker/"
+"EJBInvokerHAServlet</attribute>\n"
+" <attribute name=\"UseHostName\">true</attribute>\n"
+"</mbean>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:440
@@ -1732,12 +1905,15 @@
"collection of candidate http URLs that are made available to the client side "
"proxy for failover and/or load balancing."
msgstr ""
+"调用者代理所使用的 URL 是部署在群集节点上的 <literal>EJBInvokerHAServlet</"
+"literal> 映射。跨群集的 <literal>HttpInvokerHA</literal> 实例组成了一个候选 "
+"http URL 的集合,可用于客户端代理的失效切换和/或负载平衡。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:448
#, no-c-format
msgid "The EJB Container"
-msgstr ""
+msgstr "EJB 容器 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:449
@@ -1750,12 +1926,16 @@
"literal> and the creation of the container instance is managed by the "
"<literal>EJBDeployer</literal> MBean."
msgstr ""
+"EJB 容器是管理特殊 EJB 类的组件。在 JBoss 里有一个 <literal>org.jboss.ejb."
+"Container</literal> 实例,它为每个部署的 EJB 的唯一配置而创建。初始化的实际对"
+"象是 <literal>Container</literal> 的子类,<literal>EJBDeployer</literal> "
+"MBean 管理对容器实例的创建。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:453
-#, fuzzy, no-c-format
+#, no-c-format
msgid "EJBDeployer MBean"
-msgstr "The SARDeployer MBean"
+msgstr "EJBDeployer MBean "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:454
@@ -1767,6 +1947,9 @@
"the necessary EJB containers, one for each type of EJB. The configurable "
"attributes of the <literal>EJBDeployer</literal> are:"
msgstr ""
+"<literal>org.jboss.ejb.EJBDeployer</literal> MBean 负责 EJB 容器的创建。如果"
+"准备部署 EJB JAR,<literal>EJBDeployer</literal> 将为每个 EJB 类型创建并初始"
+"化一个必需的 EJB 容器。<literal>EJBDeployer</literal> 的可配置属性是: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:459
@@ -1777,6 +1960,9 @@
"in a deployment unit conform to the EJB 2.1 specification. Setting this to "
"true is useful for ensuring your deployments are valid."
msgstr ""
+"<emphasis role=\"bold\">VerifyDeployments</emphasis>:指定是否运行 EJB "
+"verifier 的布尔值标记。 这可以检验部署的 EJB 是否符合 EJB 2.1 规格。将其设置"
+"为 true 对于保证部署的有效性是很有用的。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:464
@@ -1786,6 +1972,8 @@
"the verboseness of any verification failures/warnings that result from the "
"verification process."
msgstr ""
+"<emphasis role=\"bold\">VerifierVerbose</emphasis>:这是一个布尔值,它控制验"
+"证过程中的任何验证失败/警告信息的冗余模式。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:469
@@ -1795,16 +1983,19 @@
"disables strict verification. When strict verification is enable an EJB will "
"deploy only if verifier reports no errors."
msgstr ""
+"<emphasis role=\"bold\">StrictVerifier</emphasis>:启用/禁用严格验证(strict "
+"verification)的布尔值标记。如启用了严格验证,EJB 只有在 verifier 没有报告错"
+"误时才可以部署。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:474
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">CallByValue</emphasis>: a boolean flag that "
"indicates call by value semantics should be used by default."
msgstr ""
-"<emphasis role=\"bold\">DiscoveryDisabled</emphasis> 是一个布尔值标记,它可用"
-"来取消自动恢复多点传送侦听者(multicast listener)的配置。"
+"<emphasis role=\"bold\">CallByValue</emphasis>:这是一个布尔值标记,它指出在"
+"缺省情况下应该使用值调用(call by value)模式。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:479
@@ -1816,6 +2007,9 @@
"Setting this to true is useful for ensuring your deployment descriptors are "
"valid."
msgstr ""
+"<emphasis role=\"bold\">ValidateDTDs</emphasis>:这是一个布尔值标记,它指出 "
+"<literal>ejb-jar.xml</literal> 和 <literal>jboss.xml</literal> 描述符是否针对"
+"其声明的 DTD 进行校验。设置为 true 对于保证部署描述符的有效性很有用处。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:484
@@ -1828,17 +2022,20 @@
"configuration that includes metrics type interceptors that can be toggled on "
"and off."
msgstr ""
+"<emphasis role=\"bold\">MetricsEnabled</emphasis>:这是一个布尔值标记,它控制"
+"标记为 <literal>metricsEnabled=true</literal> 的容器拦截器是否应该包括在配置"
+"里。这允许你定义一个包括可打开和关闭的 metrice type 拦截器的容器拦截器配置。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:489
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">WebServiceName</emphasis>: The JMX ObjectName string "
"of the web service MBean that provides support for the dynamic class loading "
"of EJB classes."
msgstr ""
-"<emphasis role=\"bold\">PartitionObjectName</emphasis>:与代理关联的群集服务"
-"的 JMX <literal>ObjectName</literal>。"
+"<emphasis role=\"bold\">WebServiceName</emphasis>:提供对 EJB 类的动态类加载"
+"支持的 web 服务器 MBean 的 JMX ObjectName 字符串。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:494
@@ -1849,6 +2046,10 @@
"attribute named <literal>TransactionManager</literal> that returns that "
"<literal>javax.transaction.TransactionManager</literal> instance."
msgstr ""
+"<emphasis role=\"bold\">TransactionManagerServiceName</emphasis>:JTA 事务管"
+"理者服务的 JMX ObjectName 字符串。它必须有一个名为 "
+"<literal>TransactionManager</literal> 且返回<literal>javax.transaction."
+"TransactionManager</literal> 实例的属性。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:499
@@ -1864,6 +2065,11 @@
"interface classes, and will reload any changed classes. This will allow you "
"to develop and update EJBs without ever stopping a running server."
msgstr ""
+"部署这包含两个核心方法:deploy 和 undeploy。deploy 方法使用指向 EJB JAR 或结"
+"构和有效 EJB JAR 相同(这便于部署)的目录的 URL。一旦部署已经完成,它可以在同"
+"一 URL 上调用 undeploy 进行卸载。对已部署的 URL 调用 deploy 将导致先卸载、然"
+"后重新部署这个 URL。JBoss 支持对实现和接口类的完全重部署,并将重新加载任何有"
+"改动的类。这允许你开发和更新 EJB 而不需要停止正运行的服务器。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:502
@@ -1875,12 +2081,15 @@
"deployment configuration information. We will talk about each function in "
"the following sections."
msgstr ""
+"在 EJB JAR 的部署过程中,<literal>EJBDeployer</literal> 及其相关联的类执行 3 "
+"个主要功能:验证 EJB、为每个唯一的 EJB 类型创建容器、用部署配置信息初始化容"
+"器。我们将在后续章节里讨论这些功能。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:506
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Verifying EJB deployments"
-msgstr "Farming 部署"
+msgstr "验证 EJB 部署 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:507
@@ -1899,6 +2108,13 @@
"verification stage attempts to catch any errors and fail the deployment with "
"an error that indicates what needs to be corrected."
msgstr ""
+"当 <literal>EJBDeployer</literal> 的 <literal>VerifyDeployments</literal> 属"
+"性为 true 时,部署这将执行对 EJB 的验证。这种验证将检查 EJB 是否符合 EJB 规"
+"格。它验证 EBJB 部署单元是否包含必需的 home 和 remote、local home 和 local 接"
+"口。它也将检查出现在这些接口里的对象的类型是否正确、在实现类里是否具有必需的"
+"方法。既然 EJB 开发者和部署者必须正确执行许多步骤来构建正确的 EJB JAR 文件,"
+"而且容器出错,这种验证就是很有用的行为,缺省将被启用。验证阶段试图捕获任何错"
+"误、停止部署过程并指出需要修改的地方。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:510
@@ -1913,13 +2129,13 @@
"interfaces, deployment descriptors and related objects. See the XDoclet home "
"page, <ulink url=\"http://sourceforge.net/projects/xdoclet\"></ulink> for "
"additional details."
-msgstr ""
+msgstr "可能编写 EJB 时最让人有疑问的是 Bean 实现和其 remote 和 home 接口的脱离,及其部署描述符的配置。我们很容易让这些单独的元素不同步。XDoclet 是可以帮助消除这个问题的一个工具。它允许你在 EJB Bean 的实现类里使用自定义的类 JavaDoc 标记,以生成相关的 Bean 接口、部署描述符和相关的对象。关于其细节,请参考 XDoclet 的主页 <ulink url=\"http://sourceforge.net/projects/xdoclet\"></ulink>。"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:516
#, no-c-format
msgid "Deploying EJBs Into Containers"
-msgstr ""
+msgstr "在容器里部署 EJB "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:517
@@ -1932,6 +2148,10 @@
"<literal>ejb-jar.xml</literal> and <literal>jboss.xml</literal> deployment "
"descriptors. For each EJB in the EJB JAR, the following steps are performed:"
msgstr ""
+"<literal>EJBDeployer</literal> 所扮演的最重要的角色是创建 EJB 容器并把 EJB 部"
+"署在容器里。部署阶段由在 EJB JAR 里迭代 EJB 和根据 <literal>ejb-jar.xml</"
+"literal> 和 <literal>jboss.xml</literal>描述符抽取 bean 类及其元数据组成。对"
+"于 EJB JAR 里的每一个 EJB,都会执行下面的步骤: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:522
@@ -1944,6 +2164,11 @@
"<literal>ClassLoader</literal> is also used to isolate the standard "
"<literal>java:comp</literal> JNDI namespace from other J2EE components."
msgstr ""
+"按照 EJB 的类型(stateless、stateful、BMP entity、CMP entity 或 message "
+"driven)创建 <literal>org.jboss.ejb.Container</literal> 的子类。容器被分配一"
+"个唯一的可加载本地资源的 <literal>ClassLoader</literal>。"
+"<literal>ClassLoader</literal> 的唯一性也被用来区别标准的 <literal>java:"
+"comp</literal> JNDI 命名空间和其他 J2EE 组件。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:527
@@ -1952,12 +2177,14 @@
"Set all container configurable attributes from a merge of the <literal>jboss."
"xml</literal> and <literal>standardjboss.xml</literal> descriptors."
msgstr ""
+"在 <literal>jboss.xml</literal> 和 <literal>standardjboss.xml</literal> 描述"
+"符里设置容器的所有可配置属性。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:532
#, no-c-format
msgid "Create and add the container interceptors as configured for the container."
-msgstr ""
+msgstr "创建和添加为容器配置的拦截器。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:537
@@ -1967,6 +2194,8 @@
"represents a J2EE enterprise application and may contain multiple EJBs and "
"web contexts."
msgstr ""
+"将容器和应用程序对象进行关联。应用程序对象代表 J2EE 企业级应用程序且可能包含"
+"多个 EJB 和 web 上下文。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:542
@@ -1977,12 +2206,15 @@
"EJB fails to deploy, a deployment exception is thrown and the deployment "
"module is failed."
msgstr ""
+"如果所有的 EJB 都成功地进行了部署,应用程序将被启动,且按顺序启动所有容器并"
+"使 EJB 可用于客户。如果任何 EJB 的部署没有成功,部署异常将被抛出且部署模块将"
+"停止。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:548
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Container configuration information"
-msgstr "其他配置选项"
+msgstr "容器配置信息 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:549
@@ -1994,12 +2226,17 @@
"<xref linkend=\"Container_configuration_information-"
"The_jboss_4_0_DTD_elements_related_to_container_configuration.\"/>."
msgstr ""
+"JBoss 用一个符合 <literal>jboss_4_0.dtd</literal> 的 XML 文件具体化了大多数"
+"(如果不是所有)的 EJB 容器的设置。<xref linkend="
+"\"Container_configuration_information-"
+"The_jboss_4_0_DTD_elements_related_to_container_configuration.\"/> 展示了和容"
+"器配置信息相关的 DTD 部分。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:553
#, no-c-format
msgid "The jboss_4_0 DTD elements related to container configuration."
-msgstr ""
+msgstr "和容器配置相关的 jboss_4_0 DTD 元素。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:560
@@ -2018,6 +2255,14 @@
"The following is a sample of <literal>container-configuration</literal> from "
"<literal>standardjboss.xml</literal>."
msgstr ""
+"<literal>container-configuration</literal> 元素及其子元素为 "
+"<literal>container-name</literal> 元素给定的容器类型指定了容器配置设定。每个"
+"配置都指定如缺省的调用者类型、容器拦截器结构、实例缓冲/池及其大小、持久化管理"
+"者、安全性等信息。因为许多信息都要求对 JBoss 容器结构有详细的了解,JBoss 带有"
+"用于 4 个 EJB 类型的标准配置。这个配置文件名是 <literal>standardjboss.xml</"
+"literal>,它位于任何使用 EJB 的配置文件集的 conf 目录下。下面是 "
+"<literal>standardjboss.xml</literal> 里的一个 <literal>container-"
+"configuration</literal> 元素示例。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:563
@@ -2092,6 +2337,74 @@
" <commit-option>B</commit-option>\n"
"</container-configuration>"
msgstr ""
+"<container-configuration>\n"
+" <container-name>Standard CMP 2.x EntityBean</container-"
+"name>\n"
+" <call-logging>false</call-logging>\n"
+" <invoker-proxy-binding-name>entity-rmi-invoker</invoker-proxy-"
+"binding-name>\n"
+" <sync-on-commit-only>false</sync-on-commit-only>\n"
+" <insert-after-ejb-post-create>false</insert-after-ejb-post-"
+"create>\n"
+" <call-ejb-store-on-clean>true</call-ejb-store-on-clean>\n"
+" <container-interceptors>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"ProxyFactoryFinderInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins.LogInterceptor</"
+"interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins.SecurityInterceptor</"
+"interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</"
+"interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"CallValidationInterceptor</interceptor>\n"
+" <interceptor metricsEnabled=\"true\">\n"
+" org.jboss.ejb.plugins.MetricsInterceptor\n"
+" </interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"EntityCreationInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</"
+"interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"EntityInstanceInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"EntityReentranceInterceptor</interceptor>\n"
+" <interceptor>\n"
+" org.jboss.resource.connectionmanager."
+"CachedConnectionInterceptor\n"
+" </interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"EntitySynchronizationInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins.cmp.jdbc."
+"JDBCRelationInterceptor</interceptor>\n"
+" </container-interceptors>\n"
+" <instance-pool>org.jboss.ejb.plugins.EntityInstancePool</"
+"instance-pool>\n"
+" <instance-cache>org.jboss.ejb.plugins."
+"InvalidableEntityInstanceCache</instance-cache>\n"
+" <persistence-manager>org.jboss.ejb.plugins.cmp.jdbc."
+"JDBCStoreManager</persistence-manager>\n"
+" <locking-policy>org.jboss.ejb.plugins.lock."
+"QueuedPessimisticEJBLock</locking-policy>\n"
+" <container-cache-conf>\n"
+" <cache-policy>org.jboss.ejb.plugins."
+"LRUEnterpriseContextCachePolicy</cache-policy>\n"
+" <cache-policy-conf>\n"
+" <min-capacity>50</min-capacity>\n"
+" <max-capacity>1000000</max-capacity>\n"
+" <overager-period>300</overager-period>\n"
+" <max-bean-age>600</max-bean-age>\n"
+" <resizer-period>400</resizer-period>\n"
+" <max-cache-miss-period>60</max-cache-miss-period>\n"
+" <min-cache-miss-period>1</min-cache-miss-period>\n"
+" <cache-load-factor>0.75</cache-load-factor>\n"
+" </cache-policy-conf>\n"
+" </container-cache-conf>\n"
+" <container-pool-conf>\n"
+" <MaximumSize>100</MaximumSize>\n"
+" </container-pool-conf>\n"
+" <commit-option>B</commit-option>\n"
+"</container-configuration>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:564
@@ -2112,6 +2425,14 @@
"them with the standard container configurations to optimize behavior for a "
"particular application or environment."
msgstr ""
+"这两个例子演示了容器配置选项的多样性。容器配置信息可以在两个级别上进行指定。"
+"第一个是在配置文件集目录下的 <literal>standardjboss.xml</literal> 文件里指"
+"定。第二个是在 EJB JAR 级别进行指定。把 <literal>jboss.xml</literal> 文件放"
+"在 EJB JAR 的 <literal>META-INF</literal> 目录下,你可以指定在 "
+"<literal>standardjboss.xml</literal> 文件里覆盖容器配置,或是完全使用新的容器"
+"配置。这为容器配置提供了巨大的灵活性。象你看到的一样,所有的容器配置属性都已"
+"经被扩展也因此易于修改。经验丰富的开发人员甚至可以实现专有的容器组件,如实例"
+"池或缓冲,并轻易地集成标准的容器配置来为特殊的应用程序或环境进行优化。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:567
@@ -2125,6 +2446,11 @@
"to use for the referring EJB. The link is from a <literal>configuration-"
"name</literal> element to a <literal>container-name</literal> element."
msgstr ""
+"EJB 的部署怎样选择其容器配置基于显性的或隐性的 <literal>jboss/enterprise-beans/<type>/"
+"configuration-name</literal> 元素。<literal>configuration-name</"
+"literal> 元素是一个到 <literal>container-configurations/container-"
+"configuration</literal> 元素的链接。它指定使用哪个容器配置来引用 EJB。它是从 <literal>configuration-"
+"name</literal> 到 <literal>container-name</literal> 元素的链接。"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:570
@@ -2145,6 +2471,15 @@
"Stateless SessionBean</literal> configuration that is an extension of the "
"<literal>Standard Stateless SessionBean</literal> configuration."
msgstr ""
+"在 EJB 定义里包括 <literal>container-configuration</literal> 元素,你可以为每"
+"个 EJB 的类指定一个容器配置。虽然定义全新的容器配置是被支持的,但我们通常不这"
+"么做。在 <literal>jboss.xml</literal> 级别定义 <literal>container-"
+"configuration</literal> 的典型做法是覆盖一个或多个取值于 "
+"<literal>standardjboss.xml</literal> 的 <literal>container-configuration</"
+"literal>。这可以通过指定引用现有的 <literal>standardjboss.xml</"
+"literal><literal>container-configuration/container-name</literal> 的 <literal>container-configuration</"
+"literal> 为 <literal>container-configuration/extends</literal> 属性的值来完成。下面的例子显示了定义新的 <literal>Secured "
+"Stateless SessionBean</literal> 配置,它是 <literal>Standard Stateless SessionBean</literal> 的一个扩展。"
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:573
@@ -2172,6 +2507,27 @@
" </container-configurations>\n"
"</jboss>"
msgstr ""
+"<?xml version=\"1.0\"?>\n"
+"<jboss>\n"
+" <enterprise-beans>\n"
+" <session>\n"
+" <ejb-name>EchoBean</ejb-name>\n"
+" <configuration-name>Secured Stateless SessionBean</"
+"configuration-name>\n"
+" <!-- ... -->\n"
+" </session>\n"
+" </enterprise-beans>\n"
+" <container-configurations>\n"
+" <container-configuration extends=\"Standard Stateless SessionBean"
+"\">\n"
+" <container-name>Secured Stateless SessionBean</"
+"container-name>\n"
+" <!-- Override the container security domain -->\n"
+" <security-domain>java:/jaas/my-security-domain</"
+"security-domain>\n"
+" </container-configuration>\n"
+" </container-configurations>\n"
+"</jboss>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:574
@@ -2185,6 +2541,10 @@
"mappings from the EJB type to default container configuration name are as "
"follows:"
msgstr ""
+"如果 EJB 不在 EJB JAR 的部署单元里提供容器配置,容器工厂将从基于 EJB 类型的 "
+"<literal>standardjboss.xml</literal> 描述符里选择一个容器配置。所以,实际上对"
+"于每个类型的 EJB 都有一个隐形的 <literal>configuration-name</literal> 元素,"
+"下面是从 EJB 类型到缺省的容器配置名的对应关系: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:579
@@ -2193,36 +2553,38 @@
"container-managed persistence entity version 2.0 = Standard CMP 2.x "
"EntityBean"
msgstr ""
+"container-managed persistence entity version 2.0 = Standard CMP 2.x "
+"EntityBean"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:584
#, no-c-format
msgid "container-managed persistence entity version 1.1 = Standard CMP EntityBean"
-msgstr ""
+msgstr "container-managed persistence entity version 1.1 = Standard CMP EntityBean"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:589
#, no-c-format
msgid "bean-managed persistence entity = Standard BMP EntityBean"
-msgstr ""
+msgstr "bean-managed persistence entity = Standard BMP EntityBean"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:594
#, no-c-format
msgid "stateless session = Standard Stateless SessionBean"
-msgstr ""
+msgstr "stateless session = Standard Stateless SessionBean"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:599
#, no-c-format
msgid "stateful session = Standard Stateful SessionBean"
-msgstr ""
+msgstr "stateful session = Standard Stateful SessionBean"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:604
#, no-c-format
msgid "message driven = Standard Message Driven Bean"
-msgstr ""
+msgstr "message driven = Standard Message Driven Bean"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:609
@@ -2234,6 +2596,9 @@
"<literal>configuration-name</literal> element, but this is purely a matter "
"of style."
msgstr ""
+"如果要使用基于 Bean 类型的缺省容器配置,你不需要指定该 EJB 使用的容器配置。你"
+"也可以提供一个含有 <literal>configuration-name</literal> 的自包含的(self-"
+"contained)描述符,但这纯粹是使用风格的不同罢了。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:612
@@ -2247,6 +2612,10 @@
"starting in on the configuration elements you need to understand the "
"<literal>org.jboss.metadata.XmlLoadable</literal> interface."
msgstr ""
+"现在你已经知道如何指定 EJB 使用的容器配置,也懂得怎样定义部署单元级别的覆盖"
+"了,在下面的章节里我们将来看看 <literal>container-configuration</literal> 子"
+"元素。许多元素指定的接口的类实现的配置都受其他元素影响,所以在开始配置元素之"
+"前,你需要先理解 <literal>org.jboss.metadata.XmlLoadable</literal> 接口。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:615
@@ -2255,6 +2624,8 @@
"The <literal>XmlLoadable</literal> interface is a simple interface that "
"consists of a single method. The interface definition is:"
msgstr ""
+"<literal>XmlLoadable</literal> 接口是一个由单一方法组成的简单接口。其接口定义"
+"是: "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:618
@@ -2266,6 +2637,11 @@
" public void importXml(Element element) throws Exception;\n"
"}"
msgstr ""
+"import org.w3c.dom.Element;\n"
+"public interface XmlLoadable\n"
+"{\n"
+" public void importXml(Element element) throws Exception;\n"
+"}"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:619
@@ -2277,12 +2653,15 @@
"You will see a few examples of this as the container configuration elements "
"are described in the following sections."
msgstr ""
+"实现这个接口的类的配置可以通过 XML 文档来指定。这个文档的根元素将被传递给 "
+"<literal>importXml</literal> 方法。在后面的章节里讲述容器配置元素时,你将看到"
+"一些这样的例子。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:623
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The container-name element"
-msgstr "Engine 元素"
+msgstr "container-name 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:624
@@ -2293,12 +2672,15 @@
"setting their <literal>configuration-name</literal> element to the value of "
"the <literal>container-name</literal> for the container configuration."
msgstr ""
+"<literal>container-name</literal> 元素指定给定配置的唯一名称。EJB 通过将其 "
+"<literal>configuration-name</literal> 元素设置为 <literal>container-name</"
+"literal> 的值来链接特定的容器配置。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:630
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The call-logging element"
-msgstr "Engine 元素"
+msgstr "call-logging 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:631
@@ -2309,12 +2691,15 @@
"literal> should log method calls to a container. This is somewhat obsolete "
"with the change to log4j, which provides a fine-grained logging API."
msgstr ""
+"<literal>call-logging</literal> 元素的值为布尔值(true 或 false),它指定 "
+"<literal>LogInterceptor</literal> 是否应该为对容器的调用记录日志。这多少有点"
+"过时,因为 log4j 提供了细颗粒度的 API。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:637
#, no-c-format
msgid "The invoker-proxy-binding-name element"
-msgstr ""
+msgstr "invoker-proxy-binding-name 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:638
@@ -2327,12 +2712,16 @@
"binding-name</literal> element value will be used to create home and remote "
"proxies."
msgstr ""
+"<literal>invoker-proxy-binding-name</literal> 元素指定所使用的缺省调用者的名"
+"称。在缺乏 bean 级别的 <literal>invoker-bindings</literal> 规格时,其名称符"
+"合 <literal>invoker-proxy-binding-name</literal> 元素的值的 <literal>invoker-"
+"proxy-binding</literal> 将用来创建 home 和 remote 代理。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:644
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The sync-on-commit-only element"
-msgstr "Connector 元素"
+msgstr "sync-on-commit-only 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:645
@@ -2343,12 +2732,15 @@
"of all the beans in a transaction would need to be synchronized when an "
"finder method is called or when an remove method is called, for example."
msgstr ""
+"这是关于性能优化的配置,它使 Entity Bean 的状态仅在提交时才和数据库进行同步。"
+"而通常当 finder 方法或 remove 方法被调用时,事务里的所有 Bean 的状态都需要进"
+"行同步,例如: "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:651
#, no-c-format
msgid "insert-after-ejb-post-create"
-msgstr ""
+msgstr "insert-after-ejb-post-create"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:652
@@ -2360,13 +2752,13 @@
"fields as well as CMR fields to be set in a single insert, instead of the "
"default insert followed by an update, which allows removes the requirement "
"for relation ship fields to allow null values."
-msgstr ""
+msgstr "这是另外一个 Bean 优化,它导致插入新的 entity bean 的数据库 insert 命令在 <literal>ejbPostCreate</literal> 方法被调用后才被执行。这允许普通的 CMP 字段以及 CMR 字段可以在单个 insert 语句里进行设置,而不需要在缺省的 insert 语句后再加上 update,从而去除对关系字段的需要而允许空值。"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:658
#, no-c-format
msgid "call-ejb-store-on-clean"
-msgstr ""
+msgstr "call-ejb-store-on-clean"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:659
@@ -2377,12 +2769,15 @@
"the instance was not modified in the transaction. Setting this to false will "
"cause JBoss to only call <literal>ejbStore</literal> for dirty objects."
msgstr ""
+"这个参数要求容器在提交事务时调用 Entity Bean 实例的 <literal>ejbStore</"
+"literal> 方法,即使该实例在事务里并没有改变。把它设置为 false 将使 JBoss 只"
+"对 dirty 对象调用 <literal>ejbStore</literal>。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:665
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The container-interceptors Element"
-msgstr "Connector 元素"
+msgstr "container-interceptors 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:666
@@ -2403,12 +2798,20 @@
"contract regarding security, transactions, persistence, and thread safety "
"derive from the interceptors."
msgstr ""
+"<literal>container-interceptors</literal> 元素指定一个或多个配置为容器的方法"
+"拦截器链的拦截器。拦截器元素的值是 <literal>org.jboss.ejb.Interceptor</"
+"literal> 接口实现的全限定类名。容器拦截器组成了一个允许 EJB 方法调用的 "
+"<literal>linked-list</literal> 结构。当 <literal>MBeanServer</literal> 往容器"
+"传递一个方法调用时,这个链里的第一个拦截器被启用。最后一个拦截器调用 Bean 上"
+"的商业方法。在本章的后面谈及容器插件框架时,我们将讨论 <literal>Interceptor</"
+"literal> 接口。通常,修改现有的标准 EJB 拦截器配置时你得小心行事,因为 EJB 是"
+"涉及安全性、事务、持久性和源于拦截器的线程安全的规格。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:672
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The instance-pool element"
-msgstr "Engine 元素"
+msgstr "instance-pool 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:673
@@ -2420,12 +2823,15 @@
"will discuss the InstancePool interface in detail latter in this chapter "
"when we talk about the container plugin framework."
msgstr ""
+"<literal>instance-pool</literal> 元素指定了用作容器的 <literal>InstancePool</"
+"literal> 的 <literal>org.jboss.ejb.InstancePool</literal> 接口实现的全限定类"
+"名。在本章后面谈及容器插件框架时,我们将讨论 InstancePool 接口的细节。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:679
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The container-pool-conf element"
-msgstr "Connector 元素"
+msgstr "container-pool-conf 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:680
@@ -2440,12 +2846,19 @@
"support for elements shown in <xref linkend="
"\"The_container_pool_conf_element-The_container_pool_conf_element_DTD\"/>."
msgstr ""
+"如果 <literal>instance-pool</literal> 元素指定的 <literal>InstancePool</"
+"literal> 实现类也实现了 <literal>XmlLoadable</literal> 接口,"
+"<literal>container-pool-conf</literal> 将被传递给它。目前所有的 JBoss "
+"<literal>InstancePool</literal> 实现都源于 <literal>org.jboss.ejb.plugins."
+"AbstractInstancePool</literal>,它提供对 <xref linkend="
+"\"The_container_pool_conf_element-The_container_pool_conf_element_DTD\"/> 里"
+"出现的元素的支持。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:684
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The container-pool-conf element DTD"
-msgstr "Connector 元素"
+msgstr "container-pool-conf 元素 DTD "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:693
@@ -2456,6 +2869,9 @@
"although JBoss does not currently seed an <literal>InstancePool</literal> to "
"the <literal>MinimumSize</literal> value."
msgstr ""
+"<emphasis role=\"bold\">MinimumSize</emphasis>:<literal>MinimumSize</"
+"literal> 元素指定保留在实例池里的实例的最小数目。但 JBoss 目前并不把 "
+"<literal>InstancePool</literal> 的大小设置为 <literal>MinimumSize</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:698
@@ -2469,6 +2885,11 @@
"if the number of concurrent requests exceeds the <literal>MaximumSize</"
"literal> value."
msgstr ""
+"<emphasis role=\"bold\">MaximumSize</emphasis>:<literal>MaximumSize</"
+"literal> 指定了实例池里允许的实例的最大数目。对 <literal>MaximumSize</"
+"literal> 的缺省使用可能并非你所期望的。<literal>MaximumSize</literal> 是可用"
+"的 EJB 实例的最大数目,但如果当前的并行请求超过了 <literal>MaximumSize</"
+"literal> 的值,其他实例还会被创建。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:703
@@ -2483,6 +2904,13 @@
"will be blocked until an instance is freed back to the pool. The default "
"value for <literal>strictMaximumSize</literal> is false."
msgstr ""
+"<emphasis role=\"bold\">strictMaximumSize</emphasis>:如果你想限制实例池里的 "
+"EJB 的最大并行数目为 <literal>MaximumSize</literal>,你需要设置 "
+"<literal>strictMaximumSize</literal> 元素为 true。当 "
+"<literal>strictMaximumSize</literal> 元素为 true 时,活动的 EJB 实例的最大数"
+"目为 <literal>MaximumSize</literal>。当已经有 <literal>MaximumSize</literal> "
+"个活动实例时,任何后来的请求都将被阻塞,直至有实例被释放。"
+"<literal>strictMaximumSize</literal> 的缺省值为 false。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:708
@@ -2500,12 +2928,19 @@
"9,223,372,036,854,775,807 or about 292,471,208 years, and this is the "
"default value."
msgstr ""
+"<emphasis role=\"bold\">strictTimeout</emphasis>:<literal>strictTimeout</"
+"literal> 元素控制请求等待实例池里的空闲对象所阻塞的时间。"
+"<literal>strictTimeout</literal> 定义在有 <literal>MaximumSize</literal> 个活"
+"动实例时,等待实例返回实例池的时间(毫秒)。小于或等于 0 的值表示不进行等待。"
+"当请求超时时将产生一个 <literal>java.rmi.ServerException</literal> 实例并终止"
+"调用。它的类型为 <literal>Long</literal>,所以最大可能的等待时间是 "
+"9,223,372,036,854,775,807 或 292,471,208 年,且这是缺省值。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:716
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The instance-cache element"
-msgstr "Engine 元素"
+msgstr "instance-cache 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:717
@@ -2519,12 +2954,16 @@
"detail latter in this chapter when we talk about the container plugin "
"framework."
msgstr ""
+"<literal>instance-cache</literal> 元素指定 <literal>org.jboss.ejb."
+"InstanceCache</literal> 实例接口的全限定名。这个元素仅对于 Entity 和 "
+"Stateful Session Bean 有意义,因为这种 EJB 类型才有相关联的标识。在本章后面谈"
+"及容器插件框架时我们将详细讨论 <literal>InstanceCache</literal> 接口。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:723
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The container-cache-conf element"
-msgstr "Connector 元素"
+msgstr "container-cache-conf 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:724
@@ -2544,6 +2983,15 @@
"interface. If it does not, the <literal>cache-policy-conf</literal> will "
"silently be ignored."
msgstr ""
+"如果 <literal>InstanceCache</literal> 实现支持 <literal>XmlLoadable</"
+"literal> 接口,<literal>container-cache-conf</literal> 元素将被传递给它。目前"
+"所有的 JBoss <literal>InstanceCache</literal> 实现都源自为 "
+"<literal>XmlLoadable</literal> 接口提供支持的 <literal>org.jboss.ejb.plugins."
+"AbstractInstanceCache</literal> 类,且使用 <literal>cache-policy</literal> 子"
+"元素作为用作实例缓存库的 <literal>org.jboss.util.CachePolicy</literal> 实现的"
+"全限定名。如果 <literal>CachePolicy</literal> 实现支持 <literal>XmlLoadable</"
+"literal> 接口,<literal>cache-policy-conf</literal> 子元素将被传递给它。如果"
+"不支持,<literal>cache-policy-conf</literal> 将被忽略。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:727
@@ -2561,33 +3009,40 @@
"<xref linkend=\"The_container_cache_conf_element-"
"The_container_cache_conf_element_DTD\"/>."
msgstr ""
+"<literal>standardjboss.xml</literal> 配置使用两个支持 <literal>cache-policy-"
+"conf</literal> 子元素数组的 CachePolicy 的 JBoss 实现。它们是 <literal>org."
+"jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</literal> 和 <literal>org."
+"jboss.ejb.plugins.LRUStatefulContextCachePolicy</literal>。Entity Bean 使用容"
+"器使用 <literal>LRUEnterpriseContextCachePolicy</literal>,而 Stateful "
+"Session Bean 容器使用 <literal>LRUStatefulContextCachePolicy</literal>。如 "
+"<xref linkend=\"The_container_cache_conf_element-"
+"The_container_cache_conf_element_DTD\"/> 里所示,这两个缓冲策略都支持下列的 "
+"<literal>cache-policy-conf</literal> 子元素。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:731
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The container-cache-conf element DTD"
-msgstr "Connector 元素"
+msgstr "container-cache-conf 元素 DTD "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:740
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">min-capacity</emphasis>: specifies the minimum "
"capacity of this cache"
-msgstr ""
-"<emphasis role=\"bold\">ip_ttl</emphasis> 指定了多点传送数据包(packet)的 "
-"TTL。"
+msgstr "<emphasis role=\"bold\">min-capacity</emphasis>:指定这个缓存的最小值。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:745
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">max-capacity</emphasis>: specifies the maximum "
"capacity of the cache, which cannot be less than <literal>min-capacity</"
"literal>."
msgstr ""
-"<emphasis role=\"bold\">mcast_port</emphasis> 指定多点传送端口号码。它的缺省"
-"值是 <literal>45566</literal>。"
+"<emphasis role=\"bold\">max-capacity</emphasis>:指定这个缓存的最大值,这个值"
+"不能小于 <literal>min-capacity</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:750
@@ -2599,17 +3054,21 @@
"<literal>max-bean-age</literal> element value. Any beans meeting this "
"criterion will be passivated."
msgstr ""
+"<emphasis role=\"bold\">overager-period</emphasis>:指定运行 overager 任务的"
+"时间间隔(单位为秒)。运行 overager 任务的目的是查看缓存里是否包含运行时间超"
+"过 <literal>max-bean-age</literal> 元素指定的值的 bean。满足这个条件的任何 "
+"bean 都将被钝化(passivate)。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:755
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">max-bean-age</emphasis>: specifies the maximum "
"period of inactivity in seconds a bean can have before it will be passivated "
"by the overager process."
msgstr ""
-"<emphasis role=\"bold\">timeout</emphasis> 指定对 are-you-alive 信息的应答的"
-"最长等待时间(毫秒数)。"
+"<emphasis role=\"bold\">max-bean-age</emphasis>:指定 bean 在被 overager 进程"
+"钝化之前处于不活动状态的最长时间。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:760
@@ -2626,6 +3085,13 @@
"misses is greater than the <literal>max-cache-miss-period</literal> value "
"the cache is contracted using the <literal>cache-load-factor</literal>."
msgstr ""
+"<emphasis role=\"bold\">resizer-period</emphasis>:指定运行 resizer 任务的时"
+"间间隔。resizer 任务的目的是基于剩下的 3 个元素的值来缩小或扩充缓存能力。当 "
+"resizer 任务运行时,它会检查当前缓存丢失的时间间隔,如果这个间隔小于 "
+"<literal>min-cache-miss-period</literal> 值,缓存将用 <literal>cache-load-"
+"factor</literal> 扩充为 <literal>max-capacity</literal>。而如果缓存丢失的间隔"
+"大于 <literal>max-cache-miss-period</literal> 的值,缓存将用 <literal>cache-"
+"load-factor</literal> 缩小。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:765
@@ -2636,6 +3102,8 @@
"capacity be contracted. It is equivalent to the minimum miss rate that will "
"be tolerated before the cache is contracted."
msgstr ""
+"<emphasis role=\"bold\">max-cache-miss-period</emphasis>:指定缓存丢失应该指"
+"示缩小缓存能力的时间间隔(秒)。它和缓存缩小前能忍受的最小丢失率是相等的。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:770
@@ -2646,6 +3114,8 @@
"capacity be expanded. It is equivalent to the maximum miss rate that will be "
"tolerated before the cache is expanded."
msgstr ""
+"<emphasis role=\"bold\">min-cache-miss-period</emphasis>:指定缓存丢失应该指"
+"示扩充缓存能力的时间间隔(秒)。它和缓存扩充前能忍受的最大丢失率是相等的。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:775
@@ -2661,14 +3131,20 @@
"the number of cache misses. The higher the cache miss rate the closer the "
"true expansion factor will be to 2."
msgstr ""
+"<emphasis role=\"bold\">cache-load-factor</emphasis>:指定缓存能力缩小或扩充"
+"使用的因子。这个因子应该小于 1。当缓存被缩小时,其缓存能力相应降低,所以当前 "
+"bean 和缓存能力的比例等于 cache-load-factor 的值。当缓存被扩充时,其新的容量"
+"由 <literal>current-capacity * 1/cache-load-factor</literal> 决定。根据基于缓"
+"存丢失的数量的内部算法,实际的扩充因子可能高达 2。缓存丢失率越高,实际的扩充"
+"因子越接近 2。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:780
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The <literal>LRUStatefulContextCachePolicy</literal> also supports the "
"remaining child elements:"
-msgstr "<literal>run</literal> 脚本支持下列选项:"
+msgstr "<literal>LRUStatefulContextCachePolicy</literal> 也支持余下的子元素: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:785
@@ -2680,17 +3156,21 @@
"life</literal> seconds. This task prevents stateful session beans that were "
"not removed by users from filling up the passivation store."
msgstr ""
+"<emphasis role=\"bold\">remover-period</emphasis>:指定运行 remover 任务的时"
+"间间隔。remover 任务删除已经超过 <literal>max-bean-life</literal> 秒没有被访"
+"问的钝化的 bean。这个任务阻止用户未删除的 stateful session bean 来填充钝化库"
+"(passivation store)。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:790
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">max-bean-life</emphasis>: specifies the maximum "
"period in seconds that a bean can exist inactive. After this period, as a "
"result, the bean will be removed from the passivation store."
msgstr ""
"<emphasis role=\"bold\">timeout</emphasis> 指定对 are-you-alive 信息的应答的"
-"最长等待时间(毫秒数)。"
+"最长等待时间(毫秒数)。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:795
@@ -2703,12 +3183,16 @@
"removed. This class does not support any of the <literal>cache-policy-conf</"
"literal> configuration elements."
msgstr ""
+"另外一个缓存策略的实现是 <literal>org.jboss.ejb.plugins."
+"NoPassivationCachePolicy</literal> 类,它从不钝化实例。它使用内存里的一个 "
+"<literal>HashMap</literal> 实现,除非被显性地删除,这个实现从不丢弃实例。这个"
+"类不支持任何 <literal>cache-policy-conf</literal> 配置元素。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:801
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The persistence-manager element"
-msgstr "Connector 元素"
+msgstr "persistence-manager 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:802
@@ -2724,12 +3208,18 @@
"must be an implementation of the <literal>org.jboss.ejb."
"EntityPersistenceStore</literal> interface."
msgstr ""
+"<literal>persistence-manager</literal> 元素的值指定持久化管理者实现的全限定类"
+"名。这个实现的类型依赖于 EJB 的类型。对于 stateful session bean 来说,它必须"
+"实现 <literal>org.jboss.ejb.StatefulSessionPersistenceManager</literal> 接"
+"口;对于 BMP entity bean 而言,它必须实现 <literal>org.jboss.ejb."
+"EntityPersistenceManager</literal> 接口;而对于 CMP entity bean,它则必须实"
+"现 <literal>org.jboss.ejb.EntityPersistenceStore</literal> 接口。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:808
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The web-class-loader Element"
-msgstr "Valve 元素"
+msgstr "web-class-loader 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:809
@@ -2745,6 +3235,13 @@
"to return a different set of URLs for remote loading than what is used for "
"local loading."
msgstr ""
+"<literal>web-class-loader</literal> 元素指定 <literal>org.jboss.web."
+"WebClassLoader</literal> 的子类,它和 <literal>WebService</literal> MBean 一"
+"起来允许对所部署的 EAR、WAR 里的资源和类进行动态加载。"
+"<literal>WebClassLoader</literal> 和 <literal>Container</literal> 相关联且必"
+"须以 <literal>org.jboss.mx.loading.UnifiedClassLoader</literal> 为父类。对于"
+"远程加载,它覆盖用于本地加载的 <literal>getURLs()</literal> 方法来返回不同的 "
+"URL 的集合。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:812
@@ -2756,6 +3253,9 @@
"subclasses with bytecode generation ability, such as the classloader used by "
"the iiop module."
msgstr ""
+"<literal>WebClaossLoader</literal> 有两个应该被覆盖的子类方法:"
+"<literal>getKey()</literal> 和 <literal>getBytes()</literal>。后者在本实现是"
+"空的且应该被带有字节码生成能力的子类所覆盖,如 iiop 模块使用的类加载器。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:815
@@ -2765,12 +3265,15 @@
"the same signature as the <literal>WebClassLoader(ObjectName containerName, "
"UnifiedClassLoader parent)</literal> constructor."
msgstr ""
+"<literal>WebClassLoader</literal> 子类必须有一个构造函数,且原型和 "
+"<literal>WebClassLoader(ObjectName containerName, UnifiedClassLoader parent)"
+"</literal> 构造函数相同。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:821
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The locking-policy element"
-msgstr "Engine 元素"
+msgstr "locking-policy 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:822
@@ -2781,6 +3284,9 @@
"the <literal>org.jboss.ejb.BeanLock</literal> interface. The current JBoss "
"versions include:"
msgstr ""
+"<literal>locking-policy</literal> 元素指定使用的 EJB lock 实现的权限定类名。"
+"这个类必须实现 <literal>org.jboss.ejb.BeanLock</literal> 接口。目前的 JBoss "
+"版本包括: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:827
@@ -2794,6 +3300,11 @@
"associated with that transaction. The <literal>QueuedPessimisticEJBLock</"
"literal> is the current default used by the standard configurations."
msgstr ""
+"<emphasis role=\"bold\">org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</"
+"emphasis>:在普通 FIFO 队列里持有等待事务性锁释放的线程的实现。非事务性的线程"
+"也会放入这个等待队列。这个类从队列里提出下一个等待事务并通知那些和此事务相关"
+"联的线程。<literal>QueuedPessimisticEJBLock</literal> 是标准配置使用的当前缺"
+"省值。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:832
@@ -2804,6 +3315,9 @@
"<literal>QueuedPessimisticEJBLock</literal> except that deadlock detection "
"is disabled."
msgstr ""
+"<emphasis role=\"bold\">org.jboss.ejb.plugins.lock."
+"QueuedPessimisticEJBLockNoADE</emphasis>:和 "
+"<literal>QueuedPessimisticEJBLock</literal> 相同,除了禁用了死锁检测功能。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:837
@@ -2819,6 +3333,8 @@
"promoting, we throw an inconsistent read exception. Of course, writers have "
"to wait for all read-locks to release before taking the write lock."
msgstr ""
+"<emphasis role=\"bold\">org.jboss.ejb.plugins.lock.SimpleReadWriteEJBLock</"
+"emphasis>:这个锁允许多个并行的读锁。一旦写入者已经请求了锁,之后的读锁请求将阻塞至所有写入者已经完成;然后所有的等待读取者将并发地进行(取决于重入设置/方法锁)。提升的读取者在其他等待的写入者前首先获得写锁。如果已经有一个读取者获得提升,非一致的读异常将被抛出。当然,写入者在获得写锁前需要等待所有的读锁被释放。"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:842
@@ -2828,6 +3344,8 @@
"anti-locking policy used with the instance per transaction container "
"configurations."
msgstr ""
+"<emphasis role=\"bold\">org.jboss.ejb.plugins.lock.NoLock</emphasis>:和每个"
+"事务容器配置的实例一起使用的 anti-locking 策略。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:847
@@ -2836,24 +3354,26 @@
"Locking and deadlock detection will be discussed in more detail in <xref "
"linkend=\"EJBs_on_JBoss-Entity_Bean_Locking_and_Deadlock_Detection\"/>."
msgstr ""
+"锁定和死锁检测的细节将在 <xref linkend=\"EJBs_on_JBoss-"
+"Entity_Bean_Locking_and_Deadlock_Detection\"/> 里讨论。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:853
#, no-c-format
msgid "The commit-option and optiond-refresh-rate elements"
-msgstr ""
+msgstr "commit-option 和 optiond-refresh-rate 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:854
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The commit-option value specifies the EJB entity bean persistent storage "
"commit option. It must be one of <literal>A</literal>, <literal>B</literal>, "
"<literal>C</literal> or <literal>D</literal>."
msgstr ""
-"<literal>ServiceController</literal> MBean有四个用于服务生命周期管理的关键方"
-"法:<literal>create</literal>,<literal>start</literal>,<literal>stop</"
-"literal> 和 <literal>destroy</literal>。"
+"commit-option 值指定 EJB entity bean 持久性存储(persistent storage)的提交选"
+"项。它必须是 <literal>A</literal>、 <literal>B</literal>、<literal>C</"
+"literal> 或 <literal>D</literal> 中的一个。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:859
@@ -2868,6 +3388,11 @@
"another business method. This behavior is independent of whether the "
"business method executes inside a transaction context."
msgstr ""
+"<emphasis role=\"bold\">A</emphasis>:容器缓存事务间的 bean 状态。这个选项假"
+"定容器是访问持久性存储的唯一用户。这允许容器只在绝对必要时才将内存里的状态和"
+"持久性存储进行同步。这发生在 bean 的第一个商业方法执行前或在这个 bean 被钝化"
+"和重新激活来执行另外一个商业方法后。这种行为和商业方法是否在事务上下文内执行"
+"无关。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:864
@@ -2883,6 +3408,11 @@
"(transaction attributes Never, NotSupported or Supports) access the cached "
"(and potentially invalid) state of the bean."
msgstr ""
+"<emphasis role=\"bold\">B</emphasis>:容器缓存事务间的 bean 的状态。然而,不"
+"象 <literal>A</literal>,容器并不假定对持久性存储的独占访问。因此,容器将在每"
+"个事务开始时同步内存里的状态。在事务上下文里执行的商业方法并不能从容器缓存中"
+"受益,而在事务上下文外部(事务属性为 Never、NotSupported 或 Supports)执行的"
+"商业方法则可以访问缓存的 bean 的状态(可能是无效的)。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:869
@@ -2894,6 +3424,9 @@
"synchronization is still performed, but the <literal>ejbLoad</literal> "
"executes in the same transaction context as that of the caller."
msgstr ""
+"<emphasis role=\"bold\">C</emphasis>:容器不缓存 bean 实例。内存状态必须在每"
+"次事务开始时进行同步。对于在事务外部执行的商业方法,同步仍然会执行,但 "
+"<literal>ejbLoad</literal> 方法将在和调用者相同的事务上下文里执行。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:874
@@ -2906,12 +3439,16 @@
"persistent store. The default time between reloads is 30 seconds, but may "
"configured using the <literal>optiond-refresh-rate</literal> element."
msgstr ""
+"<emphasis role=\"bold\">D</emphasis>:这是一个 JBoss 所专有的、EJB 规格未描述"
+"的提交选项。它是一个 lazy 的读模式,和选项 <literal>A</literal> 一样,bean 状"
+"态在事务间缓存,但状态定期地和持久性存储进行重新同步。缺省的重载时间间隔是 "
+"30 秒,但通常使用 <literal>optiond-refresh-rate</literal> 元素进行配置。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:882
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The security-domain element"
-msgstr "Connector 元素"
+msgstr "security-domain 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:883
@@ -2928,12 +3465,18 @@
"configuring the security layer are discussed in <xref linkend="
"\"Security_on_JBoss\"/>."
msgstr ""
+"<literal>security-domain</literal> 元素指定实现 <literal>org.jboss.security."
+"AuthenticationManager</literal> 和 <literal>org.jboss.security.RealmMapping</"
+"literal> 接口的对象的 JNDI 名称。更典型的做法是指定 <literal>jboss</literal> "
+"根元素下的 <literal>security-domain</literal>,这样给定部署里所有 EJB 都以相"
+"同的方式来设置安全性。然而,你也可以为每个 bean 配置指定安全域。安全性管理者"
+"接口和配置安全层的细节将在 <xref linkend=\"Security_on_JBoss\"/> 里进行讨论。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:889
-#, fuzzy, no-c-format
+#, no-c-format
msgid "cluster-config"
-msgstr "群集"
+msgstr "cluster-config "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:890
@@ -2944,12 +3487,14 @@
"Specification of the cluster configuration may be done at the container "
"configuration level or at the individual EJB deployment level."
msgstr ""
+"<literal>cluster-config</literal> 元素允许你为所有使用容器配置的 EJB 指定群集"
+"专有的设置。群集配置既可以在容器配置级别也可以在 EJB 部署级别进行指定。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:894
#, no-c-format
msgid "The cluster-config and related elements"
-msgstr ""
+msgstr "cluster-config 和相关的元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:903
@@ -2967,6 +3512,14 @@
"the partition-name value. The default value is <literal>DefaultPartition</"
"literal>."
msgstr ""
+"<emphasis role=\"bold\">partition-name</emphasis>:<literal>partition-name</"
+"literal> 元素指出在何处寻找容器使用的 <literal>org.jboss.ha.framework."
+"interfaces.HAPartition</literal> 接口来交换群集信息。它不是 "
+"<literal>HAPartition</literal> 綁定的完整的 JNDI 名称。它应该对应管理相应群集"
+"的 <literal>ClusterPartitionMBean</literal> 服务的 <literal>PartitionName</"
+"literal> 属性。<literal>HAPartition</literal> 綁定的实际 JNDI 名称由在 "
+"partition-name 值后附加 <literal>/HASessionState/</literal> 组成。它的缺省值"
+"是 <literal>DefaultPartition</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:908
@@ -2979,6 +3532,11 @@
"literal> interface. The default policy is <literal>org.jboss.ha.framework."
"interfaces.RoundRobin</literal>."
msgstr ""
+"<emphasis role=\"bold\">home-load-balance-policy</emphasis>:<literal>home-"
+"load-balance-policy</literal> 元素指出在 home 代理上平衡调用负载的 Java 类"
+"名。这个类必须实现 <literal>org.jboss.ha.framework.interface."
+"LoadBalancePolicy</literal> 接口。缺省的策略是 <literal>org.jboss.ha."
+"framework.interfaces.RoundRobin</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:913
@@ -2993,6 +3551,13 @@
"stateless session beans, <literal>org.jboss.ha.framework.interfaces."
"RoundRobin</literal>."
msgstr ""
+"<emphasis role=\"bold\">bean-load-balance-policy</emphasis>:<literal>bean-"
+"load-balance-policy</literal> 元素指出在 bean 代理里平衡调用负载的 Java 类"
+"名。这个类必须实现 <literal>org.jboss.ha.framework.interface."
+"LoadBalancePolicy</literal> 接口。对于 entity bean 和 stateful session bean "
+"来说,缺省值是 <literal>org.jboss.ha.framework.interfaces.FirstAvailavble</"
+"literal>。对于 stateless session bean 而言则是 <literal>org.jboss.ha."
+"framework.interfaces.RoundRobin</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:918
@@ -3007,12 +3572,18 @@
"bound. The default location used is <literal>/HASessionState/Default</"
"literal>."
msgstr ""
+"<emphasis role=\"bold\">session-state-manager-jndi-name</emphasis>:"
+"<literal>session-state-manager-jndi-name</literal> 元素指出在群集里被容器用作"
+"状态会话管理后端的 <literal>org.jboss.ha.framework.interfaces."
+"HASessionState</literal> 的名称。和 partition-name 元素不一样,这是 "
+"<literal>HASessionState</literal> 实现綁定的 JNDI 名称。它所使用的缺省位置是 "
+"<literal>/HASessionState/Default</literal>。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:926
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The depends element"
-msgstr "Host 元素"
+msgstr "depends 元素 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:927
@@ -3023,12 +3594,15 @@
"of explicit dependencies on other services avoids having to rely on the "
"deployment order being after the required services are started."
msgstr ""
+"<literal>depends</literal> 元素给出容器或 EJB 所依赖的服务的 JMX "
+"<literal>ObjectName</literal>。显性地指定对其他服务的依赖性避免了在所需服务启"
+"动后对部署顺序的依赖。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:937
#, no-c-format
msgid "Container Plug-in Framework"
-msgstr ""
+msgstr "容器插件框架 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:938
@@ -3045,16 +3619,22 @@
"subclasses of the <literal>org.jboss.ejb.Container</literal> class, each one "
"implementing a particular bean type:"
msgstr ""
+"JBoss 的 EJB 容器使用一个允许你修改容器行为的各个方面的框架模式。除了将不同的"
+"行为组件(behavioral component)连接在一起,容器自身不执行任何其他重要任务。"
+"行为组件的实现被成为插件,因为你可以通过修改容器配置来插入一个新的实现。你可"
+"以修改的插件行为的例子包括持久性管理、对象池、对象缓存、容器调用者和拦截器。"
+"<literal>org.jboss.ejb.Container</literal> 类有 4 个子类,每个都实现特定的 "
+"bean 类型: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:943
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">org.jboss.ejb.EntityContainer</emphasis>: handles "
"<literal>javax.ejb.EntityBean</literal> types"
msgstr ""
-"<emphasis role=\"bold\">file:/var/opt/myapp.ear</emphasis>从本地位置部署"
-"<literal>myapp.ear</literal>"
+"<emphasis role=\"bold\">org.jboss.ejb.EntityContainer</emphasis>:处理 "
+"<literal>javax.ejb.EntityBean</literal> 类型 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:948
@@ -3063,6 +3643,8 @@
"<emphasis role=\"bold\">org.jboss.ejb.StatelessSessionContainer</emphasis>: "
"handles Stateless <literal>javax.ejb.SessionBean</literal> types"
msgstr ""
+"<emphasis role=\"bold\">org.jboss.ejb.StatelessSessionContainer</emphasis>:"
+"处理 Stateless <literal>javax.ejb.SessionBean</literal> 类型 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:953
@@ -3071,6 +3653,8 @@
"<emphasis role=\"bold\">org.jboss.ejb.StatefulSessionContainer</emphasis>: "
"handles Stateful <literal>javax.ejb.SessionBean</literal> types"
msgstr ""
+"<emphasis role=\"bold\">org.jboss.ejb.StatefulSessionContainer</emphasis>:处"
+"理 Stateful <literal>javax.ejb.SessionBean</literal> 类型 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:958
@@ -3079,6 +3663,8 @@
"<emphasis role=\"bold\">org.jboss.ejb.MessageDrivenContainer</emphasis> "
"handles <literal>javax.ejb.MessageDrivenBean</literal> types"
msgstr ""
+"<emphasis role=\"bold\">org.jboss.ejb.MessageDrivenContainer</emphasis>:处"
+"理 <literal>javax.ejb.MessageDrivenBean</literal> 类型 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:963
@@ -3087,55 +3673,55 @@
"The EJB containers delegate much of their behavior to components known as "
"container plug-ins. The interfaces that make up the container plugin points "
"include the following:"
-msgstr ""
+msgstr "EJB 容器把大部分的行为都委托给成为容器插件的组件。组成容器插件点的接口包括: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:968
#, no-c-format
msgid "<para>org.jboss.ejb.ContainerPlugin</para>"
-msgstr ""
+msgstr "<para>org.jboss.ejb.ContainerPlugin</para> "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:973
#, no-c-format
msgid "org.jboss.ejb.ContainerInvoker"
-msgstr ""
+msgstr "org.jboss.ejb.ContainerInvoker"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:978
#, no-c-format
msgid "<para>org.jboss.ejb.Interceptor</para>"
-msgstr ""
+msgstr "<para>org.jboss.ejb.Interceptor</para>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:983
#, no-c-format
msgid "<para>org.jboss.ejb.InstancePool</para>"
-msgstr ""
+msgstr "<para>org.jboss.ejb.InstancePool</para>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:988
#, no-c-format
msgid "org.jboss.ejb.InstanceCache"
-msgstr ""
+msgstr "org.jboss.ejb.InstanceCache"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:993
-#, fuzzy, no-c-format
+#, no-c-format
msgid "org.jboss.ejb.EntityPersistanceManager"
-msgstr "org.jboss.mx.interceptor.PersistenceInterceptor"
+msgstr "org.jboss.ejb.EntityPersistanceManager"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:998
-#, fuzzy, no-c-format
+#, no-c-format
msgid "org.jboss.ejb.EntityPersistanceStore"
-msgstr "org.jboss.mx.interceptor.PersistenceInterceptor"
+msgstr "org.jboss.ejb.EntityPersistanceStore"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1003
#, no-c-format
msgid "<para>org.jboss.ejb.StatefulSessionPersistenceManager</para>"
-msgstr ""
+msgstr "<para>org.jboss.ejb.StatefulSessionPersistenceManager</para>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1008
@@ -3144,13 +3730,13 @@
"The container's main responsibility is to manage its plug-ins. This "
"means ensuring that the plug-ins have all the information they need to "
"implement their functionality."
-msgstr ""
+msgstr "容器的主要职责是管理它的插件。这意味着保证插件具有所需的信息来实现其功能。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1012
#, no-c-format
msgid "<title>org.jboss.ejb.ContainerPlugin</title>"
-msgstr ""
+msgstr "<title>org.jboss.ejb.ContainerPlugin</title> "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1013
@@ -3162,12 +3748,15 @@
"plug-in is working on behalf of. The <literal>ContainerPlugin</literal> "
"interface is given below."
msgstr ""
+"<literal>ContainerPlugin</literal> 接口是所有容器插件接口的父接口。它提供一个"
+"回调函数,允许容器为每个插件提供一个到其代表的容器的指针。下面就是 "
+"<literal>ContainerPlugin</literal> 接口。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1016
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The org.jboss.ejb.ContainerPlugin interface"
-msgstr "The org.jboss.naming.NamingContextFactory"
+msgstr "org.jboss.ejb.ContainerPlugin 接口 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1017
@@ -3185,12 +3774,23 @@
" public void setContainer(Container con);\n"
"}"
msgstr ""
+"public interface ContainerPlugin\n"
+" extends Service, AllowedOperationsFlags\n"
+"{\n"
+" /** co\n"
+" * This callback is set by the container so that the plugin\n"
+" * may access its container\n"
+" *\n"
+" * @param con the container which owns the plugin\n"
+" */\n"
+" public void setContainer(Container con);\n"
+"}"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1022
#, no-c-format
msgid "<title>org.jboss.ejb.Interceptor</title>"
-msgstr ""
+msgstr "<title>org.jboss.ejb.Interceptor</title>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1023
@@ -3200,12 +3800,14 @@
"method interceptors through which each EJB method invocation must pass. The "
"<literal>Interceptor</literal> interface is given below."
msgstr ""
+"<literal>Interceptor</literal> 接口使你可以构建一个每个 EJB 调用都必须通过的"
+"方法拦截器链。下面是 <literal>Interceptor</literal> 接口。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1026
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The org.jboss.ejb.Interceptor interface"
-msgstr "org.jboss.mx.interceptor.PersistenceInterceptor"
+msgstr "org.jboss.ejb.Interceptor 接口 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1027
@@ -3222,6 +3824,16 @@
" public Object invoke(Invocation mi) throws Exception;\n"
"}"
msgstr ""
+"import org.jboss.invocation.Invocation;\n"
+" \n"
+"public interface Interceptor \n"
+" extends ContainerPlugin\n"
+"{\n"
+" public void setNext(Interceptor interceptor);\n"
+" public Interceptor getNext();\n"
+" public Object invokeHome(Invocation mi) throws Exception;\n"
+" public Object invoke(Invocation mi) throws Exception;\n"
+"}"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1028
@@ -3233,6 +3845,9 @@
"the container itself because this is the interceptor that interacts with the "
"EJB bean implementation."
msgstr ""
+"容器配置里定义的所有拦截器都通过 <literal>EJBDeployer</literal> 被创建和添加"
+"到容器拦截器链里。容器自己而不是部署者添加最后面的拦截器,因为这是和 EJB "
+"bean 实现进行交互的拦截器。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1031
@@ -3243,6 +3858,9 @@
"<literal>EnterpriseContext</literal> instance are positioned before "
"interceptors that interact with caches and pools."
msgstr ""
+"拦截器链里的顺序很重要。这个顺序所隐含的意思就是:未綁定到特定 "
+"<literal>EnterpriseContext</literal> 实例的拦截器将排在和缓存和池交互的拦截器"
+"的前面。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1034
@@ -3259,6 +3877,13 @@
"<literal>LoggingInterceptor</literal>, while a complex example is "
"<literal>EntitySynchronizationInterceptor</literal>."
msgstr ""
+"<literal>Interceptor</literal> 接口的实现组成了一个象 <literal>Invocation</"
+"literal> 对象通过的结构一样的链表。当调用者通过 JMX 总线向容器传递 "
+"<literal>Invocation</literal> 时,链里的第一个拦截器将被调用。最后的拦截器则"
+"调用 Bean 里的商业方法。Bean 类型和容器配置决定了链里的 5 个拦截器的顺序。"
+"<literal>Interceptor</literal> 的语义复杂度由简单到复杂不等。"
+"<literal>LoggingInterceptor</literal> 是简单拦截器的一个例子,而复杂拦截器的"
+"一个例子是 <literal>EntitySynchronizationInterceptor</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1037
@@ -3271,6 +3896,9 @@
"<literal>TXInterceptor</literal> and <literal>SecurityInterceptor</literal> "
"respectively."
msgstr ""
+"拦截器模式的一个主要优点是分配拦截器的灵活性。另外一个优势是不同拦截器之间的"
+"功能划分很清楚。例如,<literal>TXInterceptor</literal> 和 "
+"<literal>SecurityInterceptor</literal> 分别负责事务和安全性逻辑。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1040
@@ -3282,12 +3910,15 @@
"<literal>SecurityInterceptor</literal> before any transactions are started "
"or instances caches are updated."
msgstr ""
+"如果任何拦截器调用失败了,整个调用就会被终止。这是一种 fail-quickly 类型的模"
+"式。例如,如果没有权限却去访问一个设置了安全性的 EJB,在任何事务启动或实例缓"
+"存更新之前,调用将在访问 <literal>SecurityInterceptor</literal> 时失败。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1046
#, no-c-format
msgid "<title>org.jboss.ejb.InstancePool</title>"
-msgstr ""
+msgstr "<title>org.jboss.ejb.InstancePool</title>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1047
@@ -3298,12 +3929,15 @@
"of the <literal>org.jboss.ejb.EnterpriseContext</literal> objects that "
"aggregate unassociated bean instances and related data."
msgstr ""
+"<literal>InstancePool</literal> 被用来管理不和任何标识关联的 EJB 实例。这个池"
+"实际上管理聚合不相关的 Bean 实例和相关数据的 <literal>org.jboss.ejb."
+"EnterpriseContext</literal> 对象的子类。"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1050
#, no-c-format
msgid "The org.jboss.ejb.InstancePool interface"
-msgstr ""
+msgstr "org.jboss.ejb.InstancePool 接口 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1051
@@ -3351,6 +3985,47 @@
" public int getMaxSize();\n"
"}"
msgstr ""
+"public interface InstancePool\n"
+" extends ContainerPlugin\n"
+"{\n"
+" /** \n"
+" * Get an instance without identity. Can be used\n"
+" * by finders and create-methods, or stateless beans\n"
+" *\n"
+" * @return Context /w instance\n"
+" * @exception RemoteException\n"
+" */\n"
+" public EnterpriseContext get() throws Exception;\n"
+" \n"
+" /** Return an anonymous instance after invocation.\n"
+" *\n"
+" * @param ctx\n"
+" */\n"
+" public void free(EnterpriseContext ctx);\n"
+" \n"
+" /**\n"
+" * Discard an anonymous instance after invocation.\n"
+" * This is called if the instance should not be reused,\n"
+" * perhaps due to some exception being thrown from it.\n"
+" *\n"
+" * @param ctx\n"
+" */\n"
+" public void discard(EnterpriseContext ctx);\n"
+" \n"
+" /**\n"
+" * Return the size of the pool.\n"
+" *\n"
+" * @return the size of the pool.\n"
+" */\n"
+" public int getCurrentSize();\n"
+" \n"
+" /**\n"
+" * Get the maximum size of the pool.\n"
+" *\n"
+" * @return the size of the pool.\n"
+" */\n"
+" public int getMaxSize();\n"
+"}"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1052
@@ -3360,6 +4035,8 @@
"size of the pool contain recycled instances, or it may choose to instantiate "
"and initialize an instance on demand."
msgstr ""
+"根据配置的不同,容器可以选择用一个一定大小的池来容纳回收的实例,或者选择按照"
+"需要来实例化和初始化实例。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1055
@@ -3370,12 +4047,14 @@
"acquire instances to be used for Home interface methods (create and finder "
"calls)."
msgstr ""
+"<literal>InstanceCache</literal> 实现使用这个池来获取空闲的实例,它也被拦截器"
+"用来获取用于 Home 接口方法(create 和 finder 调用)的实例。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1061
#, no-c-format
msgid "org.jboss.ebj.InstanceCache"
-msgstr ""
+msgstr "org.jboss.ebj.InstanceCache"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1062
@@ -3388,12 +4067,16 @@
"invocations. The cache key of an entity bean is the bean primary key. The "
"cache key for a stateful session bean is the session id."
msgstr ""
+"容器的 <literal>InstanceCache</literal> 实现处理所有处于活动状态的 EJB 实例,"
+"以及具有附在其上的标识的 bean 实例。只有 Entity Bean 和 Stateful Session "
+"Bean 才会被缓存,因为它们在方法调用间才具有状态。Entity Bean 的缓存检是 Bean "
+"的主键。Stateful session bean 的缓存键则是其 Session ID。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1065
#, no-c-format
msgid "The org.jboss.ejb.InstanceCache interface"
-msgstr ""
+msgstr "org.jboss.ejb.InstanceCache 接口 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1066
@@ -3459,6 +4142,65 @@
" public boolean isActive(Object id); \n"
"}"
msgstr ""
+"public interface InstanceCache \n"
+" extends ContainerPlugin\n"
+"{\n"
+" /**\n"
+" * Gets a bean instance from this cache given the identity.\n"
+" * This method may involve activation if the instance is not\n"
+" * in the cache.\n"
+" * Implementation should have O(1) complexity.\n"
+" * This method is never called for stateless session beans.\n"
+" *\n"
+" * @param id the primary key of the bean\n"
+" * @return the EnterpriseContext related to the given id\n"
+" * @exception RemoteException in case of illegal calls\n"
+" * (concurrent / reentrant), NoSuchObjectException if\n"
+" * the bean cannot be found.\n"
+" * @see #release\n"
+" */\n"
+" public EnterpriseContext get(Object id)\n"
+" throws RemoteException, NoSuchObjectException;\n"
+" \n"
+" /**\n"
+" * Inserts an active bean instance after creation or activation.\n"
+" * Implementation should guarantee proper locking and O(1) complexity.\n"
+" *\n"
+" * @param ctx the EnterpriseContext to insert in the cache\n"
+" * @see #remove\n"
+" */\n"
+" public void insert(EnterpriseContext ctx);\n"
+" \n"
+" /**\n"
+" * Releases the given bean instance from this cache.\n"
+" * This method may passivate the bean to get it out of the cache.\n"
+" * Implementation should return almost immediately leaving the\n"
+" * passivation to be executed by another thread.\n"
+" *\n"
+" * @param ctx the EnterpriseContext to release\n"
+" * @see #get\n"
+" */\n"
+" public void release(EnterpriseContext ctx);\n"
+" \n"
+" /**\n"
+" * Removes a bean instance from this cache given the identity.\n"
+" * Implementation should have O(1) complexity and guarantee\n"
+" * proper locking.\n"
+" *\n"
+" * @param id the primary key of the bean\n"
+" * @see #insert\n"
+" */\n"
+" public void remove(Object id);\n"
+" \n"
+" /**\n"
+" * Checks whether an instance corresponding to a particular\n"
+" * id is active\n"
+" *\n"
+" * @param id the primary key of the bean\n"
+" * @see #insert\n"
+" */\n"
+" public boolean isActive(Object id); \n"
+"}"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1067
@@ -3474,12 +4216,18 @@
"must call the persistence manager to passivate it and release the instance "
"to the <literal>InstancePool</literal>."
msgstr ""
+"除了管理活动实例的列表,<literal>InstanceCache</literal> 也负责激活和钝化实"
+"例。如果具有给定标识的实例被请求,且它目前不处于活动状态,"
+"<literal>InstanceCache</literal> 必须使用 <literal>InstancePool</literal> 来"
+"获取一个空闲实例,然后持久化管理者会激活这个实例。类似地,如果 "
+"<literal>InstanceCache</literal> 决定钝化一个活动实例,它必须调用持久化管理者"
+"来钝化它并将其放入到 <literal>InstancePool</literal>。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1073
-#, fuzzy, no-c-format
+#, no-c-format
msgid "org.jboss.ejb.EntityPersistenceManager"
-msgstr "org.jboss.mx.interceptor.PersistenceInterceptor"
+msgstr "org.jboss.ejb.EntityPersistenceManager"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1074
@@ -3488,48 +4236,50 @@
"The <literal>EntityPersistenceManager</literal> is responsible for the "
"persistence of EntityBeans. This includes the following:"
msgstr ""
+"<literal>EntityPersistenceManager</literal> 负责 Entity Bean 的持久化。这包"
+"括: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1079
#, no-c-format
msgid "Creating an EJB instance in a storage"
-msgstr ""
+msgstr "在存储里创建一个 EJB 实例 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1084
#, no-c-format
msgid "Loading the state of a given primary key into an EJB instance"
-msgstr ""
+msgstr "把给定主键的状态载入 EJB 实例 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1089
#, no-c-format
msgid "Storing the state of a given EJB instance"
-msgstr ""
+msgstr "存储给定 EJB 实例的状态 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1094
#, no-c-format
msgid "Removing an EJB instance from storage"
-msgstr ""
+msgstr "从存储里删除 EJB 实例 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1099
#, no-c-format
msgid "Activating the state of an EJB instance"
-msgstr ""
+msgstr "激活 EJB 实例 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1104
#, no-c-format
msgid "Passivating the state of an EJB instance"
-msgstr ""
+msgstr "钝化 EJB 实例 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1109
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The org.jboss.ejb.EntityPersistenceManager interface"
-msgstr "org.jboss.mx.interceptor.PersistenceInterceptor"
+msgstr "org.jboss.ejb.EntityPersistenceManager 实例 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1110
@@ -3693,12 +4443,169 @@
" throws RemoteException, RemoveException;\n"
"}"
msgstr ""
+"public interface EntityPersistenceManager \n"
+" extends ContainerPlugin\n"
+"{\n"
+" /**\n"
+" * Returns a new instance of the bean class or a subclass of the\n"
+" * bean class.\n"
+" *\n"
+" * @return the new instance\n"
+" */\n"
+" Object createBeanClassInstance() throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called whenever an entity is to be created. The\n"
+" * persistence manager is responsible for calling the ejbCreate method\n"
+" * on the instance and to handle the results properly wrt the "
+"persistent\n"
+" * store.\n"
+" *\n"
+" * @param m the create method in the home interface that was\n"
+" * called\n"
+" * @param args any create parameters\n"
+" * @param instance the instance being used for this create call\n"
+" */\n"
+" void createEntity(Method m,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called whenever an entity is to be created. The\n"
+" * persistence manager is responsible for calling the ejbPostCreate "
+"method\n"
+" * on the instance and to handle the results properly wrt the "
+"persistent\n"
+" * store.\n"
+" *\n"
+" * @param m the create method in the home interface that was\n"
+" * called\n"
+" * @param args any create parameters\n"
+" * @param instance the instance being used for this create call\n"
+" */\n"
+" void postCreateEntity(Method m,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when single entities are to be found. The\n"
+" * persistence manager must find out whether the wanted instance is\n"
+" * available in the persistence store, and if so it shall use the\n"
+" * ContainerInvoker plugin to create an EJBObject to the instance, "
+"which\n"
+" * is to be returned as result.\n"
+" *\n"
+" * @param finderMethod the find method in the home interface that was\n"
+" * called\n"
+" * @param args any finder parameters\n"
+" * @param instance the instance to use for the finder call\n"
+" * @return an EJBObject representing the found entity\n"
+" */\n"
+" Object findEntity(Method finderMethod,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when collections of entities are to be\n"
+" * found. The persistence manager must find out whether the wanted\n"
+" * instances are available in the persistence store, and if so it\n"
+" * shall use the ContainerInvoker plugin to create EJBObjects to\n"
+" * the instances, which are to be returned as result.\n"
+" *\n"
+" * @param finderMethod the find method in the home interface that was\n"
+" * called\n"
+" * @param args any finder parameters\n"
+" * @param instance the instance to use for the finder call\n"
+" * @return an EJBObject collection representing the found\n"
+" * entities\n"
+" */\n"
+" Collection findEntities(Method finderMethod,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when an entity shall be activated. The\n"
+" * persistence manager must call the ejbActivate method on the\n"
+" * instance.\n"
+" *\n"
+" * @param instance the instance to use for the activation\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" */\n"
+" void activateEntity(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called whenever an entity shall be load from the\n"
+" * underlying storage. The persistence manager must load the state\n"
+" * from the underlying storage and then call ejbLoad on the\n"
+" * supplied instance.\n"
+" *\n"
+" * @param instance the instance to synchronize\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" */\n"
+" void loadEntity(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is used to determine if an entity should be stored.\n"
+" *\n"
+" * @param instance the instance to check\n"
+" * @return true, if the entity has been modified\n"
+" * @throws Exception thrown if some system exception occurs\n"
+" */\n"
+" boolean isModified(EntityEnterpriseContext instance) throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called whenever an entity shall be stored to the\n"
+" * underlying storage. The persistence manager must call ejbStore\n"
+" * on the supplied instance and then store the state to the\n"
+" * underlying storage.\n"
+" *\n"
+" * @param instance the instance to synchronize\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" */\n"
+" void storeEntity(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called when an entity shall be passivate. The\n"
+" * persistence manager must call the ejbPassivate method on the\n"
+" * instance.\n"
+" *\n"
+" * @param instance the instance to passivate\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" */\n"
+" void passivateEntity(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called when an entity shall be removed from the\n"
+" * underlying storage. The persistence manager must call ejbRemove\n"
+" * on the instance and then remove its state from the underlying\n"
+" * storage.\n"
+" *\n"
+" * @param instance the instance to remove\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" * @throws RemoveException thrown if the instance could not be removed\n"
+" */\n"
+" void removeEntity(EntityEnterpriseContext instance)\n"
+" throws RemoteException, RemoveException;\n"
+"}"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1115
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The org.jboss.ejb.EntityPersistenceStore interface"
-msgstr "org.jboss.mx.interceptor.PersistenceInterceptor"
+msgstr "org.jboss.ejb.EntityPersistenceStore 实例 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1116
@@ -3712,12 +4619,17 @@
"the entry point for the CMP2 persistence engine. The "
"<literal>EntityPersistanceStore</literal> interface is shown below."
msgstr ""
+"根据 EJB 2.1 规格,JBoss 支持两个 Entity Bean 的持久化模式:container "
+"managed persistence (CMP) 和 bean managed persistence (BMP)。CMP 使用 "
+"<literal>org.jboss.ejb.EntityPersistanceStore</literal> 接口的实现。缺省来说 "
+"<literal>org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager</literal> 是 CMP2 持"
+"久化引擎的入口。下面是 <literal>EntityPersistanceStore</literal> 接口。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1119
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The org.jboss.ejb.EntityPersistanceStore interface"
-msgstr "org.jboss.mx.interceptor.PersistenceInterceptor"
+msgstr "org.jboss.ejb.EntityPersistanceStore 接口 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1120
@@ -3890,6 +4802,172 @@
" throws RemoteException, RemoveException;\n"
"}"
msgstr ""
+"public interface EntityPersistenceStore \n"
+" extends ContainerPlugin\n"
+"{\n"
+" /**\n"
+" * Returns a new instance of the bean class or a subclass of the\n"
+" * bean class.\n"
+" *\n"
+" * @return the new instance\n"
+" *\n"
+" * @throws Exception\n"
+" */\n"
+" Object createBeanClassInstance() \n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * Initializes the instance context.\n"
+" *\n"
+" * <p>This method is called before createEntity, and should\n"
+" * reset the value of all cmpFields to 0 or null.\n"
+" *\n"
+" * @param ctx\n"
+" *\n"
+" * @throws RemoteException\n"
+" */\n"
+" void initEntity(EntityEnterpriseContext ctx);\n"
+" \n"
+" /**\n"
+" * This method is called whenever an entity is to be created. The\n"
+" * persistence manager is responsible for handling the results\n"
+" * properly wrt the persistent store.\n"
+" *\n"
+" * @param m the create method in the home interface that was\n"
+" * called\n"
+" * @param args any create parameters\n"
+" * @param instance the instance being used for this create call\n"
+" * @return The primary key computed by CMP PM or null for BMP\n"
+" *\n"
+" * @throws Exception\n"
+" */\n"
+" Object createEntity(Method m,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when single entities are to be found. The\n"
+" * persistence manager must find out whether the wanted instance\n"
+" * is available in the persistence store, if so it returns the\n"
+" * primary key of the object.\n"
+" *\n"
+" * @param finderMethod the find method in the home interface that was\n"
+" * called\n"
+" * @param args any finder parameters\n"
+" * @param instance the instance to use for the finder call\n"
+" * @return a primary key representing the found entity\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" * @throws FinderException thrown if some heuristic problem occurs\n"
+" */\n"
+" Object findEntity(Method finderMethod,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when collections of entities are to be\n"
+" * found. The persistence manager must find out whether the wanted\n"
+" * instances are available in the persistence store, and if so it\n"
+" * must return a collection of primaryKeys.\n"
+" *\n"
+" * @param finderMethod the find method in the home interface that was\n"
+" * called\n"
+" * @param args any finder parameters\n"
+" * @param instance the instance to use for the finder call\n"
+" * @return an primary key collection representing the found\n"
+" * entities\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" * @throws FinderException thrown if some heuristic problem occurs\n"
+" */\n"
+" Collection findEntities(Method finderMethod,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when an entity shall be activated.\n"
+" *\n"
+" * <p>With the PersistenceManager factorization most EJB\n"
+" * calls should not exists However this calls permits us to\n"
+" * introduce optimizations in the persistence store. Particularly\n"
+" * the context has a \"PersistenceContext\" that a PersistenceStore\n"
+" * can use (JAWS does for smart updates) and this is as good a\n"
+" * callback as any other to set it up.\n"
+" * @param instance the instance to use for the activation\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" */\n"
+" void activateEntity(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called whenever an entity shall be load from the\n"
+" * underlying storage. The persistence manager must load the state\n"
+" * from the underlying storage and then call ejbLoad on the\n"
+" * supplied instance.\n"
+" *\n"
+" * @param instance the instance to synchronize\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" */\n"
+" void loadEntity(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is used to determine if an entity should be stored.\n"
+" *\n"
+" * @param instance the instance to check\n"
+" * @return true, if the entity has been modified\n"
+" * @throws Exception thrown if some system exception occurs\n"
+" */\n"
+" boolean isModified(EntityEnterpriseContext instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called whenever an entity shall be stored to the\n"
+" * underlying storage. The persistence manager must call ejbStore\n"
+" * on the supplied instance and then store the state to the\n"
+" * underlying storage.\n"
+" *\n"
+" * @param instance the instance to synchronize\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" */\n"
+" void storeEntity(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called when an entity shall be passivate. The\n"
+" * persistence manager must call the ejbPassivate method on the\n"
+" * instance.\n"
+" *\n"
+" * <p>See the activate discussion for the reason for\n"
+" * exposing EJB callback * calls to the store.\n"
+" *\n"
+" * @param instance the instance to passivate\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" */\n"
+" void passivateEntity(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called when an entity shall be removed from the\n"
+" * underlying storage. The persistence manager must call ejbRemove\n"
+" * on the instance and then remove its state from the underlying\n"
+" * storage.\n"
+" *\n"
+" * @param instance the instance to remove\n"
+" *\n"
+" * @throws RemoteException thrown if some system exception occurs\n"
+" * @throws RemoveException thrown if the instance could not be removed\n"
+" */\n"
+" void removeEntity(EntityEnterpriseContext instance)\n"
+" throws RemoteException, RemoveException;\n"
+"}"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1121
@@ -3901,12 +4979,16 @@
"logic is in the entity bean itself. The only duty of the persistence manager "
"is to perform container callbacks."
msgstr ""
+"<literal>EntityPersistenceManager</literal> 接口的缺省 BMP 实现是 "
+"<literal>org.jboss.ejb.plugins.BMPPersistenceManager</literal>。既然所有的持"
+"久化逻辑都在 Entity Bean 里,BMP 持久化管理者就相当的简单。它的唯一职责就是执"
+"行容器回调函数。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1127
#, no-c-format
msgid "<title>org.jboss.ejb.StatefulSessionPersistenceManager</title>"
-msgstr ""
+msgstr "<title>org.jboss.ejb.StatefulSessionPersistenceManager</title>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1128
@@ -3916,30 +4998,32 @@
"the persistence of stateful <literal>SessionBeans</literal>. This includes "
"the following:"
msgstr ""
+"<literal>StatefulSessionPersistenceManager</literal> 负责 stateful "
+"<literal>SessionBeans</literal> 的持久化。这包括: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1133
#, no-c-format
msgid "Creating stateful sessions in a storage"
-msgstr ""
+msgstr "在存储里创建 stateful session "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1138
#, no-c-format
msgid "Activating stateful sessions from a storage"
-msgstr ""
+msgstr "激活存储里的 stateful session "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1143
#, no-c-format
msgid "Passivating stateful sessions to a storage"
-msgstr ""
+msgstr "把 stateful session 钝化至存储里 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1148
#, no-c-format
msgid "Removing stateful sessions from a storage"
-msgstr ""
+msgstr "从存储里删除 stateful session "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1153
@@ -3947,13 +5031,13 @@
msgid ""
"The <literal>StatefulSessionPersistenceManager</literal> interface is shown "
"below."
-msgstr ""
+msgstr "下面展示的是 <literal>StatefulSessionPersistenceManager</literal> 接口。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1156
#, no-c-format
msgid "The org.jboss.ejb.StatefulSessionPersistenceManager interface"
-msgstr ""
+msgstr "org.jboss.ejb.StatefulSessionPersistenceManager 接口 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1157
@@ -3978,6 +5062,24 @@
" public void removePassivated(Object key);\n"
"}"
msgstr ""
+"public interface StatefulSessionPersistenceManager \n"
+" extends ContainerPlugin\n"
+"{\n"
+" public void createSession(Method m, Object[] args,\n"
+" StatefulSessionEnterpriseContext ctx)\n"
+" throws Exception;\n"
+" \n"
+" public void activateSession(StatefulSessionEnterpriseContext ctx)\n"
+" throws RemoteException;\n"
+" \n"
+" public void passivateSession(StatefulSessionEnterpriseContext ctx)\n"
+" throws RemoteException;\n"
+" \n"
+" public void removeSession(StatefulSessionEnterpriseContext ctx)\n"
+" throws RemoteException, RemoveException;\n"
+" \n"
+" public void removePassivated(Object key);\n"
+"}"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1158
@@ -3995,12 +5097,19 @@
"respectively stores its state during passivation from the bean's "
"<literal>.ser</literal> file."
msgstr ""
+"<literal>StatefulSessionPersistenceManager</literal> 接口的缺省实现是 "
+"<literal>org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager</"
+"literal>。顾名思义,<literal>StatefulSessionFilePersistenceManager</literal> "
+"利用文件系统来持久化 stateful session bean。更为明确的是,持久化管理者将 "
+"bean 序列化到普通文件里,其名字由 bean 的名字和 session ID 以及后缀 "
+"<literal>.ser</literal> 组成。激活时持久化管理者从 <literal>.ser</literal> 文"
+"件恢复 bean 的状态,而钝化时则保存其状态。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1168
#, no-c-format
msgid "Entity Bean Locking and Deadlock Detection"
-msgstr "Entity Bean 锁和死锁检测"
+msgstr "Entity Bean 锁和死锁检测 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1169
@@ -4012,13 +5121,16 @@
"how to combat these issues. Deadlocking is formally defined and examined. "
"And, finally, we walk you through how to fine tune your system in terms of "
"entity bean locking."
-msgstr "本节提供关于 Entity Bean 锁以及在 JBoss 里如何访问和锁定 Entity Bean 的信息。本节也描述你可能遇到的问题以及如何解决。本节还对死锁进行正式的定义和讨论。最后,我们将带领你根据 Entity Bean 锁对系统进行调优。"
+msgstr ""
+"本节介绍 entity bean 锁以及如何在 JBoss 里访问和锁定 entity bean。本节也描述"
+"使用 entity bean 时会遇到的问题以及如何解决这些问题。我们也会介绍死锁的正式定"
+"义。最后,我们将讨论如何根据 entity bean 锁对系统进行调优。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1173
#, no-c-format
msgid "Why JBoss Needs Locking"
-msgstr "JBoss 为什么需要锁"
+msgstr "为什么 JBoss 需要锁 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1174
@@ -4030,7 +5142,10 @@
"so that data is not corrupted by concurrent reads and writes. Databases "
"traditionally provide this sort of functionality with transactional scopes "
"and table and row locking facilities."
-msgstr "锁的目的是保护数据的完整性。有时候你需要确保在某个时间只有一个用户可以更改关键数据;有时候,对敏感性数据的访问需要进行序列化以防止并行读和写导致的数据损坏。数据库通常通过事务、表和记录锁来提供这种功能。"
+msgstr ""
+"锁被用来保护数据的完整性。有时候你需要确保在某个时间只能有一个用户可以更新关"
+"键信息。而有时候需要序列化访问敏感信息来避免被并发读和写所破坏。传统的数据库"
+"用事务性作用域和表以及行锁定机制来提供这种功能。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1177
@@ -4043,13 +5158,17 @@
"with caching, data integrity is a problem, so some form of application "
"server level locking is needed for entity beans to provide the transaction "
"isolation properties that you are used to with traditional databases."
-msgstr "Entity bean 为关系型数据提供了一个不错的面向对象的接口。除此以外,它们通过缓存和延迟更新以使数据库效率最高,从而减轻数据库负载以提高性能。但是,如果使用缓存,数据的完整性是个问题,Entity Bean 需要某种应用程序级别的锁来提供传统数据库要求的事务隔离属性。"
+msgstr ""
+"Entity bean 为关系型数据提供了很好的面向对象接口。除此以外,它们可以通过缓存"
+"和尽量延迟更新来减少数据库负载以提高性能,最大化数据库效率。但是,缓存对于数"
+"据完整性来说是个问题,所以我们需要某种形式的服务器级别的锁来提供和传统数据库"
+"一起使用的事务隔离属性。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1183
#, no-c-format
msgid "Entity Bean Lifecycle"
-msgstr "Entity Bean 的生命周期"
+msgstr "Entity Bean 生命周期 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1184
@@ -4059,7 +5178,10 @@
"a given entity bean in memory at one time. This applies for every cache "
"configuration and every type of <literal>commit-option</literal>. The "
"lifecycle for this instance is different for every commit-option though."
-msgstr "根据 JBoss 的缺省配置,Entity Bean 在指定时刻只能存在一个活动的实例。这适用于每个缓存配置和每种 <literal>commit-option</literal> 类型。但这个实例的生命周期对于每个提交选项(commit-option)都不一样。"
+msgstr ""
+"根据缺省的 JBoss 配置,给定的 Entity Bean 在某一时间内存里只有一个活动的实"
+"例。这适用于每个缓存配置和每个 <literal>commit-option</literal> 类型。然而对"
+"于每个 commit-option 类型这个实例都有不同的生命周期。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1189
@@ -4067,7 +5189,7 @@
msgid ""
"For commit option <emphasis>A</emphasis>, this instance is cached and used "
"between transactions."
-msgstr "对于提交选项 <emphasis>A</emphasis>,这个实例被缓存并在事务间使用。"
+msgstr "对于提交选项 <emphasis>A</emphasis>,这个实例将被缓存并在事务间使用。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1194
@@ -4077,7 +5199,10 @@
"between transactions, but is marked as dirty at the end of a transaction. "
"This means that at the start of a new transaction <literal>ejbLoad</literal> "
"must be called."
-msgstr "对于提交选项 <emphasis>B</emphasis>,这个实例被缓存并在事务间使用,但在事务结束时标记为 dirty。这表示在新事务启动时,<literal>ejbLoad</literal> 必须被调用。"
+msgstr ""
+"对于提交选项 <emphasis>B</emphasis>,这个实例将被缓存并在事务间使用,但在事务"
+"结束时被标记为脏(dirty)状态。这意味着新事务开始时,<literal>ejbLoad</"
+"literal> 必须被调用。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1199
@@ -4086,7 +5211,9 @@
"For commit option <emphasis>C</emphasis>, this instance is marked as dirty, "
"released from the cache, and marked for passivation at the end of a "
"transaction."
-msgstr "对于提交选项 <emphasis>C</emphasis>,这个实例被标记为 dirty,从缓存里释放,并在事务结束时表示为钝化(passivation)。"
+msgstr ""
+"对于提交选项 <emphasis>C</emphasis>,这个实例将标记为脏(dirty)状态,从缓存"
+"里释放并在事务结束时标记为钝化状态。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1204
@@ -4097,8 +5224,9 @@
"cache. Otherwise, this option works in the same way as <emphasis>A</"
"emphasis>."
msgstr ""
-"对于提交选项 <emphasis>D</emphasis>,后台刷新线程定期地调用缓存里处于钝化状态的 Bean 的 <literal>ejbLoad</literal>。除此以外,这个选项和 <emphasis>A</"
-"emphasis> 相同。"
+"对于提交选项 <emphasis>D</emphasis>,后台的 refresh 进程将定期地调用缓存里驻"
+"留的 bean 的 <literal>ejbLoad</literal>。除此以外,这个选项和 <emphasis>A</"
+"emphasis> 完全相同。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1209
@@ -4109,7 +5237,10 @@
"passivates beans that have been placed in the passivation queue. A bean is "
"pulled out of the passivation queue and reused if the application requests "
"access to a bean of the same primary key."
-msgstr "当 Bean 被标记为钝化时,这个 Bean 被放入钝化队列里。每个 Entity Bean 容器都有一个钝化线程(passivation thread),它定期对钝化队列里的 Bean 进行钝化。如果应用程序请求访问具有相同主键的 Bean,这个 Bean 将从钝化队列里被提出。"
+msgstr ""
+"当 bean 被标记为钝化状态时,这个 bean 被置于钝化队列里。每个 entity bean 容器"
+"都有一个钝化进程定期地将钝化队列里的 bean 进行钝化。如果应用程序请求对具有相"
+"同主键的 bean 进行访问时,这个 bean 将被提出钝化队列并重新使用。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1212
@@ -4119,13 +5250,15 @@
"out of cache entirely. It is not put into the passivation queue and is not "
"reused by an instance pool. Except for the passivation queue, there is no "
"entity bean instance pooling."
-msgstr "在出现异常或事务回滚时,这个 Entity Bean 实例将完全从缓存里剔除。它不会被放入钝化队列或者被任何实例池重用。除了钝化队列,不存在其他 Entity Bean 实例池。"
+msgstr ""
+"在发生异常或事务回滚时,entity bean 实例会完全从缓存里抛出。它不会被放入钝化"
+"队列也不会被实例池重新使用。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1218
#, no-c-format
msgid "Default Locking Behavior"
-msgstr "缺省的锁行为"
+msgstr "缺省的锁定行为 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1219
@@ -4136,7 +5269,10 @@
"Because there is only one allowed instance of a given entity bean active at "
"one time, JBoss employs two types of locks to ensure data integrity and to "
"conform to the EJB spec."
-msgstr "Entity bean 锁和 entity bean 实例是完全分离的。锁的逻辑是完全隔离的且由单独的锁对象进行管理。因为在某一时刻某个 Entity Bean 只能有一个活动实例,JBoss 使用两种类型的锁来保证数据的完整性而且符合 EJB 规格。"
+msgstr ""
+"Entity bean 锁完全和 entity bean 实例分离。锁的逻辑完全独立且由单独的锁对象管"
+"理。因为在某一时间给定的 entity bean 只能允许一个实例,JBoss 采用两种类型的锁"
+"来确保数据完整性并遵循 EJB 规格。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1224
@@ -4145,7 +5281,9 @@
"<emphasis role=\"bold\">Method Lock</emphasis>: The method lock ensures that "
"only one thread of execution at a time can invoke on a given Entity Bean. "
"This is required by the EJB spec."
-msgstr "<emphasis role=\"bold\">Method Lock</emphasis>:方法锁确保在某一时刻只能有一个线程可以调用给定的 Entity Bean。这是 EJB 规格所要求的。"
+msgstr ""
+"<emphasis role=\"bold\">Method Lock</emphasis>:方法锁(method lock)确保在某"
+"一时刻只能有一个执行线程调用给定的 Entity Bean。这是 EJB 规格所要求的。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1229
@@ -4161,13 +5299,19 @@
"if any method at all is invoked on an entity bean within a transaction, no "
"other transaction can have access to this bean until the holding transaction "
"commits or is rolled back."
-msgstr "<emphasis role=\"bold\">Transaction Lock</emphasis>:事务锁确保在某一时刻只有一个事务可以访问给定的 Entity Bean。这确保了应用程序级别的事务的 ACID 属性。既然在缺省情况下,给定 Entity Bean 在某一时刻只能有一个活动实例,JBoss 必须保护这个实例不被脏读或脏写(dirty write)。所以,缺省的 Entity Bean 锁的行为将锁定 Entity Bean 直至事务结束。这意味着如果在事务里调用了某一 Entity Bean 的任何方法,其他事务只有在该事务提交或回滚后才能访问这个 Bean。"
+msgstr ""
+"<emphasis role=\"bold\">Transaction Lock</emphasis>:事务锁(transaction "
+"lock)确保在某一时刻只能有一个事务可以访问给定的 Entity Bean。这确保了应用服"
+"务器级别的事务的 ACID 属性。既然在缺省情况下,任何 entity bean 在某一时刻只能"
+"有一个活动实例,JBoss 必须保护这个实例不被脏读或写。所以,缺省的 entity bean "
+"锁定行为将在事务期间锁定这个 bean,直至事务结束。这意味着如果任何方法在一个事"
+"务内被调用,其他任何事务都不能访问这个 bean,直至前者提交或回滚。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1237
#, no-c-format
msgid "Pluggable Interceptors and Locking Policy"
-msgstr "可插拔拦截器和锁策略"
+msgstr "可插拔的拦截器和锁定策略 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1238
@@ -4178,7 +5322,10 @@
"descriptor. Let's look at the <literal>container-interceptors</literal> "
"definition for the <emphasis>Standard CMP 2.x EntityBean</emphasis> "
"configuration."
-msgstr "我们可以看到 <literal>standardjboss.xml</literal> 描述符里的容器配置部分定义了 Entity Bean 的基本的生命周期和行为。让我们看看 <emphasis>Standard CMP 2.x EntityBean</emphasis> 的 <literal>container-interceptors</literal> 定义。"
+msgstr ""
+"<literal>standardjboss.xml</literal> 描述符定义的容器配置定义了基本的 entity "
+"bean 生命周期和行为。让我们来看看 <emphasis>Standard CMP 2.x EntityBean</"
+"emphasis> 配置的 <literal>container-interceptors</literal> 定义。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1241
@@ -4249,7 +5396,9 @@
"The interceptors shown above define most of the behavior of the entity bean. "
"Below is an explanation of the interceptors that are relevant to this "
"section."
-msgstr "这个拦截器展示了 Entity Bean 的多数行为的定义。下面是对和这些内容相关的拦截器的解释。"
+msgstr ""
+"上面展示的拦截器定义这个 entity bean 的大部分行为。下面是对和本节相关的拦截器"
+"的解释。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1247
@@ -4259,7 +5408,10 @@
"interceptor's role is to schedule any locks that must be acquired before "
"the invocation is allowed to proceed. This interceptor is very lightweight "
"and delegates all locking behavior to a pluggable locking policy."
-msgstr "<emphasis role=\"bold\">EntityLockInterceptor</emphasis>:这个拦截器的任务是调度任何处理调用前所要求的锁。这个拦截器是非常轻量级的,它把所有锁行为都委托给了可插拔的锁策略。"
+msgstr ""
+"<emphasis role=\"bold\">EntityLockInterceptor</emphasis>:这个拦截器的作用是"
+"调度任何必须在调用被允许处理前所需获得的锁。这是一个非常轻量级的拦截器,它把"
+"所有的锁定行为都委托给可插拔的锁定策略。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1252
@@ -4269,7 +5421,10 @@
"this interceptor is to find the entity bean within the cache or create a new "
"one. This interceptor also ensures that there is only one active instance of "
"a bean in memory at one time."
-msgstr "<emphasis role=\"bold\">EntityInstanceInterceptor</emphasis>:这个拦截器的任务是找到缓存里的 Entity Bean 或者创建一个新的。这个拦截器也要确保在某一时刻内存里某个 Entity Bean 只有一个活动实例。"
+msgstr ""
+"<emphasis role=\"bold\">EntityInstanceInterceptor</emphasis>:这个拦截器的作"
+"用是找到缓存里的或创建新的 entity bean。这个拦截器也要确保在某一时刻某个 "
+"bean 在内存里只有一个获得实例存在。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1257
@@ -4287,15 +5442,19 @@
"specification are taken care of here as well as the JBoss specific commit-"
"option <emphasis>D</emphasis>."
msgstr ""
-"<emphasis role=\"bold\">EntitySynchronizationInterceptor</emphasis>:这个拦截器的作用是将缓存状态和底层存储同步。它使用 EJB 规格的 <literal>ejbLoad</literal> 和 "
-"<literal>ejbStore</literal> 模式来完成。使用事务时用事务限界来触发。它通过 JTA 接口向底层事务监控程序注册一个回调方法。如果不涉及事务,这个策略会在调用返回时存储状态。这里介绍了 Synchronization 策略 <emphasis>A</"
-"emphasis>、<emphasis>B</emphasis> 和 <emphasis>C</emphasis>,以及 JBoss 专有的提交选项 <emphasis>D</emphasis>。"
+"<emphasis role=\"bold\">EntitySynchronizationInterceptor</emphasis>:这个拦截"
+"器的作用是将缓存状态和底层存储同步。它用 EJB 规格的 <literal>ejbLoad</"
+"literal> 和 <literal>ejbStore</literal> 模式来实现这一点。事务开始时它由事务"
+"限界(transaction demarcation)触发。它通过 JTA 接口向底层事务监控器注册一个"
+"回调方法。如果没有事务,这个策略将存储调用返回的状态。这里考虑了 EJB 规格的同"
+"步策略 <emphasis>A</emphasis>、<emphasis>B</emphasis> 和 <emphasis>C</"
+"emphasis>、以及 JBoss 专有的提交选项 <emphasis>D</emphasis>。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1265
#, no-c-format
msgid "Deadlock"
-msgstr "死锁"
+msgstr "死锁 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1266
@@ -4315,16 +5474,17 @@
"are deadlocked waiting for access to the resource already locked by the "
"other thread."
msgstr ""
-"本节的主题是找到死锁问题并解决它们。我们将描述什么是死锁的 MBean,你怎样删除它们并解决死锁。当两个或以上的线程都锁定共享资源时,死锁就可能发生。<xref linkend=\"Deadlock_-"
-"Deadlock_definition_example\"/> 演示了一个简单的死锁情形。在这里,<literal>Thread 1</literal> 具有 <literal>Bean A</"
-"literal> 的锁,而 <literal>Thread 2</literal> 有对 <literal>Bean B</"
-"literal> 的锁。然后,<literal>Thread 1</literal> 试图锁住 <literal>Bean B</literal> 却堵塞了,因为 <literal>Thread 2</literal> 已经锁定了它。类似地,当 <literal>Thread 2</literal> 试图锁住 A 时也会堵塞,因为 <literal>Thread 1</literal> 已经锁定了它。此时,这两个线程都处于死锁状态,都在等待对已经被对方锁定的资源的访问。"
+"本节的主题是找到和解决死锁问题。我们将描述什么是死锁 MBean,在应用程序里如何检测它以及如何解决死锁。当两个以上线程拥有同一共享资源的锁时,死锁就发生了。<xref linkend=\"Deadlock_-"
+"Deadlock_definition_example\"/> 描述了一个简单的死锁情景。在这里,<literal>Thread 1</literal> 拥有对 <literal>Bean A</"
+"literal> 的锁,而 <literal>Thread 2</literal> 拥有对 <literal>Bean B</"
+"literal> 的锁。之后,<literal>Thread 1</literal> 试图锁住 <literal>Bean B</literal> 且会阻塞,因为 <literal>Thread 2</literal> 已经拥有对 <literal>Bean B</"
+"literal> 的锁。类似地,当 <literal>Thread 2</literal> 试图锁住 A 时,它也会阻塞,因为 <literal>Thread 1</literal> 已经拥有了这个锁。此时,两个线程都在等待对资源被对方锁住的资源的访问,从而发生了死锁。"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1270
#, no-c-format
msgid "Deadlock definition example"
-msgstr "死锁定义的示例"
+msgstr "关于死锁定义的例子 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1277
@@ -4337,13 +5497,17 @@
"not careful about ordering the access to them. Various techniques and "
"advanced configurations can be used to avoid deadlocking problems. They are "
"discussed later in this section."
-msgstr "JBoss 的缺省锁策略是当调用发生在事务的上下文里时锁住 Entity Bean,直到事务完成为止。由此,如果存在长期运行的、却又访问许多 Entity Bean 的事务,或者你没有注意到访问顺序时,死锁就非常容易发生。你可以使用不同的技术和高级配置来避免死锁问题。本节将在后面讨论这些技术和配置。"
+msgstr ""
+"JBoss 的缺省锁策略是当调用发生在事务上下文里时,锁定 Entity Bean 直至事务完"
+"成。因此,如果有长期运行的并访问多个 Entity Bean 的事务、或者如果没有小心排列"
+"访问顺序,我们就很容易遇到死锁。我们将在本节后面进行讨论如何使用不同的技术和"
+"高级配置来避免死锁。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1281
#, no-c-format
msgid "Deadlock Detection"
-msgstr "死锁的检测"
+msgstr "死锁检测 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1282
@@ -4357,26 +5521,29 @@
"graph may look like is given in <xref linkend=\"Deadlock_Detection-"
"An_example_blocked_transaction_table\"/>."
msgstr ""
-"幸运的是,JBoss 能够执行死锁检测。JBoss 有一个全局的关于处于等待或阻塞状态的事务的内部图。当一个线程决定它不能获取 Entity Bean 锁时,它会知道哪个事务正锁住这个 Bean 并把自己添加到阻塞事务图里。<xref linkend=\"Deadlock_Detection-"
-"An_example_blocked_transaction_table\"/> 是这种图的一个例子。"
+"幸运的是,JBoss 能够进行死锁检测。JBoss 具有一个全局的包含处于等待状态的事务"
+"以及阻塞在哪个事务的内部图表。每当一个线程不能够获得某个 Entity Bean 锁时,它"
+"将知道目前是哪个事务持有这个 Bean 的锁并将自己加入到阻塞事务图表里。<xref "
+"linkend=\"Deadlock_Detection-An_example_blocked_transaction_table\"/> 是这个"
+"图表的一个例子。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1286
#, no-c-format
msgid "An example blocked transaction table"
-msgstr "阻塞事务表示例"
+msgstr "阻塞的事务表的例子 "
#. Tag: entry
#: J2EE_EJBs_On_JBOSS.xml:1290
#, no-c-format
msgid "Blocking TX"
-msgstr "阻塞的事务"
+msgstr "Blocking TX"
#. Tag: entry
#: J2EE_EJBs_On_JBOSS.xml:1293
#, no-c-format
msgid "Tx that holds needed lock"
-msgstr "持有所需锁的事务"
+msgstr "持有所需锁的事务 "
#. Tag: entry
#: J2EE_EJBs_On_JBOSS.xml:1300 J2EE_EJBs_On_JBOSS.xml:1319
@@ -4413,13 +5580,17 @@
"deadlock and will throw an <literal>ApplicationDeadlockException</literal>. "
"This exception will cause a transaction rollback which will cause all locks "
"that transaction holds to be released."
-msgstr "在线程实际阻塞前,它会试图检查是否存在死锁。它通过检索阻塞事务图表来决定。当它扫描图表时,它会记住那些事务正在阻塞。如果它看到一个阻塞的节点在这个图里出现多于一次,它就知道有死锁出现并抛出 <literal>ApplicationDeadlockException</literal>。这个异常将导致事务回滚,从而使得这个事务持有的所有锁都被释放。"
+msgstr ""
+"在线程实际阻塞之前,它会试图检测是否存在死锁问题。它通过扫描事务图表来进行检"
+"测。它会记录哪些事务处于阻塞状态。如果它在图表里多次发现某个阻塞的节点,它就"
+"知道发生了死锁,然后会抛出 <literal>ApplicationDeadlockException</literal>。"
+"这个异常件导致事务回滚,因此该事务持有的所有锁都会被释放。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1332
#, no-c-format
msgid "Catching ApplicationDeadlockException"
-msgstr ""
+msgstr "捕获 ApplicationDeadlockException "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1333
@@ -4432,6 +5603,10 @@
"<literal>RemoteException</literal>, so you have to search for it in your "
"catch block. For example:"
msgstr ""
+"既然 JBoss 可以检测应用程序的死锁,如果某个调用失败是由于 "
+"<literal>ApplicationDeadlockException</literal>,你就应该编写自己的代码来重试"
+"这个事务。可惜的是,这个异常深嵌在 <literal>RemoteException</literal>,所以你"
+"不得不在 catch 代码块里搜索它。例如: "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1336
@@ -4454,12 +5629,28 @@
" }\n"
"}"
msgstr ""
+"try {\n"
+" // ...\n"
+"} catch (RemoteException ex) {\n"
+" Throwable cause = null;\n"
+" RemoteException rex = ex;\n"
+" while (rex.detail != null) {\n"
+" cause = rex.detail;\n"
+" if (cause instanceof ApplicationDeadlockException) {\n"
+" // ... We have deadlock, force a retry of the transaction.\n"
+" break;\n"
+" }\n"
+" if (cause instanceof RemoteException) {\n"
+" rex = (RemoteException)cause;\n"
+" }\n"
+" }\n"
+"}"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1340
#, no-c-format
msgid "Viewing Lock Information"
-msgstr ""
+msgstr "查看锁信息 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1341
@@ -4470,6 +5661,9 @@
"transaction locking table. To enable this monitor uncomment its "
"configuration in the <literal>conf/jboss-service.xml</literal>:"
msgstr ""
+"<literal>EntityLockMonitor</literal> MBean 服务允许你查看基本的锁统计信息且输"
+"出事务锁表的状态。要启用这个功能,你可以在 <literal>conf/jboss-service.xml</"
+"literal> 里取消下列配置的注释: "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1344
@@ -4478,6 +5672,8 @@
"<mbean code=\"org.jboss.monitor.EntityLockMonitor\"\n"
" name=\"jboss.monitor:name=EntityLockMonitor\"/>"
msgstr ""
+"<mbean code=\"org.jboss.monitor.EntityLockMonitor\"\n"
+" name=\"jboss.monitor:name=EntityLockMonitor\"/>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1345
@@ -4485,25 +5681,27 @@
msgid ""
"The <literal>EntityLockMonitor</literal> has no configurable attributes. It "
"does have the following read-only attributes:"
-msgstr ""
+msgstr "<literal>EntityLockMonitor</literal> 没有可配置属性。它有下列的只读属性: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1350
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">MedianWaitTime</emphasis>: The median value of all "
"times threads had to wait to acquire a lock."
-msgstr "<emphasis role=\"bold\">name</emphasis>:参数的变量名,这是必须的。"
+msgstr ""
+"<emphasis role=\"bold\">MedianWaitTime</emphasis>:线程等待获取锁的时间的平均"
+"值。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1355
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">AverageContenders</emphasis>: The ratio of the total "
"number of contentions to the sum of all threads that had to wait for a lock."
msgstr ""
-"<emphasis role=\"bold\">num_initial_members</emphasis> 指定等待的最大的应答数"
-"量。"
+"<emphasis role=\"bold\">AverageContenders</emphasis>:所有争用线程和等待锁的"
+"进程总数的比例。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1360
@@ -4514,30 +5712,34 @@
"a thread attempts to acquire a lock that is associated with another "
"transaction"
msgstr ""
+"<emphasis role=\"bold\">TotalContentions</emphasis>:等待获取事务锁的线程的总"
+"数。这发生在线程试图获取和其他线程关联的锁的时候。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1365
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">MaxContenders</emphasis>: The maximum number of "
"threads that were waiting to acquire the transaction lock."
msgstr ""
-"<emphasis role=\"bold\">NumAcceptThreads</emphasis>:用来接受客户联接的线程的"
-"数量。它的缺省值是 1。"
+"<emphasis role=\"bold\">MaxContenders</emphasis>:等待获取事务锁的线程的最大"
+"数目。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1370
#, no-c-format
msgid "It also has the following operations:"
-msgstr ""
+msgstr "它也有下列的操作: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1375
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<emphasis role=\"bold\">clearMonitor</emphasis>: This operation resets the "
"lock monitor state by zeroing all counters."
-msgstr "<emphasis role=\"bold\">description</emphasis>:构造函数的描述"
+msgstr ""
+"<emphasis role=\"bold\">clearMonitor</emphasis>:这个操作通过将所有计数器清零"
+"来重置锁监控状态。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1380
@@ -4549,12 +5751,15 @@
"lock was waited on and the number of transactions that timed out waiting for "
"the lock."
msgstr ""
+"<emphasis role=\"bold\">printLockMonitor</emphasis>:这个操作输出所有 EJB 锁"
+"的表,它列出 bean 的 <literal>ejbName</literal>、等待锁总共所花费的时间、锁被"
+"等待的次数以及等待锁超时的事务的数目。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1390
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Advanced Configurations and Optimizations"
-msgstr "其他配置选项"
+msgstr "高级配置和优化 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1391
@@ -4566,12 +5771,15 @@
"section walks through various techniques and configurations that you can use "
"to optimize performance and reduce the possibility of deadlock."
msgstr ""
+"Entity Bean 的缺省的锁行为可能导致死锁。既然对 Entity Bean 的访问在事务里锁住"
+"了这个 Bean,它也可以避免应用程序的性能/效率问题。本节将介绍不同的技术和配置"
+"方法,你可以用它们来优化性能和减低死锁的可能性。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1395
#, no-c-format
msgid "Short-lived Transactions"
-msgstr ""
+msgstr "短期的事务 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1396
@@ -4581,12 +5789,14 @@
"shorter the transaction you have, the less likelihood you will have "
"concurrent access collisions and your application throughput will go up."
msgstr ""
+"使你的事务尽可能的短和细颗粒度。事务越短,越不可能有并发访问的冲突,应用程序"
+"的效率因此将越高。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1402
#, no-c-format
msgid "Ordered Access"
-msgstr ""
+msgstr "按顺序访问 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1403
@@ -4598,12 +5808,15 @@
"are just too complicated to use this approach and more advanced "
"configurations are needed."
msgstr ""
+"按顺序访问 Entity Bean 可以减少死锁的可能性。这意味着要确保总是按完全相同的顺"
+"序访问系统里的 Entity Bean。大多数情况下,用户应用程序通常过于复杂而不能使用"
+"这个方法,你需要更高级的配置。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1409
#, no-c-format
msgid "Read-Only Beans"
-msgstr ""
+msgstr "只读的 Bean "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1410
@@ -4615,22 +5828,25 @@
"option is sometimes very useful when your read-only bean's data is "
"sometimes updated by an external source."
msgstr ""
+"Entity bean 可以标记为只读。当 bean 被标记为只读时,它从不参与事务。这意味着"
+"它永远不被事务性地锁定。当有时候外部程序更新你的只读 Bean 的数据事,和提交选"
+"项 <emphasis>D</emphasis> 一起使用有时候会非常有用。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1413
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"To mark a bean as read-only, use the <literal>read-only</literal> flag in "
"the <literal>jboss.xml</literal> deployment descriptor."
msgstr ""
-"你可以用 <literal>jboss-web.xml</literal> 文件里的 <literal>replication-"
-"config</literal> 元素进一步配置会话复制。下面是一个例子:"
+"要把 Bean 标记为只读,你可以使用 <literal>jboss.xml</literal> 部署描述符里的 "
+"<literal>read-only</literal> 标记。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1416
#, no-c-format
msgid "Marking an entity bean read-only using jboss.xml"
-msgstr ""
+msgstr "用 jboss.xml 设置只读的 entity bean "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1417
@@ -4646,12 +5862,21 @@
" </enterprise-beans>\n"
"</jboss>"
msgstr ""
+"<jboss>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>MyEntityBean</ejb-name>\n"
+" <jndi-name>MyEntityHomeRemote</jndi-name>\n"
+" <read-only>True</read-only>\n"
+" </entity>\n"
+" </enterprise-beans>\n"
+"</jboss>"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1422
#, no-c-format
msgid "Explicitly Defining Read-Only Methods"
-msgstr ""
+msgstr "显性地定义只读方法 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1423
@@ -4667,16 +5892,21 @@
"declaring all getter methods and the <literal>anotherReadOnlyMethod</"
"literal> as read-only."
msgstr ""
+"在理解了 Entity Bean 的缺省的锁行为后,你可能想知道:如果没有修改数据,为什么"
+"要锁定 Bean 呢?JBoss 允许你将 Entity Bean 里的某些方法定义为只读,这样当在事"
+"务里只调用这些方法时,Bean 并不会被锁住。你可以在 <literal>jboss.xml</"
+"literal> 部署描述符里定义这些只读方法。你可以使用通配符。下面是一个声明所有 "
+"getter 方法和只读的 <literal>anotherReadOnlyMethod</literal> 方法的例子。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1426
#, no-c-format
msgid "Defining entity bean methods as read only"
-msgstr ""
+msgstr "定义只读的 entity bean 方法 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1427
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<jboss>\n"
" <enterprise-beans>\n"
@@ -4698,35 +5928,31 @@
" </enterprise-beans>\n"
"</jboss>"
msgstr ""
-"<jboss> \n"
-" <enterprise-beans> \n"
-" <entity> \n"
-" <ejb-name>nextgen.EnterpriseEntity</ejb-"
-"name> \n"
-" <jndi-name>nextgen.EnterpriseEntity</jndi-"
-"name> \n"
-" <clustered>True</clustered> \n"
-" <cluster-config> \n"
-" <partition-name>DefaultPartition</partition-"
-"name> \n"
-" <home-load-balance-policy> \n"
-" org.jboss.ha.framework.interfaces."
-"RoundRobin \n"
-" </home-load-balance-policy> \n"
-" <bean-load-balance-policy> \n"
-" org.jboss.ha.framework.interfaces."
-"FirstAvailable \n"
-" </bean-load-balance-policy> \n"
-" </cluster-config> \n"
-" </entity> \n"
-" </enterprise-beans> \n"
+"<jboss>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>nextgen.EnterpriseEntity</ejb-name>\n"
+" <jndi-name>nextgen.EnterpriseEntity</jndi-name>\n"
+" <method-attributes>\n"
+" <method>\n"
+" <method-name>get*</method-name>\n"
+" <read-only>true</read-only>\n"
+" </method>\n"
+" <method>\n"
+" <method-name>anotherReadOnlyMethod</method-"
+"name>\n"
+" <read-only>true</read-only>\n"
+" </method>\n"
+" </method-attributes>\n"
+" </entity>\n"
+" </enterprise-beans>\n"
"</jboss>"
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1432
#, no-c-format
msgid "Instance Per Transaction Policy"
-msgstr ""
+msgstr "Instance Per Transaction 策略 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1433
@@ -4741,6 +5967,11 @@
"Because each transaction has its own copy of the bean, there is no need for "
"transaction based locking."
msgstr ""
+"Instance Per Transaction 策略是一个高级的配置方法,它可以完全避免 JBoss 的缺"
+"省锁策略所引起的死锁和效率问题。缺省的 Entity Bean 锁策略只允许每个 Bean 存在"
+"一个活动实例。Instance Per Transaction 策略打破了这个限制,它允许每个事务存"
+"在 Bean 的一个新的实例并在事务结束时销毁。因为每个事务都有这个 Bean 的一个拷"
+"贝,所以基于事务的锁就不需要了。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1436
@@ -4759,6 +5990,14 @@
"option <emphasis>A</emphasis> as well (which would allow the use of caching "
"for this option)."
msgstr ""
+"这个选项听起来很好但也有一些缺点。首先,这个选项的事务隔离行为和"
+"<literal>READ_COMMITTED</literal> 相等。这可能创建不必要的可重复的读。换句话"
+"说,事务可能拥有过时的 Bean 的拷贝。其次,这个配置选项目前需要提交选项 "
+"<emphasis>B</emphasis> 或 <emphasis>C</emphasis>,既然 ejbLoad 必须在事务开始"
+"时执行,这可能导致性能问题。但是,如果你的应用程序本来就需要使用提交选项 "
+"<emphasis>B</emphasis> 或 <emphasis>C</emphasis>,那你就可以采用这种方法。"
+"JBoss 开发人员目前正在探索新的方法来使用提交选项 <emphasis>A</emphasis>(允许"
+"缓存的使用)。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1439
@@ -4771,12 +6010,16 @@
"name of the container configuration to use with your bean in the jboss.xml "
"deployment descriptor as show below."
msgstr ""
+"JBoss 具有在 standardjboss.xml 里定义的、名为 <literal>Instance Per "
+"Transaction CMP 2.x EntityBean</literal> 和 <literal>Instance Per "
+"Transaction BMP EntityBean</literal> 的实现了这个锁策略的容器配置。如下所示,"
+"要使用这种配置,你得在 jboss.xml 部署描述符里引用容器配置的名称。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1442
#, no-c-format
msgid "An example of using the Instance Per Transaction policy."
-msgstr ""
+msgstr "使用 Instance Per Transaction 策略的例子。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1443
@@ -4824,7 +6067,7 @@
#: J2EE_EJBs_On_JBOSS.xml:1450
#, no-c-format
msgid "Running Within a Cluster"
-msgstr ""
+msgstr "在群集里运行 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1451
@@ -4842,24 +6085,32 @@
"explicitly implement the select for update invocation within the BMP's "
"<literal>ejbLoad</literal> method."
msgstr ""
+"目前 JBoss 还没有用于群集里的 Entity Bean 的分布式锁定能力。这个功能已经委托"
+"给了数据库且必须为应用程序开发人员所支持。对于群集的 Entity Bean,我们推荐使"
+"用提交选项 <emphasis>B</emphasis> 或 <emphasis>C</emphasis> 以及行锁定机制的"
+"组合。CMP 有一个行锁定配置选项。当 Bean 从数据库里加载时,这个选项将使用 SQL "
+"<literal>select for update</literal> 语句。如和提交选项 <emphasis>B</"
+"emphasis> 或 <emphasis>C</emphasis> 一起使用,它实现了可以跨群集使用的事务"
+"锁。而对于 BMP 而言,你必须在 BMP 的 <literal>ejbLoad</literal> 方法里显性地"
+"实现 select for update 调用。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1457
#, no-c-format
msgid "Troubleshooting"
-msgstr ""
+msgstr "故障解除 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1458
#, no-c-format
msgid "This section will describe some common locking problems and their solution."
-msgstr ""
+msgstr "本节将讨论一些常见的锁问题以及解决方案。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1462
#, no-c-format
msgid "Locking Behavior Not Working"
-msgstr ""
+msgstr "无法执行锁行为"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1463
@@ -4869,6 +6120,8 @@
"concurrent access to their beans, and thus dirty reads. Here are some common "
"reasons for this:"
msgstr ""
+"很多 JBoss 用户注意到在锁定不生效时有对 Bean 的并发访问,且导致脏(dirty)"
+"读。下面是一些常见的原因: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1468
@@ -4877,6 +6130,8 @@
"If you have custom <literal>container-configurations</literal>, make sure "
"you have updated these configurations."
msgstr ""
+"如果你有自定义的 <literal>container-configurations</literal>,请确保你已经更"
+"新了这些配置。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1473
@@ -4886,6 +6141,8 @@
"<literal>hashCode</literal> correctly from custom/complex primary key "
"classes."
msgstr ""
+"请确保正确地实现了 custom/complex 主键类的 <literal>equals()</literal> 和 "
+"<literal>hashCode()</literal> 方法。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1478
@@ -4895,12 +6152,14 @@
"correctly. One common mistake is assuming that member variable "
"initializations will be executed when a primary key is unmarshalled."
msgstr ""
+"请确保你的 custom/complex 主键类正确地序列化。常见的一个错误就是在主键被解析"
+"时假设成员变量将被初始化。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1486
#, no-c-format
msgid "IllegalStateException"
-msgstr ""
+msgstr "IllegalStateException"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1487
@@ -4912,12 +6171,15 @@
"key class, or that your primary key class is not implemented correctly for "
"serialization."
msgstr ""
+"带有 \"removing bean lock and it has tx set!\" 信息的 IllegalStateException "
+"通常表示你没有正确地实现用于自定义/复杂的主键类的 <literal>equals</literal> "
+"和/或 <literal>hashCode</literal> 方法,或者你没有正确地实现主键类的序列化。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1493
#, no-c-format
msgid "Hangs and Transaction Timeouts"
-msgstr ""
+msgstr "挂起和事务超时 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1494
@@ -4933,11 +6195,16 @@
"connections across the internet or running a web-crawler within a "
"transaction."
msgstr ""
+"JBoss 一直以来的一个程序错误就是在事务超时时,这个事务仅仅标记为回滚而实际没"
+"有回滚。这被委托给调用线程来实现。但如果调用线程无限期挂起时,此时 Entity "
+"Bean 锁等永远都不会被释放,这就会导致严重的问题。解决这个问题的办法很牵强。你"
+"实际上只需要避免在事务里做有可能挂起的事情就可以了。在这里,常见的错误就是在"
+"事务里连接互联网或运行 web-crawler。 "
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1504, no-c-format
msgid "EJB Timer Configuration"
-msgstr "EJB 定时器服务配置"
+msgstr "EJB 定时器配置 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1505
@@ -4952,7 +6219,12 @@
"the programming model. We will, instead, look at the configuration of the "
"timer service in JBoss so that you can understand how to make timers work "
"best in your environment"
-msgstr "J2EE 定时器(Timer)服务允许任何 EJB 对象注册一个在将来某个时间调用的 timer 回调方法。定时器事件可以用于审计、报表活其他需要在指定时间进行的清理任务。定时器事件需要持久化,即使在服务器故障时它应该也能执行。针对 EJB 定时器的编码是 J2EE 规格标准的一部分,我们在此不会对编程模型进行探索,而是着重于 JBoss 里定时器服务的配置,这样你就可以懂得如何使定时器更好地应用到你的系统里。"
+msgstr ""
+"J2EE 定时器访问允许任何 EJB 对象注册一个在指定时间调用的定时回调函数。定时器"
+"事件可用于需要在将来某个时间发生的审计、报告或其他清理任务。定时器事件是持久"
+"的且在服务器发生故障时都应该被执行。EJB 定时器的编程是标准的 J2EE 规格的一部"
+"分,所以我们不会深究其编程模型。相反,我们将讨论 JBoss 里对定时器服务器的配"
+"置,这样你就可以理解定时器是如何工作的。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1508
@@ -4961,7 +6233,9 @@
"The EJB timer service is configure by several related MBeans in the "
"<literal>ejb-deployer.xml</literal> file. The primary MBean is the "
"<literal>EJBTimerService</literal> MBean."
-msgstr "EJB 的定时器服务由 <literal>ejb-deployer.xml</literal> 文件里几个相关的 MBean 来配置。最主要的 MBean 是 <literal>EJBTimerService</literal> MBean。"
+msgstr ""
+"EJB 定时器服务通过 <literal>ejb-deployer.xml</literal> 文件里几个相关的 "
+"MBean 进行配置。主要的 MBean 是 <literal>EJBTimerService</literal>。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1511
@@ -4996,7 +6270,7 @@
msgid ""
"The <literal>EJBTimerService</literal> has the following configurable "
"attributes:"
-msgstr "<literal>EJBTimerService</literal> 具有下列的可配置属性:"
+msgstr "<literal>EJBTimerService</literal> 具有下面的可配置属性: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1517
@@ -5008,8 +6282,10 @@
"implementation, <literal>FixedDelayRetryPolicy</literal>, which will be "
"described later."
msgstr ""
-"<emphasis role=\"bold\">RetryPolicy</emphasis>:实现重试策略的 MBean 的名称。这个 MBean 必须支持 <literal>org."
-"jboss.ejb.txtimer.RetryPolicy interface</literal>。JBoss 提供一个实现:<literal>FixedDelayRetryPolicy</literal>,我们会在后面描述它。"
+"<emphasis role=\"bold\">RetryPolicy</emphasis>:这是实现重试策略(retry "
+"policy)的 MBean 的名称。这个 MBean 必须支持 <literal>org.jboss.ejb.txtimer."
+"RetryPolicy interface</literal>。JBoss 提供一个实现:"
+"<literal>FixedDelayRetryPolicy</literal>,之后我们会进行讨论。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1522
@@ -5022,8 +6298,11 @@
"NoopPersistencePolicy and DatabasePersistencePolicy, which will be described "
"later."
msgstr ""
-"<emphasis role=\"bold\">PersistencePolicy</emphasis>:这是实现保存定时器事件的持久性策略的 MBean 的名称。这个 MBean 必须支持 <literal>org.jboss.ejb.txtimer."
-"PersistencePolicy</literal> 接口。JBoss 提供两个实现:NoopPersistencePolicy 和 DatabasePersistencePolicy,我们会在后面描述它们。"
+"<emphasis role=\"bold\">PersistencePolicy</emphasis>:这是实现用于定时器事件"
+"的持久化策略(persistence strategy)的 MBean 的名称。这个 MBean 必须支持 "
+"<literal>org.jboss.ejb.txtimer.PersistencePolicy</literal> 接口。JBoss 提供两"
+"个实现:NoopPersistencePolicy 和 DatabasePersistencePolicy,我们将在后面进行"
+"讨论。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1527, no-c-format
@@ -5034,8 +6313,10 @@
"interface. JBoss provides the <literal>org.jboss.ejb.txtimer."
"BigIntegerTimerIdGenerator</literal> implementation."
msgstr ""
-"<emphasis role=\"bold\">TimerIdGeneratorClassName</emphasis>:这是提供定时器的 ID 生成器策略的类的名称。这个类必须实现 <literal>org.jboss.ejb.txtimer.TimerIdGenerator</literal> 接口。JBoss 提供了 <literal>org.jboss.ejb.txtimer."
-"BigIntegerTimerIdGenerator</literal> 实现。"
+"<emphasis role=\"bold\">TimerIdGeneratorClassName</emphasis>:这是提供定时器 "
+"ID 生成器策略的类的名称。这个类必须实现 <literal>org.jboss.ejb.txtimer."
+"TimerIdGenerator</literal> 接口。JBoss 提供的实现是 <literal>org.jboss.ejb."
+"txtimer.BigIntegerTimerIdGenerator</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1532, no-c-format
@@ -5046,15 +6327,16 @@
"literal> interface. JBoss provides the <literal>org.jboss.ejb.txtimer."
"TimedObjectInvokerImpl</literal> implementation."
msgstr ""
-"<emphasis role=\"bold\">TimedObjectInvokerClassname</emphasis>:这是提供定时器方法调用策略的类的名称。这个类必需实现 <literal>org.jboss.ejb.txtimer.TimedObjectInvoker</"
-"literal> 接口。 JBoss 提供了 <literal>org.jboss.ejb.txtimer."
-"TimedObjectInvokerImpl</literal> 实现。"
+"<emphasis role=\"bold\">TimedObjectInvokerClassname</emphasis>:这是提供定时"
+"器方法调用策略的类的名称。这个类必须实现 <literal>org.jboss.ejb.txtimer."
+"TimedObjectInvoker</literal> 接口。JBoss 提供的实现是 <literal>org.jboss.ejb."
+"txtimer.TimedObjectInvokerImpl</literal>。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1537
#, no-c-format
msgid "The retry policy MBean definition used is shown here:"
-msgstr "下面是所用的重试策略 MBean 的定义:"
+msgstr "下面是所用的重试策略 MBean 的定义: "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1540
@@ -5075,14 +6357,16 @@
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1541, no-c-format
msgid "The retry policy takes one configuration value:"
-msgstr "重试策略采用一个配置选项:"
+msgstr "重试策略采用一个配置值: "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1546, no-c-format
msgid ""
"<emphasis role=\"bold\">Delay</emphasis>: This is the delay (ms) before "
"retrying a failed timer execution. The default delay is 100ms."
-msgstr "<emphasis role=\"bold\">Delay</emphasis>:这是在重试失败的定时器执行的延迟时间(毫秒)。缺省值是 100 毫秒。"
+msgstr ""
+"<emphasis role=\"bold\">Delay</emphasis>:在重试一个失败的定时器任务前的延迟"
+"(毫秒)。缺省孩值为 100 毫秒。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1551
@@ -5092,8 +6376,8 @@
"literal> policy can be used. This MBean is commented out by default, but "
"when enabled will look like this:"
msgstr ""
-"如果 EJB 定时器不需要持久化,你就可以使用 <literal>NoopPersistence</"
-"literal> 策略。这个 MBean 缺省是被注释的,在启用时应该类似于:"
+"如果 EJB 定时器不需要持久化,就可以使用 <literal>NoopPersistence</literal> 策"
+"略。这个 MBean 缺省是被注释的,如启用后就会类似: "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1554
@@ -5111,7 +6395,9 @@
msgid ""
"Most applications that use timers will want timers to be persisted. For that "
"the <literal>DatabasePersitencePolicy</literal> MBean should be used."
-msgstr "大多数使用定时器的应用程序都希望持久化定时器,由此应该使用 <literal>DatabasePersitencePolicy</literal> MBean。"
+msgstr ""
+"大多数使用定时器的应用程序将需要持久化定时器。因此应该使用 "
+"<literal>DatabasePersitencePolicy</literal> MBean。 "
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1558
@@ -5145,7 +6431,9 @@
msgid ""
"<emphasis role=\"bold\">DataSource</emphasis>: This is the MBean for the "
"DataSource that timer data will be written to."
-msgstr "<emphasis role=\"bold\">DataSource</emphasis>:用于定时器数据将写入的数据源的 MBean。"
+msgstr ""
+"<emphasis role=\"bold\">DataSource</emphasis>:这是用于定时器数据写入的数据源"
+"的 MBean。 "
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1566
@@ -5156,6 +6444,7 @@
"<literal>org.jboss.ejb.txtimer.GeneralPurposeDatabasePersistencePlugin</"
"literal>."
msgstr ""
-"<emphasis role=\"bold\">DatabasePersistencePlugin</emphasis>:实现持久化策略(persistence strategy)的类的名称。它应该是 <literal>org.jboss.ejb.txtimer.GeneralPurposeDatabasePersistencePlugin</"
-"literal>。"
+"<emphasis role=\"bold\">DatabasePersistencePlugin</emphasis>:这是实现持久化"
+"策略的类的名称。它应该是 <literal>org.jboss.ejb.txtimer."
+"GeneralPurposeDatabasePersistencePlugin</literal>。 "
Modified: projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/The_CMP_Engine.po
===================================================================
--- projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/The_CMP_Engine.po 2009-07-16 03:39:41 UTC (rev 91326)
+++ projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/The_CMP_Engine.po 2009-07-16 03:41:10 UTC (rev 91327)
@@ -9,7 +9,7 @@
"Project-Id-Version: The_CMP_Engine\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-20 02:37+0000\n"
-"PO-Revision-Date: 2009-06-30 13:40+1000\n"
+"PO-Revision-Date: 2009-07-16 10:47+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -21,11 +21,12 @@
#: The_CMP_Engine.xml:6
#, fuzzy, no-c-format
msgid "The CMP Engine"
-msgstr "Engine 元素"
+msgstr "CMP 引擎"
#. Tag: para
#: The_CMP_Engine.xml:7
#, no-c-format
+#, fuzzy
msgid ""
"This chapter will explore the use of container managed persistence (CMP) in "
"JBoss. We will assume a basic familiarity the EJB CMP model and focus on the "
@@ -34,28 +35,38 @@
"coverage of basic CMP concepts, we recommend <emphasis>Enterprise Java "
"Beans, Fourth Edition</emphasis> (O'Reilly 2004)."
msgstr ""
+"本章将探索 JBoss 里 Container Managed Persistence (CMP) 的使用。我们将假定你"
+"基本熟悉 EJB CMP 模型而把重点放在 JBoss CMP 引擎的操作上。特别是我们将讨论如"
+"何配置和优化 JBoss 里运行的 CMP 应用程序。对于 CMP 概念的介绍,我们推荐你首先"
+"阅读<emphasis>《Enterprise Java Beans, Fourth Edition》</emphasis> (O'"
+"Reilly 2004)。"
#. Tag: title
#: The_CMP_Engine.xml:11
#, fuzzy, no-c-format
msgid "Example Code"
-msgstr "URL示例包括:"
+msgstr "示例代码"
#. Tag: para
#: The_CMP_Engine.xml:12
#, no-c-format
+#, fuzzy
msgid ""
"This chapter is example-driven. We will work with the crime portal "
"application which stores information about imaginary criminal organizations. "
"The data model we will be working with is shown in <xref linkend="
"\"Example_Code-The_crime_portal_example_classes\"/>."
msgstr ""
+"本章内容将通过例程来推进。我们将研究存储虚构的犯罪组织信息的 crime portal 应"
+"用程序。<xref linkend=\"Example_Code-The_crime_portal_example_classes\"/> 展"
+"示了我们使用的数据模型。"
#. Tag: title
#: The_CMP_Engine.xml:16
#, no-c-format
+#, fuzzy
msgid "The crime portal example classes"
-msgstr ""
+msgstr "crime portal 例程里的类"
#. Tag: para
#: The_CMP_Engine.xml:23
@@ -69,6 +80,7 @@
#. Tag: programlisting
#: The_CMP_Engine.xml:26
#, no-c-format
+#, fuzzy
msgid "[examples]$ ant -Dchap=cmp2 config"
msgstr "[examples]$ ant -Dchap=cmp2 config"
@@ -84,6 +96,7 @@
#. Tag: programlisting
#: The_CMP_Engine.xml:30
#, no-c-format
+#, fuzzy
msgid ""
"15:46:36,704 INFO [OrganizationBean$Proxy] Creating organization Yakuza, "
"Japanese Gangsters\n"
@@ -140,31 +153,39 @@
#. Tag: para
#: The_CMP_Engine.xml:31
#, no-c-format
+#, fuzzy
msgid ""
"Since the beans in the examples are configured to have their tables removed "
"on undeployment, anytime you restart the JBoss server you need to rerun the "
"config target to reload the example data and re-deploy the application."
msgstr ""
+"既然本例里的 bean 都配置成在卸载时删除数据库表,每当你启动 JBoss 服务器时,你"
+"都需要重新运行 config 目标来加载示例数据并重部署应用程序。"
#. Tag: title
#: The_CMP_Engine.xml:35
#, no-c-format
+#, fuzzy
msgid "Enabling CMP Debug Logging"
-msgstr ""
+msgstr "启用 CMP Debug 日志"
#. Tag: para
#: The_CMP_Engine.xml:36
#, no-c-format
+#, fuzzy
msgid ""
"In order to get meaningful feedback from the chapter tests, you will want to "
"increase the log level of the CMP subsystem before running running the test. "
"To enable debug logging add the following category to your <literal>log4j."
"xml</literal> file:"
msgstr ""
+"要从单元测试里得到有意义的反馈,在运行测试前你需要提高 CMP 子系统的日志级别。"
+"要启用 debug 日志,请在 <literal>log4j.xml</literal> 文件里添加下列类别:"
#. Tag: programlisting
#: The_CMP_Engine.xml:39
#, no-c-format
+#, fuzzy
msgid ""
"<category name=\"org.jboss.ejb.plugins.cmp\">\n"
" <priority value=\"DEBUG\"/>\n"
@@ -177,16 +198,21 @@
#. Tag: para
#: The_CMP_Engine.xml:40
#, no-c-format
+#, fuzzy
msgid ""
"In addition to this, it is necessary to decrease the threshold on the "
"<literal>CONSOLE</literal> appender to allow debug level messages to be "
"logged to the console. The following changes also need to be applied to the "
"<literal>log4j.xml</literal> file."
msgstr ""
+"除此以外,有必要降低 <literal>CONSOLE</literal> appender 的限制来允许 debug "
+"级别的信息输出到控制台上。<literal>log4j.xml</literal> 文件也需要进行下面的改"
+"动。"
#. Tag: programlisting
#: The_CMP_Engine.xml:43
#, no-c-format
+#, fuzzy
msgid ""
"<appender name=\"CONSOLE\" class=\"org.apache.log4j.ConsoleAppender"
"\">\n"
@@ -223,15 +249,19 @@
#. Tag: para
#: The_CMP_Engine.xml:44
#, no-c-format
+#, fuzzy
msgid ""
"To see the full workings of the CMP engine you would need to enable the "
"custom <literal>TRACE</literal> level priority on the <literal>org.jboss.ejb."
"plugins.cmp</literal> category as shown here:"
msgstr ""
+"要看到 CMP 引擎的全部信息,如下所示,你需要启用 <literal>org.jboss.ejb."
+"plugins.cmp</literal> 类别上自定义的 <literal>TRACE</literal> 级别的优先级:"
#. Tag: programlisting
#: The_CMP_Engine.xml:47
#, no-c-format
+#, fuzzy
msgid ""
"<category name=\"org.jboss.ejb.plugins.cmp\">\n"
" <priority value=\"TRACE\" class=\"org.jboss.logging.XLevel\"/>\n"
@@ -244,27 +274,33 @@
#. Tag: title
#: The_CMP_Engine.xml:51
#, no-c-format
+#, fuzzy
msgid "Running the examples"
-msgstr ""
+msgstr "运行示例程序"
#. Tag: para
#: The_CMP_Engine.xml:52
#, no-c-format
+#, fuzzy
msgid ""
"The first test target illustrates a number of the customization features "
"that will be discussed throughout this chapter. To run these tests execute "
"the following ant target:"
msgstr ""
+"第一个 test 目标演示了本章将讨论的大量自定义特征。要运行这些测试,请执行下面"
+"的 Ant 目标:"
#. Tag: programlisting
#: The_CMP_Engine.xml:55
#, no-c-format
+#, fuzzy
msgid "[examples]$ ant -Dchap=cmp2 -Dex=test run-example"
msgstr "[examples]$ ant -Dchap=cmp2 -Dex=test run-example"
#. Tag: programlisting
#: The_CMP_Engine.xml:56
#, no-c-format
+#, fuzzy
msgid ""
"22:30:09,862 DEBUG [OrganizationEJB#findByPrimaryKey] Executing SQL: SELECT "
"t0_OrganizationEJ\n"
@@ -321,6 +357,7 @@
#. Tag: para
#: The_CMP_Engine.xml:60
#, no-c-format
+#, fuzzy
msgid ""
"The other main target runs a set of tests to demonstrate the optimized "
"loading configurations presented in <xref linkend=\"The_CMP_Engine-"
@@ -330,16 +367,23 @@
"the changes to the log4j.xml file, but it may take a minute or so. The "
"following shows the actual execution of the readahead client:"
msgstr ""
+"main 目标运行一系列的测试来演示 <xref linkend=\"The_CMP_Engine-"
+"Optimized_Loading\"/> 里讲述的优化载入配置。既然设置了正确的日志级别,read-"
+"ahead 将显示一些有用的所执行的查询的信息。请注意,虽然你并不需要重启 JBoss 服"
+"务器来应用对 log4j.xml 文件的修改,但这也需要一分钟左右的时间。下面显示了 "
+"readahead 客户端的实际执行情况:"
#. Tag: programlisting
#: The_CMP_Engine.xml:63
#, no-c-format
+#, fuzzy
msgid "[examples]$ ant -Dchap=cmp2 -Dex=readahead run-example"
msgstr "[examples]$ ant -Dchap=cmp2 -Dex=readahead run-example"
#. Tag: para
#: The_CMP_Engine.xml:64
#, no-c-format
+#, fuzzy
msgid ""
"When the readahead client is executed, all of the SQL queries executed "
"during the test are displayed in the JBoss server console. The important "
@@ -347,10 +391,14 @@
"the columns selected, and the number of rows loaded. The following shows the "
"read-ahead none portion of the JBoss server console output from readahead:"
msgstr ""
+"当 readahead 客户端被执行时,测试期间执行的所有的 SQL 查询都显示在 JBoss 服务"
+"器控制台上。当分析输出时要注意的是执行的查询、选择的列以及加载的行的数量。下"
+"面显示的是 JBoss 服务器控制台输出的 read-ahead none 部分。"
#. Tag: programlisting
#: The_CMP_Engine.xml:67
#, no-c-format
+#, fuzzy
msgid ""
"22:44:31,570 INFO [ReadAheadTest] \n"
"########################################################\n"
@@ -427,20 +475,22 @@
#. Tag: para
#: The_CMP_Engine.xml:68
#, no-c-format
+#, fuzzy
msgid ""
"We will revisit this example and explore the output when we discuss the "
"settings for optimized loading."
-msgstr ""
+msgstr "在讨论优化加载的设置时,我们将再次使用这个示例并进一步探讨其输出。"
#. Tag: title
#: The_CMP_Engine.xml:76
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc Structure"
-msgstr "The JBoss AS directroy structure"
+msgstr "jbosscmp-jdbc 的结构"
#. Tag: para
#: The_CMP_Engine.xml:77
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>jbosscmp-jdbc.xml</literal> descriptor is used to control the "
"behavior of the JBoss engine. This can be done globally through the "
@@ -448,19 +498,28 @@
"server configuration file set, or per EJB JAR deployment via a <literal>META-"
"INF/jbosscmp-jdbc.xml</literal> descriptor."
msgstr ""
+"我们使用 <literal>jbosscmp-jdbc.xml</literal> 描述符来控制 JBoss 引擎的行为。"
+"这可以通过服务器配置文件集里的 <literal>conf/standardjbosscmp-jdbc.xml</"
+"literal> 描述符进行全局设置,或者通过 <literal>META-INF/jbosscmp-jdbc.xml</"
+"literal> 对每个 EJB JAR 部署进行设置。"
#. Tag: para
#: The_CMP_Engine.xml:80
#, no-c-format
+#, fuzzy
msgid ""
"The DTD for the <literal>jbosscmp-jdbc.xml</literal> descriptor can be found "
"in <literal>JBOSS_DIST/docs/dtd/jbosscmp-jdbc_4_0.dtd</literal>. The public "
"doctype for this DTD is:"
msgstr ""
+"<literal>JBOSS_DIST/docs/dtd/jbosscmp-jdbc_4_0.dtd</literal> 定义了"
+"<literal>jbosscmp-jdbc.xml</literal> 描述符使用的 DTD。此 DTD 的 public "
+"doctype 是:"
#. Tag: programlisting
#: The_CMP_Engine.xml:83
#, no-c-format
+#, fuzzy
msgid ""
"<!DOCTYPE jbosscmp-jdbc PUBLIC\n"
" \"-//JBoss//DTD JBOSSCMP-JDBC 4.0//EN\"\n"
@@ -473,20 +532,24 @@
#. Tag: para
#: The_CMP_Engine.xml:84
#, no-c-format
+#, fuzzy
msgid ""
"The top level elements are shown in <xref linkend="
"\"The_jbosscmp_jdbc_Structure-The_jbosscmp_jdbc_content_model.\"/>."
msgstr ""
+"<xref linkend=\"The_jbosscmp_jdbc_Structure-The_jbosscmp_jdbc_content_model."
+"\"/> 展示了顶层的元素:"
#. Tag: title
#: The_CMP_Engine.xml:88
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc content model."
-msgstr "The descriptors element content model"
+msgstr "jbosscmp-jdbc 内容模型。"
#. Tag: para
#: The_CMP_Engine.xml:97
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">defaults</emphasis>: The defaults section allows for "
"the specification of default behavior/settings for behavior that controls "
@@ -495,10 +558,15 @@
"linkend=\"The_CMP_Engine-Defaults\"/> for the details of the defaults "
"content."
msgstr ""
+"<emphasis role=\"bold\">defaults</emphasis>:defaults 部分允许对控制 Entity "
+"Bean 的行为的缺省行文/设置进行定义。这简化了 entity beans 部分里公用行为所需"
+"的信息。关于 defaults 内容的细节,请参考 <xref linkend=\"The_CMP_Engine-"
+"Defaults\"/>。"
#. Tag: para
#: The_CMP_Engine.xml:102
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">enterprise-beans</emphasis>: The <literal>enterprise-"
"beans</literal> element allows for customization of entity beans defined in "
@@ -506,10 +574,15 @@
"descriptor. This is described in detail in <xref linkend=\"The_CMP_Engine-"
"Entity_Beans\"/>."
msgstr ""
+"<emphasis role=\"bold\">enterprise-beans</emphasis>:<literal>enterprise-"
+"beans</literal> 元素允许自定义 <literal>ejb-jar.xml</"
+"literal><literal>enterprise-beans</literal> 描述符里定义的 entity bean。"
+"<xref linkend=\"The_CMP_Engine-Entity_Beans\"/> 里对它进行了详细描述。"
#. Tag: para
#: The_CMP_Engine.xml:107
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">relationships</emphasis>: The "
"<literal>relationships</literal> element allows for the customization of "
@@ -517,10 +590,14 @@
"in detail in <xref linkend=\"The_CMP_Engine-Container_Managed_Relationships"
"\"/>."
msgstr ""
+"<emphasis role=\"bold\">relationships</emphasis>:<literal>relationships</"
+"literal> 元素允许对 entity 关系表和加载行为进行自定义。<xref linkend="
+"\"The_CMP_Engine-Container_Managed_Relationships\"/> 对它进行了详细描述。"
#. Tag: para
#: The_CMP_Engine.xml:112
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">dependent-value-classes</emphasis>: The "
"<literal>dependent-value-classes</literal> element allows for the "
@@ -528,20 +605,30 @@
"value classes are described in detail in <xref linkend=\"CMP_Fields-"
"Dependent_Value_Classes_DVCs\"/> (DVCs)."
msgstr ""
+"<emphasis role=\"bold\">dependent-value-classes</emphasis>:"
+"<literal>dependent-value-classes</literal> 元素允许对 dependent value 类和表"
+"之间的映射进行自定义。<xref linkend=\"CMP_Fields-Dependent_Value_Classes_DVCs"
+"\"/> 里对 Dependent value 类进行了详细描述。"
#. Tag: para
#: The_CMP_Engine.xml:117
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">type-mappings</emphasis>: The <literal>type-"
"mappings</literal> element defines the Java to SQL type mappings for a "
"database, along with SQL templates, and function mappings. This is described "
"in detail in <xref linkend=\"The_CMP_Engine-Datasource_Customization\"/>."
msgstr ""
+"<emphasis role=\"bold\">type-mappings</emphasis>:<literal>type-mappings</"
+"literal> 元素定义了用于数据库的 Java 与 SQL 类型的映射关系、SQL 模板以及函数"
+"映射。<xref linkend=\"The_CMP_Engine-Datasource_Customization\"/> 里对它进行"
+"了详细描述。"
#. Tag: para
#: The_CMP_Engine.xml:122
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">entity-commands</emphasis>: The <literal>entity-"
"commands</literal> element allows for the definition of the entity creation "
@@ -549,10 +636,15 @@
"store. This is described in detail in <xref linkend=\"The_CMP_Engine-"
"Entity_Commands_and_Primary_Key_Generation\"/>."
msgstr ""
+"<emphasis role=\"bold\">entity-commands</emphasis>:<literal>entity-"
+"commands</literal> 元素定义负责在持久性存储里创建 Entity 实例的 entity "
+"creation command 实例。<xref linkend=\"The_CMP_Engine-"
+"Entity_Commands_and_Primary_Key_Generation\"/> 里对它进行了详细描述。"
#. Tag: para
#: The_CMP_Engine.xml:127
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">user-type-mappings</emphasis>: The <literal>user-"
"type-mappings</literal> elements defines a mapping of a user types to a "
@@ -562,26 +654,37 @@
"user type. Details of the user type mappings are described in <xref linkend="
"\"Datasource_Customization-User_Type_Mappings\"/>."
msgstr ""
+"<emphasis role=\"bold\">user-type-mappings</emphasis>:<literal>user-type-"
+"mappings</literal> 元素用 mapper 类定义了用户类型和列之间的映射。Mapper 类就"
+"像一个中介。进行存储时,它获取用户类型的实例并将其转换成 column 值。当进行加"
+"载时,它获取一个 Column 值并转换成用户类型的实例。<xref linkend="
+"\"Datasource_Customization-User_Type_Mappings\"/> 里对用户类型映射进行了详细"
+"描述。"
#. Tag: para
#: The_CMP_Engine.xml:132
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">reserved-words</emphasis>: The <literal>reserved-"
"words</literal> element defines one or more reserved words that should be "
"escaped when generating tables. Each reserved word is specified as the "
"content of a <literal>word</literal> element."
msgstr ""
+"<emphasis role=\"bold\">reserved-words</emphasis>:<literal>reserved-words</"
+"literal> 元素定义了产生表时不能使用的一个或多个保留字。每个保留字都通过 "
+"<literal>word</literal> 元素进行指定。"
#. Tag: title
#: The_CMP_Engine.xml:140
#, fuzzy, no-c-format
msgid "Entity Beans"
-msgstr "EJB 2.x 里的 Entity Bean"
+msgstr "Entity Bean"
#. Tag: para
#: The_CMP_Engine.xml:141
#, no-c-format
+#, fuzzy
msgid ""
"We'll start our look at entity beans in JBoss by examining one of the "
"CMP entity beans in the crime portal. We'll look at the gangster bean, "
@@ -590,19 +693,28 @@
"VM to get the performance benefit as from local entity beans, the use of "
"local entity beans is strongly encouraged."
msgstr ""
+"通过 crime portal 里的一个 CMP Entity Bean,我们将开始学习 JBoss 里的 entity "
+"bean。我们将讨论作为本地 CMP entity bean 实现的 gangster bean。虽然 JBoss 可"
+"以提供远程 entity bean,它在相同的 VM 里使用引用传递(pass-by-reference)模式"
+"来获取和本地 entity bean 一样的性能优化。但我们还是鼓励尽量使用本地 entity "
+"bean。"
#. Tag: para
#: The_CMP_Engine.xml:144
#, no-c-format
+#, fuzzy
msgid ""
"We'll start with the required home interface. Since we're only "
"concerned with the CMP fields at this point, we'll show only the methods "
"dealing with the CMP fields."
msgstr ""
+"我们将从必需的 home 接口开始。既然目前我们只关心 CMP 字段,我们将只显示和 "
+"CMP 字段相关的方法。"
#. Tag: programlisting
#: The_CMP_Engine.xml:147
#, no-c-format
+#, fuzzy
msgid ""
"// Gangster Local Home Interface\n"
"public interface GangsterHome \n"
@@ -627,14 +739,16 @@
#. Tag: para
#: The_CMP_Engine.xml:148
#, no-c-format
+#, fuzzy
msgid ""
"The local interface is what clients will use to talk. Again, it contains "
"only the CMP field accessors."
-msgstr ""
+msgstr "客户用 local 接口来进行对话。它只包含 CMP 字段的 accessor。"
#. Tag: programlisting
#: The_CMP_Engine.xml:151
#, no-c-format
+#, fuzzy
msgid ""
"// Gangster Local Interface \n"
"public interface Gangster\n"
@@ -669,14 +783,18 @@
#. Tag: para
#: The_CMP_Engine.xml:152
#, no-c-format
+#, fuzzy
msgid ""
"Finally, we have the actual gangster bean. Despite it's size, very "
"little code is actually required. The bulk of the class is the create method."
msgstr ""
+"最后,我们看到的实际的 gangster bean。它实际上只需要极少的代码。这个类的主要"
+"部分是 create 方法。"
#. Tag: programlisting
#: The_CMP_Engine.xml:155
#, no-c-format
+#, fuzzy
msgid ""
"// Gangster Implementation Class\n"
"public abstract class GangsterBean \n"
@@ -767,15 +885,20 @@
#. Tag: para
#: The_CMP_Engine.xml:156
#, no-c-format
+#, fuzzy
msgid ""
"The only thing missing now is the <literal>ejb-jar.xml</literal> deployment "
"descriptor. Although the actual bean class is named <literal>GangsterBean</"
"literal>, we've called the entity <literal>GangsterEJB</literal>."
msgstr ""
+"现在唯一缺少的是 <literal>ejb-jar.xml</literal> 部署描述符。虽然实际的 bean "
+"的类名是<literal>GangsterBean</literal>,我们将称其为 entity "
+"<literal>GangsterEJB</literal>。"
#. Tag: programlisting
#: The_CMP_Engine.xml:159
#, no-c-format
+#, fuzzy
msgid ""
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<ejb-jar xmlns=\"http://java.sun.com/xml/ns/\"Whats_new_in_JBoss_4-"
@@ -876,22 +999,28 @@
#. Tag: para
#: The_CMP_Engine.xml:160
#, no-c-format
+#, fuzzy
msgid ""
"Note that we've specified a CMP version of <literal>2.x</literal> to "
"indicate that this is EJB 2.x CMP entity bean. The abstract schema name was "
"set to <literal>gangster</literal>. That will be important when we look at "
"EJB-QL queries in <xref linkend=\"The_CMP_Engine-Queries\"/>."
msgstr ""
+"请注意,我们已经指定了 CMP 版本为 <literal>2.x</literal> 以表示这是一个 EJB "
+"2.x CMP entity bean。抽象模式名称被设置为 <literal>gangster</literal>。在 "
+"<xref linkend=\"The_CMP_Engine-Queries\"/> 里讨论 EJB-QL 查询时,这将很重要。"
#. Tag: title
#: The_CMP_Engine.xml:164
#, no-c-format
+#, fuzzy
msgid "Entity Mapping"
-msgstr ""
+msgstr "Entity 映射"
#. Tag: para
#: The_CMP_Engine.xml:165
#, no-c-format
+#, fuzzy
msgid ""
"The JBoss configuration for the entity is declared with an <literal>entity</"
"literal> element in the <literal>jbosscmp-jdbc.xml</literal> file. This file "
@@ -902,10 +1031,17 @@
"the top level <literal>jbosscmp-jdbc</literal> element. A stubbed out entity "
"configuration is shown below."
msgstr ""
+"该 entity 的 JBoss 配置用 <literal>jbosscmp-jdbc.xml</literal> 文件里的 "
+"<literal>entity</literal> 元素进行声明。这个文件存在于 EJB JAR 的 "
+"<literal>META-INF</literal> 目录下,它包含所有用来配置 CMP 映射的可选配置信"
+"息。每个 entity bean 的 <literal>entity</literal> 元素都在 "
+"<literal>enterprise-beans</literal> 里进行分组,以 <literal>jbosscmp-jdbc</"
+"literal> 为顶层元素。下面是这个 entity 的根配置。"
#. Tag: programlisting
#: The_CMP_Engine.xml:168
#, no-c-format
+#, fuzzy
msgid ""
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<!DOCTYPE jbosscmp-jdbc PUBLIC\n"
@@ -950,6 +1086,7 @@
#. Tag: para
#: The_CMP_Engine.xml:169
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>ejb-name</literal> element is required to match the entity "
"specification here with the one in the <literal>ejb-jar.xml</literal> file. "
@@ -965,18 +1102,29 @@
"The_entity_element_content_model\"/> shows the full <literal>entity</"
"literal> content model."
msgstr ""
+"<literal>ejb-name</literal> 元素需要匹配 <literal>ejb-jar.xml</literal> 文件"
+"里的 entity 定义。这个元素的剩余部分指定或覆盖和该 bean 相关的全局或应用程序"
+"的 CMP 缺省值以及 CMP 的映射细节。应用程序的缺省设置来自 <literal>jbosscmp-"
+"jdbc.xml</literal> 文件的 <literal>defaults</literal> 部分而全局设置来自当前"
+"服务器配置文件集的 <literal>conf</literal> 目录下的 "
+"<literal>standardjbosscmp-jdbc.xml</literal> 文件里的 <literal>defaults</"
+"literal> 部分。 <xref linkend=\"The_CMP_Engine-Defaults\"/> 里将讨论 "
+"<literal>defaults</literal> 部分的设置。<xref linkend=\"Entity_Mapping-"
+"The_entity_element_content_model\"/> 展示了完整的 <literal>entity</literal> "
+"的内容格式。"
#. Tag: title
#: The_CMP_Engine.xml:173
#, fuzzy, no-c-format
msgid "The entity element content model"
-msgstr "The descriptors element content model"
+msgstr "entity 元素的内容模型"
#. Tag: para
#: The_CMP_Engine.xml:180
#, no-c-format
+#, fuzzy
msgid "A detailed description of each entity element follows:"
-msgstr ""
+msgstr "下面是对每个 entity 元素的详细描述:"
#. Tag: para
#: The_CMP_Engine.xml:185
@@ -987,13 +1135,14 @@
"an <literal>ejb-name</literal> of an entity in the <literal>ejb-jar.xml</"
"literal> file."
msgstr ""
-"<emphasis role=\"bold\">name</emphasis>:这是虚拟主机的 DNS 名。至少一个 "
-"<literal>Host</literal> 元素必须用对应于所包含的 <literal>Engine</literal> "
-"的 <literal>defaultHost</literal> 值的名字来配置。"
+"<emphasis role=\"bold\">ejb-name</emphasis>:这个元素是配置所适用的 EJB 的名"
+"称。这个元素必须匹配 <literal>ejb-jar.xml</literal> 文件里的某个 entity 的 "
+"<literal>ejb-name</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:190
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">datasource</emphasis>: This optional element is the "
"<literal>jndi-name</literal> used to look up the datasource. All database "
@@ -1003,10 +1152,16 @@
"The default is <literal>java:/DefaultDS</literal> unless overridden in the "
"defaults section."
msgstr ""
+"<emphasis role=\"bold\">datasource</emphasis>:这个可选元素是用来查找数据库"
+"的 <literal>jndi-name</literal>。entity 或关系型表使用的所有数据库连接都从数"
+"据源(datasource)获得。我们不推荐把不同的数据源用于 entity,因为这极大地限制"
+"了 finders 和 ejbSelects 可以查询的范围。除非在 defaults 部分进行覆盖,它的缺"
+"省值是 <literal>java:/DefaultDS</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:195
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">datasource-mapping</emphasis>: This optional element "
"specifies the name of the <literal>type-mapping</literal>, which determines "
@@ -1015,10 +1170,16 @@
"\"Datasource_Customization-Mapping\"/>. The default is <literal>Hypersonic "
"SQL</literal> unless overridden in the defaults section."
msgstr ""
+"<emphasis role=\"bold\">datasource-mapping</emphasis>:这个可选元素指定 "
+"<literal>type-mapping</literal> 的名称,它决定 Java 类型如何映射到 SQL 类型,"
+"以及 EJB-QL 功能如何映射到数据库专有的功能。<xref linkend="
+"\"Datasource_Customization-Mapping\"/> 里将讨论类型映射。除非在 defaults 部分"
+"进行覆盖,它的缺省值是 <literal>Hypersonic SQL</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:200
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">create-table</emphasis>: This optional element when "
"true, specifies that JBoss should attempt to create a table for the entity. "
@@ -1028,40 +1189,53 @@
"development when the table structure changes often. The default is false "
"unless overridden in the defaults section."
msgstr ""
+"<emphasis role=\"bold\">create-table</emphasis>:如果设置这个可选元素为 "
+"true,表示 JBoss 应该试图为这个 entity 创建一个表。当应用程序被部署时,JBoss "
+"将在创建表之前检查它是否已经存在。如果找到了一个表,JBoss 将进行记录且不再创"
+"建。在部署的早期,但表结果经常变动时,这个选项非常有用。除非在 defauts 部分进"
+"行覆盖,它的缺省值为 false。"
#. Tag: para
#: The_CMP_Engine.xml:205 The_CMP_Engine.xml:2553
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">alter-table</emphasis>: If <literal>create-table</"
"literal> is used to automatically create the schema, <literal>alter-table</"
"literal> can be used to keep the schema current with changes to the entity "
"bean. Alter table will perform the following specific tasks:"
msgstr ""
+"<emphasis role=\"bold\">alter-table</emphasis>:如果 <literal>create-table</"
+"literal> 被用来自动创建表,<literal>alter-table</literal> 则被用来应用 "
+"entity bean 的当前变动。Alter table 将执行下面的特殊任务:"
#. Tag: para
#: The_CMP_Engine.xml:210 The_CMP_Engine.xml:2558
#, no-c-format
+#, fuzzy
msgid "new fields will be created"
-msgstr ""
+msgstr "添加新的字段"
#. Tag: para
#: The_CMP_Engine.xml:215 The_CMP_Engine.xml:2563
#, no-c-format
+#, fuzzy
msgid "fields which are no longer used will be removed"
-msgstr ""
+msgstr "不再使用的字段将被删除"
#. Tag: para
#: The_CMP_Engine.xml:220 The_CMP_Engine.xml:2568
#, no-c-format
+#, fuzzy
msgid ""
"string fields which are shorter than the declared length will have their "
"length increased to the declared length. (not supported by all databases)"
-msgstr ""
+msgstr "字符串字段如果比所声明的要短,则扩大至所声明的长度。(不是所有数据库都支持)"
#. Tag: para
#: The_CMP_Engine.xml:227
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">remove-table</emphasis>: This optional element when "
"true, JBoss will attempt to drop the table for each entity and each relation "
@@ -1070,10 +1244,15 @@
"stages of development when the table structure changes often. The default is "
"false unless overridden in the defaults section."
msgstr ""
+"<emphasis role=\"bold\">remove-table</emphasis>:如果这个可选元素为 true,"
+"JBoss 将试图删除每个 entity 以及关系型表匹配的关系所对应的表。当应用程序被卸"
+"载时,JBoss 将试图删除这个表。在部署的早期,当表结构经常变动时,这个选项非常"
+"有用。除非在 defauts 部分进行覆盖,它的缺省值是 false。"
#. Tag: para
#: The_CMP_Engine.xml:232 The_CMP_Engine.xml:801
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">post-table-create</emphasis>: This optional element "
"specifies an arbitrary SQL statement that should be executed immediately "
@@ -1081,10 +1260,14 @@
"<literal>create-table</literal> is true and the table did not previously "
"exist."
msgstr ""
+"<emphasis role=\"bold\">post-table-create</emphasis>:这个可选元素指定在数据"
+"库表被创建后立即执行的任意 SQL 语句。如果 <literal>create-table</literal> 为 "
+"true 且表以前不存在时,这个命令才会被执行。去"
#. Tag: para
#: The_CMP_Engine.xml:237
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">read-only</emphasis>: This optional element when "
"true specifies that the bean provider will not be allowed to change the "
@@ -1098,10 +1281,19 @@
"in <xref linkend=\"CMP_Fields-Read_only_Fields\"/>. The default is false "
"unless overridden in the <literal>defaults</literal> section."
msgstr ""
+"<emphasis role=\"bold\">read-only</emphasis>:这个可选元素为 true 时表示不允"
+"许 bean 提供者改变任何字段的值。只读字段不能存储、插入数据库。如果主键字段是"
+"只读的,那么 create 方法将抛出 <literal>CreateException</literal>。如果对只读"
+"字段调用 set 存取方法,它将抛出 <literal>EJBException</literal>。只读字段可用"
+"于数据库触发器(Trigger)填值的字段。<literal>read-only</literal> 选项可以根"
+"据 <literal>cmp-field</literal> 逐个覆盖,这将在 <xref linkend=\"CMP_Fields-"
+"Read_only_Fields\"/> 里进行讨论。除非在 <literal>defaults</literal> 部分覆"
+"盖,它的缺省值是 false。"
#. Tag: para
#: The_CMP_Engine.xml:242
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">read-time-out</emphasis>: This optional element is "
"the amount of time in milliseconds that a read on a read-only field is "
@@ -1111,10 +1303,16 @@
"If <literal>read-only</literal> is false, this value is ignored. The default "
"is -1 unless overridden in the <literal>defaults</literal> section."
msgstr ""
+"<emphasis role=\"bold\">read-time-out</emphasis>:这个可选元素定义只读字段的"
+"读操作的有效期(毫秒数)。0 表示在事务启动时总是重新加载,而 -1 表示用不超"
+"时。这个选项也可以根据 <literal>cmp-field</literal> 进行覆盖。如果 "
+"<literal>read-only</literal> 为 false,这个值将被忽略。除非在 "
+"<literal>defaults</literal> 部分进行覆盖,其缺省值是 -1。"
#. Tag: para
#: The_CMP_Engine.xml:247
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">row-locking</emphasis>: This optional element if "
"true specifies that JBoss will lock all rows loaded in a transaction. Most "
@@ -1124,44 +1322,65 @@
"this entity. The default is false unless overridden in the "
"<literal>defaults</literal> section."
msgstr ""
+"<emphasis role=\"bold\">row-locking</emphasis>:这个可选元素为 true 时表示 "
+"JBoss 将锁住在事务里加载的所有记录。大多数数据库通过在加载 entity 时调用 "
+"<literal>SELECT FOR UPDATE</literal> 来实现这个功能,但实际的语法由这个 "
+"entity 使用的 datasource-mapping 里的 <literal>row-locking-template</"
+"literal> 决定。除非在 <literal>defaults</literal> 部分进行覆盖,其缺省值是 "
+"false。"
#. Tag: para
#: The_CMP_Engine.xml:252
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">pk-constraint</emphasis>: This optional element if "
"true specifies that JBoss will add a primary key constraint when creating "
"tables. The default is true unless overridden in the defaults section."
msgstr ""
+"<emphasis role=\"bold\">pk-constraint</emphasis>:这个可选元素为 true 表示 "
+"JBoss 将在创建表时添加一个主键约束。除非在 defaults 部分进行覆盖,其缺省值是 "
+"true。"
#. Tag: para
#: The_CMP_Engine.xml:257
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">read-ahead</emphasis>: This optional element "
"controls caching of query results and <literal>cmr-fields</literal> for the "
"entity. This option is discussed in <xref linkend=\"Optimized_Loading-"
"Read_ahead\"/>."
msgstr ""
+"<emphasis role=\"bold\">read-ahead</emphasis>:这个可选元素控制查询结果的缓存"
+"和 entity 的 <literal>cmr-fields</literal>。<xref linkend="
+"\"Optimized_Loading-Read_ahead\"/> 将对它进行访问。"
#. Tag: para
#: The_CMP_Engine.xml:262
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">fetch-size</emphasis>: This optional element "
"specifies the number of entities to read in one round-trip to the underlying "
"datastore. The default is 0 unless overridden in the defaults section."
msgstr ""
+"<emphasis role=\"bold\">fetch-size</emphasis>:这个可选元素指定从底层数据库一"
+"次所读取的 entity 的个数。除非在 defaults 部分进行覆盖,其缺省值是 0。"
#. Tag: para
#: The_CMP_Engine.xml:267
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">list-cache-max</emphasis>: This optional element "
"specifies the number of read-lists that can be tracked by this entity. This "
"option is discussed in <literal>on-load</literal>. The default is 1000 "
"unless overridden in the defaults section."
msgstr ""
+"<emphasis role=\"bold\">list-cache-max</emphasis>:这个可选元素指定这个 "
+"entity 可追踪的 read-list 的个数。这个选项将在 <literal>on-load</literal> 里"
+"进行讨论。除非在 defaults 部分进行覆盖,其缺省值是 1000。"
#. Tag: para
#: The_CMP_Engine.xml:272 The_CMP_Engine.xml:2615
@@ -1171,8 +1390,9 @@
"is loaded from the read ahead cache, JBoss can remove the data used from the "
"read ahead cache. The default is <literal>false</literal>."
msgstr ""
-"<emphasis role=\"bold\">keystorePass</emphasis>:这是从指定 keystore 文件里访"
-"问服务器证书所用到的密码。它的缺省值是 <literal>changeit</literal>."
+"<emphasis role=\"bold\">clean-read-ahead-on-load</emphasis>:当 entity 从 "
+"read ahead 缓存里载入时,JBoss 可以删除 read ahead 缓存里的数据。其缺省值是 "
+"<literal>false</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:277
@@ -1183,47 +1403,63 @@
"will be stored in one row of this table. The default is the <literal>ejb-"
"name</literal>."
msgstr ""
-"<emphasis role=\"bold\">PartitionName</emphasis> 是一个可选的属性,它指定与 "
-"HA-JNDI 服务通讯的不同节点的群集的名字。它的缺省值是 "
-"<literal>DefaultPartition</literal>。"
+"<emphasis role=\"bold\">table-name</emphasis>:这个可选元素是为该 entity 存储"
+"数据的表的名称。每个 entity 实例都将存储在这个表的一行里。它的缺省值是 "
+"<literal>ejb-name</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:282
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">cmp-field</emphasis>: The optional element allows "
"one to define how the <literal>ejb-jar.xml</literal><literal>cmp-field</"
"literal> is mapped onto the persistence store. This is discussed in <xref "
"linkend=\"The_CMP_Engine-CMP_Fields\"/>."
msgstr ""
+"<emphasis role=\"bold\">cmp-field</emphasis>:这个可选元素允许你定义怎样把 "
+"<literal>ejb-jar.xml</literal> 里的 <literal>cmp-field</literal> 映射到持久性"
+"存储里。这将在 <xref linkend=\"The_CMP_Engine-CMP_Fields\"/> 进行讨论。"
#. Tag: para
#: The_CMP_Engine.xml:287
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">load-groups</emphasis>: This optional element "
"specifies one or more groupings of CMP fields to declare load groupings of "
"fields. This is discussed in <xref linkend=\"Optimized_Loading-Load_Groups\"/"
">."
msgstr ""
+"<emphasis role=\"bold\">load-groups</emphasis>:这个可选元素指定一个或多个 "
+"CMP 字段组来声明字段的 load grouping。这将在 <xref linkend="
+"\"Optimized_Loading-Load_Groups\"/> 里进行讨论。"
#. Tag: para
#: The_CMP_Engine.xml:292
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">eager-load-groups</emphasis>: This optional element "
"defines one or more load grouping as eager load groups. This is discussed in "
"<xref linkend=\"Loading_Process-Eager_loading_Process\"/>."
msgstr ""
+"<emphasis role=\"bold\">eager-load-groups</emphasis>:这个可选元素将一个或多"
+"个 load grouping 定义为 eager load group。这将在 <xref linkend="
+"\"Loading_Process-Eager_loading_Process\"/> 里进行讨论。"
#. Tag: para
#: The_CMP_Engine.xml:297
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">lazy-load-groups</emphasis>: This optional element "
"defines one or more load grouping as lazy load groups. This is discussed in "
"<xref linkend=\"Loading_Process-Lazy_loading_Process\"/>."
msgstr ""
+"<emphasis role=\"bold\">lazy-load-groups</emphasis>:这个可选元素将一个或多"
+"个 load grouping 定义为 lazy load group。这将在 <xref linkend="
+"\"Loading_Process-Lazy_loading_Process\"/> 里进行讨论。"
#. Tag: para
#: The_CMP_Engine.xml:302
@@ -1233,22 +1469,25 @@
"the definition of finders and selectors. This is discussed in <xref linkend="
"\"The_CMP_Engine-Queries\"/>."
msgstr ""
-"<emphasis role=\"bold\">PartitionConfig</emphasis> 是一个用来为这个群集(参"
-"看 <xref linkend=\"jbosscache-jgroups\"/>)指定 JGroup 配置选项的元素"
-"(element)。"
+"<emphasis role=\"bold\">query</emphasis>:这个可选元素定义 finder 和 "
+"selector。这将在 <xref linkend=\"The_CMP_Engine-Queries\"/> 里进行讨论。"
#. Tag: para
#: The_CMP_Engine.xml:307
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">unknown-pk</emphasis>: This optional element allows "
"one to define how an unknown primary key type of <literal>java.lang.Object</"
"literal> maps to the persistent store."
msgstr ""
+"<emphasis role=\"bold\">unknown-pk</emphasis>:这个可选元素允许你定义未知主键"
+"类型的 <literal>java.lang.Object</literal> 怎样映射到持久性存储里。"
#. Tag: para
#: The_CMP_Engine.xml:312
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">entity-command</emphasis>: This optional element "
"allows one to define the entity creation command instance. Typically this is "
@@ -1256,34 +1495,48 @@
"generation. This is described in detail in <xref linkend=\"The_CMP_Engine-"
"Entity_Commands_and_Primary_Key_Generation\"/>."
msgstr ""
+"<emphasis role=\"bold\">entity-command</emphasis>:这个可选元素允许你定义创"
+"建 entity 的 command 实例。通常它用来定义自定义的 command 实例来产生主键。这"
+"将在 <xref linkend=\"The_CMP_Engine-"
+"Entity_Commands_and_Primary_Key_Generation\"/> 里进行详细讨论。"
#. Tag: para
#: The_CMP_Engine.xml:317
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">optimistic-locking</emphasis>: This optional element "
"defines the strategy to use for optimistic locking. This is described in "
"detail in <xref linkend=\"The_CMP_Engine-Optimistic_Locking\"/>."
msgstr ""
+"<emphasis role=\"bold\">optimistic-locking</emphasis>:这个可选元素定义用于乐"
+"观锁定的策略。这将在 <xref linkend=\"The_CMP_Engine-Optimistic_Locking\"/> 里"
+"进行详细讨论。"
#. Tag: para
#: The_CMP_Engine.xml:322
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">audit</emphasis>: This optional element defines the "
"CMP fields that will be audited. This is described in detail in <xref "
"linkend=\"CMP_Fields-Auditing_Entity_Access\"/>."
msgstr ""
+"<emphasis role=\"bold\">audit</emphasis>:这个可选元素定义将被审计的 CMP 字"
+"段。这将在 <xref linkend=\"CMP_Fields-Auditing_Entity_Access\"/> 里进行详细讨"
+"论。"
#. Tag: title
#: The_CMP_Engine.xml:332
#, no-c-format
+#, fuzzy
msgid "CMP Fields"
-msgstr ""
+msgstr "CMP 字段"
#. Tag: para
#: The_CMP_Engine.xml:333
#, no-c-format
+#, fuzzy
msgid ""
"CMP fields are declared on the bean class as abstract getter and setter "
"methods that follow the JavaBean property accessor conventions. Our gangster "
@@ -1292,16 +1545,22 @@
"this section we will look at how the configure these declared CMP fields and "
"control the persistence and behavior."
msgstr ""
+"CMP 字段在 bean 类里被声明为 abstract getter 和 setter 方法,这遵循了 "
+"JavaBean 的属性存取器约定。例如,gangster bean 有一个 <literal>getName()</"
+"literal> 和 <literal>setName()</literal> 方法来访问 <literal>name</literal> "
+"CMP 字段。本节我们将查看怎样配置这些声明的 CMP 字段和控制其持久性以及行为。"
#. Tag: title
#: The_CMP_Engine.xml:337
#, no-c-format
+#, fuzzy
msgid "CMP Field Declaration"
-msgstr ""
+msgstr "CMP 字段声明"
#. Tag: para
#: The_CMP_Engine.xml:338
#, no-c-format
+#, fuzzy
msgid ""
"The declaration of a CMP field starts in the <literal>ejb-jar.xml</literal> "
"file. On the gangster bean, for example, the <literal>gangsterId</literal>, "
@@ -1309,10 +1568,15 @@
"literal> would be declared in the <literal>ejb-jar.xml</literal> file as "
"follows:"
msgstr ""
+"CMP 字段的声明可以从 <literal>ejb-jar.xml</literal> 文件开始。以 gangster "
+"bean 为例,<literal>gangsterId</literal>、<literal>name</literal>、"
+"<literal>nickName</literal> 和 <literal>badness</literal> 都在 <literal>ejb-"
+"jar.xml</literal> 里进行声明:"
#. Tag: programlisting
#: The_CMP_Engine.xml:341
#, no-c-format
+#, fuzzy
msgid ""
"<ejb-jar>\n"
" <enterprise-beans>\n"
@@ -1349,21 +1613,26 @@
#. Tag: para
#: The_CMP_Engine.xml:342
#, no-c-format
+#, fuzzy
msgid ""
"Note that the J2EE deployment descriptor doesn't declare any object-"
"relational mapping details or other configuration. It is nothing more than a "
"simple declaration of the CMP fields."
msgstr ""
+"请注意 J2EE 的部署描述符并不声明任何和对象相关的映射细节或其他配置。它仅仅是"
+"对 CMP 字段的简单声明。"
#. Tag: title
#: The_CMP_Engine.xml:348
#, no-c-format
+#, fuzzy
msgid "CMP Field Column Mapping"
-msgstr ""
+msgstr "CMP 字段列映射"
#. Tag: para
#: The_CMP_Engine.xml:349
#, no-c-format
+#, fuzzy
msgid ""
"The relational mapping configuration of a CMP field is done in the "
"<literal>jbosscmp-jdbc.xml</literal> file. The structure is similar to the "
@@ -1371,18 +1640,23 @@
"that has <literal>cmp-field</literal> elements under it with the additional "
"configuration details."
msgstr ""
+"CMP 字段的关系映射配置在 <literal>jbosscmp-jdbc.xml</literal> 里完成。这个结"
+"构类似于带有包含 <literal>cmp-field</literal> 元素的 entity "
+"<literal>element</literal> 的 <literal>ejb-jar.xml</literal> 文件。"
#. Tag: para
#: The_CMP_Engine.xml:352
#, no-c-format
+#, fuzzy
msgid ""
"The following is shows the basic column name and data type mappings for the "
"gangster bean."
-msgstr ""
+msgstr "下面展示了 gangster bean 的基本列名称和数据类型映射。"
#. Tag: programlisting
#: The_CMP_Engine.xml:355
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -1449,20 +1723,21 @@
"The full content model of the <literal>cmp-field</literal> element of the "
"<literal>jbosscmp-jdbc.xml</literal> is shown below."
msgstr ""
-"你可以用 <literal>jboss-web.xml</literal> 文件里的 <literal>replication-"
-"config</literal> 元素进一步配置会话复制。下面是一个例子:"
+"下面是 <literal>jbosscmp-jdbc.xml</literal> 的 <literal>cmp-field</literal> "
+"元素的完整内容模型。"
#. Tag: title
#: The_CMP_Engine.xml:361
#, fuzzy, no-c-format
msgid "The JBoss entity element content model"
-msgstr "The descriptors element content model"
+msgstr "JBoss 的 entity 元素的内容模型"
#. Tag: para
#: The_CMP_Engine.xml:369
#, no-c-format
+#, fuzzy
msgid "A detailed description of each element follows:"
-msgstr ""
+msgstr "下面是对每个元素的详细描述:"
#. Tag: para
#: The_CMP_Engine.xml:374
@@ -1473,19 +1748,24 @@
"match the <literal>field-name</literal> element of a <literal>cmp-field</"
"literal> declared for this entity in the <literal>ejb-jar.xml</literal> file."
msgstr ""
-"<emphasis role=\"bold\">name</emphasis>:这是虚拟主机的 DNS 名。至少一个 "
-"<literal>Host</literal> 元素必须用对应于所包含的 <literal>Engine</literal> "
-"的 <literal>defaultHost</literal> 值的名字来配置。"
+"<emphasis role=\"bold\">field-name</emphasis>:这个必需元素是需要配置的 "
+"<literal>cmp-field</literal> 的名字。它必须符合在 <literal>ejb-jar.xml</"
+"literal> 文件里声明的 <literal>cmp-field</literal> 的 <literal>field-name</"
+"literal> 元素的值。"
#. Tag: para
#: The_CMP_Engine.xml:379
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">read-only</emphasis>: This declares that field in "
"question is read-only. This field will not be written to the database by "
"JBoss. Read-only fields are discussed in <xref linkend=\"CMP_Fields-"
"Read_only_Fields\"/>."
msgstr ""
+"<emphasis role=\"bold\">read-only</emphasis>:这声明该字段为只读。JBoss 将不"
+"能把这个字段写入数据库。只读字段会在 <xref linkend=\"CMP_Fields-"
+"Read_only_Fields\"/> 里进行讨论。"
#. Tag: para
#: The_CMP_Engine.xml:384
@@ -1494,8 +1774,8 @@
"<emphasis role=\"bold\">read-only-timeout</emphasis>: This is the time in "
"milliseconds that a read-only field value will be considered valid."
msgstr ""
-"<emphasis role=\"bold\">InitialStateRetrievalTimeout</emphasis> 指定的取得初"
-"始状态所需要等待的时间(毫秒数)。"
+"<emphasis role=\"bold\">read-only-timeout</emphasis>:只读字段的值的有效期,"
+"单位为毫秒。"
#. Tag: para
#: The_CMP_Engine.xml:389
@@ -1505,23 +1785,28 @@
"name of the column to which the <literal>cmp-field</literal> is mapped. The "
"default is to use the <literal>field-name</literal> value."
msgstr ""
-"<emphasis role=\"bold\">PartitionName</emphasis> 是一个可选属性,它指定了当"
-"前 <literal>HASessionState</literal> 协议所服务的群集名称。它的缺省值是 "
-"<literal>DefaultPartition</literal>。"
+"<emphasis role=\"bold\">column-name</emphasis>:是一个可选属性,它指定了 "
+"<literal>cmp-field</literal> 所映射的列的名字。它缺省使用 <literal>field-"
+"name</literal> 的值。"
#. Tag: para
#: The_CMP_Engine.xml:394
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">not-null</emphasis>: This optional element indicates "
"that JBoss should add a NOT NULL to the end of the column declaration when "
"automatically creating the table for this entity. The default for primary "
"key fields and primitives is not null."
msgstr ""
+"<emphasis role=\"bold\">not-null</emphasis>:这个可选元素指定 JBoss 为这个 "
+"entity 自动创建表时应该在列声明结尾添加一个非空值(NOT NULL)。主键字段和原始"
+"类型的缺省值都是非空值。"
#. Tag: para
#: The_CMP_Engine.xml:399
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">jdbc-type</emphasis>: This is the JDBC type that is "
"used when setting parameters in a JDBC prepared statement or loading data "
@@ -1530,10 +1815,15 @@
"specified. The default JDBC type will be based on the database type in the "
"<literal>datasourcemapping</literal>."
msgstr ""
+"<emphasis role=\"bold\">jdbc-type</emphasis>:这是在设置 JDBC prepared 语句或"
+"从 JDBC 结果集里载入数据时使用的 JDBC 类型。其有效值在 <literal>java.sql."
+"Types</literal> 里定义。它只有在指定了 <literal>sql-type</literal> 时才需要。"
+"缺省的 JDBC 类型将基于 <literal>datasourcemapping</literal> 里的数据库类型。"
#. Tag: para
#: The_CMP_Engine.xml:404
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">sql-type</emphasis>: This is the SQL type that is "
"used in create table statements for this field. Valid SQL types are only "
@@ -1541,39 +1831,53 @@
"type</literal> is specified. The default SQL type will be base on the "
"database type in the <literal>datasourcemapping</literal>"
msgstr ""
+"<emphasis role=\"bold\">sql-type</emphasis>:这是在 create table 语句里使用"
+"的 SQL 类型。它只有在指定了 <literal>jdbc-type</literal> 时才需要。缺省的 "
+"SQL 类型将基于 <literal>datasourcemapping</literal> 里的类型。"
#. Tag: para
#: The_CMP_Engine.xml:409
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">property</emphasis>: This optional element allows "
"one to define how the properties of a dependent value class CMP field should "
"be mapped to the persistent store. This is discussed further in <xref "
"linkend=\"CMP_Fields-Dependent_Value_Classes_DVCs\"/>."
msgstr ""
+"<emphasis role=\"bold\">property</emphasis>:这个可选元素允许你定义 "
+"dependent value 类的 CMP 字段的属性怎样映射到持久性存储。<xref linkend="
+"\"CMP_Fields-Dependent_Value_Classes_DVCs\"/> 里将对它进行进一步讨论。"
#. Tag: para
#: The_CMP_Engine.xml:414
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">auto-increment</emphasis>: The presence of this "
"optional field indicates that it is automatically incremented by the "
"database layer. This is used to map a field to a generated column as well as "
"to an externally manipulated column."
msgstr ""
+"<emphasis role=\"bold\">auto-increment</emphasis>:这个可选字段指定数据库层进"
+"行自动递增。它被用来把字段映射到生成的列以及外部操作的列。"
#. Tag: para
#: The_CMP_Engine.xml:419
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">dbindex</emphasis>: The presence of this optional "
"field indicates that the server should create an index on the corresponding "
"column in the database. The index name will be fieldname_index."
msgstr ""
+"<emphasis role=\"bold\">dbindex</emphasis>:这个可选字段指定服务器应该创建数"
+"据库里对应的列的索引。索引名将为 fieldname_index。"
#. Tag: para
#: The_CMP_Engine.xml:424
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">check-dirty-after-get</emphasis>: This value "
"defaults to false for primitive types and the basic java.lang immutable "
@@ -1583,26 +1887,37 @@
"expensive, you can optimize it away by setting <literal>check-dirty-after-"
"get</literal> to false."
msgstr ""
+"<emphasis role=\"bold\">check-dirty-after-get</emphasis>:对于原始类型和基本"
+"的 java.lang immutable wrappers (<literal>Integer</literal>, "
+"<literal>String</literal>, etc...) 来说,这个值缺省为 false。对于潜在的易变对"
+"象,在 get 操作后 JBoss 将把其字段标记为潜在的 dirty。如果 dirty 检查代价过"
+"大,你可以把 <literal>check-dirty-after-get</literal> 设为 false 来进行优化。"
#. Tag: para
#: The_CMP_Engine.xml:429
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">state-factory</emphasis>: This specifies class name "
"of a state factory object which can perform dirty checking for this field. "
"State factory classes must implement the <literal>CMPFieldStateFactory</"
"literal> interface."
msgstr ""
+"<emphasis role=\"bold\">state-factory</emphasis>:它指定状态工厂(state "
+"factory)对象的类名,这个对象可以对该字段进行脏检查(dirty checking)。状态工"
+"厂类必须实现 <literal>CMPFieldStateFactory</literal> 接口。"
#. Tag: title
#: The_CMP_Engine.xml:437
#, no-c-format
+#, fuzzy
msgid "Read-only Fields"
-msgstr ""
+msgstr "只读字段"
#. Tag: para
#: The_CMP_Engine.xml:438
#, no-c-format
+#, fuzzy
msgid ""
"JBoss allows for read-only CMP fields by setting the <literal>read-only</"
"literal> and <literal>read-time-out</literal> elements in the <literal>cmp-"
@@ -1615,10 +1930,19 @@
"fields are useful for fields that are filled in by database triggers, such "
"as last update. A read-only CMP field declaration example follows:"
msgstr ""
+"JBoss 可以设置 <literal>cmp-field</literal> 声明里的 <literal>read-only</"
+"literal> 和 <literal>read-time-out</literal> 元素来声明只读 CMP 字段。这些元"
+"素和 entity 级别的一样。如果字段为只读,它不能在 <literal>INSERT</literal> "
+"或 <literal>UPDATE</literal> 语句里使用。如果主键字段是<literal>只读</"
+"literal>的,那么 create 方法将抛出 <literal>CreateException</literal>。如果对"
+"只读字段调用 set 方法,它将抛出 <literal>EJBException</literal>。只读属性对于"
+"通过数据库触发器(trigger)填值的字段很有用,如最近的更新。下面是一个只读的 "
+"CMP 字段声明示例:"
#. Tag: programlisting
#: The_CMP_Engine.xml:441
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -1649,12 +1973,14 @@
#. Tag: title
#: The_CMP_Engine.xml:445
#, no-c-format
+#, fuzzy
msgid "Auditing Entity Access"
-msgstr ""
+msgstr "对 Entity 的访问的审计"
#. Tag: para
#: The_CMP_Engine.xml:446
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>audit</literal> element of the entity section allows one to "
"specify how access to and entity bean is audited. This is only allowed when "
@@ -1663,12 +1989,16 @@
"linkend=\"Auditing_Entity_Access-The_jbosscmp_jdbc."
"xml_audit_element_content_model\"/>."
msgstr ""
+"entity 部分的 <literal>audit</literal> 元素允许你指定如何审计对 entity bean "
+"的访问。这只有 entity bean 通过安全域访问时才被允许,所以要建立一个调用者标"
+"识。<xref linkend=\"Auditing_Entity_Access-The_jbosscmp_jdbc."
+"xml_audit_element_content_model\"/> 给出了 audit 元素的内容模型。"
#. Tag: title
#: The_CMP_Engine.xml:450
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc.xml audit element content model"
-msgstr "The descriptors element content model"
+msgstr "jbosscmp-jdbc.xml 里 audit 元素的内容格式"
#. Tag: para
#: The_CMP_Engine.xml:459
@@ -1679,9 +2009,9 @@
"the indicated <literal>column-name</literal> or cmp <literal>field-name</"
"literal>."
msgstr ""
-"<emphasis role=\"bold\">LenientEjbLink</emphasis>:这个标记指出在尝试 "
-"<literal>jboss-web.xml</literal> 里的 <literal>jndi-name</literal> 时应该忽"
-"略 <literal>ejb-link</literal> 错误。这个标记的缺省值是 ture。"
+"<emphasis role=\"bold\">created-by</emphasis>:这个可选元素指出创建 entity 的"
+"调用者应该保存为指定的 <literal>column-name</literal> 或 CMP 的 "
+"<literal>field-name</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:464
@@ -1692,9 +2022,9 @@
"indicated <literal>column-name</literal> or cmp <literal>field-name</"
"literal>."
msgstr ""
-"<emphasis role=\"bold\">LenientEjbLink</emphasis>:这个标记指出在尝试 "
-"<literal>jboss-web.xml</literal> 里的 <literal>jndi-name</literal> 时应该忽"
-"略 <literal>ejb-link</literal> 错误。这个标记的缺省值是 ture。"
+"<emphasis role=\"bold\">created-time</emphasis>:这个可选元素指定 entity 创建"
+"的时间应该保存为 <literal>column-name</literal> 或 cmp <literal>field-name</"
+"literal>。"
#. Tag: para
#: The_CMP_Engine.xml:469
@@ -1705,9 +2035,9 @@
"either the indicated <literal>column-name</literal> or CMP <literal>field-"
"name</literal>."
msgstr ""
-"<emphasis role=\"bold\">LenientEjbLink</emphasis>:这个标记指出在尝试 "
-"<literal>jboss-web.xml</literal> 里的 <literal>jndi-name</literal> 时应该忽"
-"略 <literal>ejb-link</literal> 错误。这个标记的缺省值是 ture。"
+"<emphasis role=\"bold\">updated-by</emphasis>:这个可选元素指定最后修改 "
+"entity 的调用者应该保存在指定的 <literal>column-name</literal> 或 CMP "
+"<literal>field-name</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:474
@@ -1718,13 +2048,14 @@
"either the indicated <literal>column-name</literal> or CMP <literal>field-"
"name</literal>."
msgstr ""
-"<emphasis role=\"bold\">LenientEjbLink</emphasis>:这个标记指出在尝试 "
-"<literal>jboss-web.xml</literal> 里的 <literal>jndi-name</literal> 时应该忽"
-"略 <literal>ejb-link</literal> 错误。这个标记的缺省值是 ture。"
+"<emphasis role=\"bold\">LenientEjbLink</emphasis>:这个可选元素指定最后一次"
+"对 entity 的修改应该保存到指定的 <literal>column-name</literal> 或 CMP "
+"<literal>field-name</literal> 里。"
#. Tag: para
#: The_CMP_Engine.xml:479
#, no-c-format
+#, fuzzy
msgid ""
"For each element, if a <literal>field-name</literal> is given, the "
"corresponding audit information should be stored in the specified CMP field "
@@ -1736,10 +2067,17 @@
"will be able to access audit information in EJB-QL queries using the audit "
"field names, but not directly through the entity accessors."
msgstr ""
+"对于每个元素,如果给定了 <literal>field-name</literal>,相应的审计信息应该保"
+"存在被访问的 entity bean 的指定 CMP 字段里。请注意,你并不需要在这个 entity "
+"上声明相应的 CMP 字段。如果有匹配的字段名,你就可以在应用程序里用对应的 CMP "
+"字段的 abstract getter 和 setter 方法来访问审计字段。否则,审计字段将被创建并"
+"添加到 entity 内部。你可以在 EJB-QL 查询通过审计字段访问审计信息,但不能直接"
+"用 entity 的 accessor 进行访问。"
#. Tag: para
#: The_CMP_Engine.xml:482
#, no-c-format
+#, fuzzy
msgid ""
"If, on the other hand, a <literal>column-name</literal> is specified, the "
"corresponding audit information should be stored in the indicated column of "
@@ -1747,16 +2085,21 @@
"literal> and <literal>sql-type</literal> element can then be used to define "
"the storage type."
msgstr ""
+"从另外一方面将,如果指定了 <literal>column-name</literal>,对应的审计信息应该"
+"存储在 entity 表里指定的列里。如果 JBoss 正在创建表,<literal>jdbc-type</"
+"literal> 和 <literal>sql-type</literal> 元素可以用来定义存储类型。"
#. Tag: para
#: The_CMP_Engine.xml:485
#, no-c-format
+#, fuzzy
msgid "The declaration of audit information with given column names is shown below."
-msgstr ""
+msgstr "下面展示了对给定列名称的审计信息的声明。"
#. Tag: programlisting
#: The_CMP_Engine.xml:488
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -1807,12 +2150,14 @@
#. Tag: title
#: The_CMP_Engine.xml:492
#, no-c-format
+#, fuzzy
msgid "Dependent Value Classes (DVCs)"
-msgstr ""
+msgstr "Dependent Value 类 (DVC)"
#. Tag: para
#: The_CMP_Engine.xml:493
#, no-c-format
+#, fuzzy
msgid ""
"A dependent value class (DVC) is a fancy term used to identity any Java "
"class that is the type of a <literal>cmp-field</literal> other than the "
@@ -1821,10 +2166,15 @@
"single database column. Although not discussed here, there are several known "
"issues with the long-term storage of classes in serialized form."
msgstr ""
+"Dependent value 类(DVC)是用来识别类型为某个 <literal>cmp-field</literal> 而"
+"不是可自动识别的核心类型如 String 或数字值的 Java 类。在缺省情况下,DVC 是可"
+"序列化的,且序列化的格式保存在单个的数据库列里。虽然我们在这里不会进行讨论,"
+"但以序列化形式对类进行长期保存有几个已知的问题。"
#. Tag: para
#: The_CMP_Engine.xml:496
#, no-c-format
+#, fuzzy
msgid ""
"JBoss also supports the storage of the internal data of a DVC into one or "
"more columns. This is useful for supporting legacy JavaBeans and database "
@@ -1837,10 +2187,17 @@
"s name spread across several fields. With a DVC, multiple columns can be "
"mapped to one logical field."
msgstr ""
+"JBoss 也支持把 DVC 的内部数据保存到一个或多列里。这对于支持遗留的 JavaBean 和"
+"数据库结构很有用。具有高度平行结构的数据库(如带有字段 <literal>SHIP_LINE1</"
+"literal>、<literal>SHIP_LINE2</literal>、<literal>SHIP_CITY</literal> 等并用"
+"于帐单地址的另外一系列字段的 <literal>PURCHASE_ORDER</literal> 表)并不少见。"
+"其他常见的数据库结构包括带有独立的地区、总机、分机字段的电话号码,或者跨多个"
+"字段的名称。使用 DVC,你可以把多列映射至一个逻辑字段。"
#. Tag: para
#: The_CMP_Engine.xml:499
#, no-c-format
+#, fuzzy
msgid ""
"JBoss requires that a DVC to be mapped must follow the JavaBeans naming "
"specification for simple properties, and that each property to be stored in "
@@ -1851,22 +2208,30 @@
"literal> element within the <literal>dependent-value-classes</literal> "
"element."
msgstr ""
+"JBoss 要求 DVC 的映射必须遵循 JavaBean 用于简单属性的命名规则,以及每个存储在"
+"数据库里的属性都必须有 getter 和 setter 方法。而且,这个 bean 序列化且必须有"
+"一个无参数的构造函数。属性可以为任何简单类型,未映射的 DVC 或映射的 DVC,但不"
+"能是 EJB。DVC 映射在 <literal>dependent-value-classes</literal> 元素的 "
+"<literal>dependent-value-class</literal> 元素里进行指定。"
#. Tag: title
#: The_CMP_Engine.xml:503
#, no-c-format
+#, fuzzy
msgid "The jbosscmp-jdbc dependent-value-class element model."
-msgstr ""
+msgstr "jbosscmp-jdbc 的 dependent-value-class 元素的内容格式。"
#. Tag: para
#: The_CMP_Engine.xml:510
#, no-c-format
+#, fuzzy
msgid "Here is an example of a simple <literal>ContactInfo</literal> DVC class."
-msgstr ""
+msgstr "下面是一个简单的 <literal>ContactInfo</literal> DVC 类的例子。"
#. Tag: programlisting
#: The_CMP_Engine.xml:513
#, no-c-format
+#, fuzzy
msgid ""
"public class ContactInfo \n"
" implements Serializable \n"
@@ -1963,14 +2328,16 @@
#. Tag: para
#: The_CMP_Engine.xml:514
#, no-c-format
+#, fuzzy
msgid ""
"The contact info includes a phone number, which is represented by another "
"DVC class."
-msgstr ""
+msgstr "这里的联系信息包括由另外一个 DVC 类表示的电话号码。"
#. Tag: programlisting
#: The_CMP_Engine.xml:517
#, no-c-format
+#, fuzzy
msgid ""
"public class PhoneNumber\n"
" implements Serializable \n"
@@ -2009,12 +2376,14 @@
#. Tag: para
#: The_CMP_Engine.xml:518
#, no-c-format
+#, fuzzy
msgid "The DVC mappings for these two classes are relatively straight forward."
-msgstr ""
+msgstr "这两个类的 DVC 映射是相对简单的。"
#. Tag: programlisting
#: The_CMP_Engine.xml:521
#, no-c-format
+#, fuzzy
msgid ""
"<dependent-value-classes>\n"
" <dependent-value-class>\n"
@@ -2095,6 +2464,7 @@
#. Tag: para
#: The_CMP_Engine.xml:522
#, no-c-format
+#, fuzzy
msgid ""
"Each DVC is declared with a <literal>dependent-value-class</literal> "
"element. A DVC is identified by the Java class type declared in the class "
@@ -2105,10 +2475,16 @@
"in the case of a local entity and the entity handle in the case of a remote "
"entity."
msgstr ""
+"每个 DVC 都用 <literal>dependent-value-class</literal> 元素进行声明。DVC 由 "
+"class 元素里声明的 Java 类的类型来标识。property 元素声明将被持久化的属性。这"
+"个规格是基于 <literal>cmp-field</literal> 元素的,所以不需加以说明。这个限制"
+"也将在将来的版本里删除。目前的计划包括在本地 entity 情况下保存主键字段而在远"
+"程 entity 情况下保存 entity 句柄。"
#. Tag: para
#: The_CMP_Engine.xml:525
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>dependent-value-classes</literal> section defines the internal "
"structure and default mapping of the classes. When JBoss encounters a field "
@@ -2126,10 +2502,21 @@
"named <literal>info</literal> that uses the <literal>ContactInfo</literal> "
"DVC would have the following columns:"
msgstr ""
+"<literal>dependent-value-classes</literal> 部分定义了这个类的内部结构和缺省映"
+"射。当 JBoss 遇到具有未知类型的字段时,它将搜索注册的 DVC 列表,如果找到了一"
+"个 DVC,它将以序列化的形式把这个字段存储在某个单列里。JBoss 不支持 DVC 的继"
+"承;因此,这种搜索只局限于已声明的类型。DVC 可以根据其他 DVC 来构造,所以当 "
+"JBoss 采用 DVC 时,它把 DVC 树的结构简化为一系列的列。如果 JBoss 在启动时发"
+"现 DVC 循环,它将抛出 <literal>EJBException</literal>。属性的缺省列名称是 "
+"<literal>cmp-field</literal> 的列名后接下划线,然后是属性的列名。如果这个属性"
+"是一个 DVC,这个过程将被重复。令人,名为 <literal>info</literal> 并使用 "
+"<literal>ContactInfo</literal> DVC 的 <literal>cmp-field</literal> 将具有下"
+"列的列:"
#. Tag: programlisting
#: The_CMP_Engine.xml:528
#, no-c-format
+#, fuzzy
msgid ""
"info_cell_area_code\n"
"info_cell_exchange\n"
@@ -2150,15 +2537,19 @@
#. Tag: para
#: The_CMP_Engine.xml:529
#, no-c-format
+#, fuzzy
msgid ""
"The automatically generated column names can quickly become excessively long "
"and awkward. The default mappings of columns can be overridden in the entity "
"element as follows:"
msgstr ""
+"自动生成的列名可以很快变得很冗长且糟糕。如下所示,列的自动映射可以在 entity "
+"元素里进行覆盖:"
#. Tag: programlisting
#: The_CMP_Engine.xml:532
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -2261,20 +2652,25 @@
#. Tag: para
#: The_CMP_Engine.xml:533
#, no-c-format
+#, fuzzy
msgid ""
"When overriding property info for the entity, you need to refer to the "
"property from a flat perspective as in <literal>cell.areaCode</literal>."
msgstr ""
+"当覆盖 entity 的属性信息时,你需要象 <literal>cell.areaCode</literal> 里一样"
+"从平面的角度来引用这个属性。"
#. Tag: title
#: The_CMP_Engine.xml:541
#, no-c-format
+#, fuzzy
msgid "Container Managed Relationships"
-msgstr ""
+msgstr "Container Managed Relationship"
#. Tag: para
#: The_CMP_Engine.xml:542
#, no-c-format
+#, fuzzy
msgid ""
"Container Managed Relationships (CMRs) are a powerful new feature of CMP "
"2.0. Programmers have been creating relationships between entity objects "
@@ -2290,26 +2686,40 @@
"a relationship cannot be created between two entities in separate "
"applications, even in the same application server."
msgstr ""
+"容器管理的关系(Container Managed Relationships,CMR)是 CMP 2.0 的一个强大功"
+"能。自从引入 EJB 1.0 后,程序员已经在创建 entity 对象之间的关系,但在 CMP "
+"2.0 出现之前,程序员不得不为每种关系编写大量代码并将之存储在伪外部键字段里。"
+"即使最简单的关系都需要冗长的代码,而带有引用完整性(referential integrity)的"
+"复杂关系则需要数小时的编码。而使用 CMP 2.0 不需要手工对关系进行编程。容器可以"
+"管理一对一、一对多和多对多的带有引用完整性的关系。CMR 的限制是它们只定义本地"
+"接口之间的关系。这意味着不能创建处于不同应用程序里的两个 entity 之间的关系,"
+"即使它们位于相同的应用服务器里。"
#. Tag: para
#: The_CMP_Engine.xml:545
#, no-c-format
+#, fuzzy
msgid ""
"There are two basic steps to create a container managed relationship: create "
"the <literal>cmr-field</literal> abstract accessors and declare the "
"relationship in the <literal>ejb-jar.xml</literal> file. The following two "
"sections describe these steps."
msgstr ""
+"创建容器管理的关系(container managed relationship)需要两个基本步骤:创建 "
+"<literal>cmr-field</literal> 的 abstract accessor 并在 <literal>ejb-jar.xml</"
+"literal> 文件里声明关系。下面的两节描述了这些步骤。"
#. Tag: title
#: The_CMP_Engine.xml:549
#, no-c-format
+#, fuzzy
msgid "CMR-Field Abstract Accessors"
-msgstr ""
+msgstr "CMR-Field 的 Abstract Accessor"
#. Tag: para
#: The_CMP_Engine.xml:550
#, no-c-format
+#, fuzzy
msgid ""
"CMR-Field abstract accessors have the same signatures as <literal>cmp-"
"fields</literal>, except that single-valued relationships must return the "
@@ -2319,10 +2729,17 @@
"between organization and gangster, we declare the relationship from "
"organization to gangster in the <literal>OrganizationBean</literal> class:"
msgstr ""
+"CMR-Field 的 abstract accessor 具有和 <literal>cmp-fields</literal> 相同的签"
+"名,除了单一值的关系必须返回相关 entity 的本地接口,且多值的关系可以只返回一"
+"个 <literal>java.util.Collection</literal> (或 <literal>java.util.Set</"
+"literal>) 对象。例如,要声明 organization 和 gangster 之间的一个一对多的关"
+"系,我们可以在 <literal>OrganizationBean</literal> 类里声明 organization 到 "
+"gangster 的关系:"
#. Tag: programlisting
#: The_CMP_Engine.xml:553
#, no-c-format
+#, fuzzy
msgid ""
"public abstract class OrganizationBean\n"
" implements EntityBean \n"
@@ -2331,18 +2748,28 @@
" public abstract void setMemberGangsters(Set gangsters);\n"
"}"
msgstr ""
+"public abstract class OrganizationBean\n"
+" implements EntityBean \n"
+"{\n"
+" public abstract Set getMemberGangsters();\n"
+" public abstract void setMemberGangsters(Set gangsters);\n"
+"}"
#. Tag: para
#: The_CMP_Engine.xml:554
#, no-c-format
+#, fuzzy
msgid ""
"We also can declare the relationship from gangster to organization in the "
"<literal>GangsterBean</literal> class:"
msgstr ""
+"我们也可以在 <literal>GangsterBean</literal> 类里声明 gangster 到 "
+"organization 的关系:"
#. Tag: programlisting
#: The_CMP_Engine.xml:557
#, no-c-format
+#, fuzzy
msgid ""
"public abstract class GangsterBean\n"
" implements EntityBean \n"
@@ -2361,21 +2788,26 @@
#. Tag: para
#: The_CMP_Engine.xml:558
#, no-c-format
+#, fuzzy
msgid ""
"Although each bean declared a CMR field, only one of the two beans in a "
"relationship must have a set of accessors. As with CMP fields, a CMR field "
"is required to have both a getter and a setter method."
msgstr ""
+"虽然每个 bean 都声明了一个 CMR 字段,但只有其中一个 bean 必须具有 accessor。"
+"和 CMP 字段相比,CMR 字段必须具有 getter 以及 setter 方法。"
#. Tag: title
#: The_CMP_Engine.xml:564
#, no-c-format
+#, fuzzy
msgid "Relationship Declaration"
-msgstr ""
+msgstr "关系声明"
#. Tag: para
#: The_CMP_Engine.xml:565
#, no-c-format
+#, fuzzy
msgid ""
"The declaration of relationships in the <literal>ejb-jar.xml</literal> file "
"is complicated and error prone. Although we recommend using a tool like "
@@ -2383,10 +2815,14 @@
"important to understand how the descriptor works. The following illustrates "
"the declaration of the organization/gangster relationship:"
msgstr ""
+"<literal>ejb-jar.xml</literal> 文件里的关系声明比较复杂且容易出错。虽然我们推"
+"荐使用工具(如 XDoclet)来管理 CMR 字段的部署描述符,理解描述符的内容仍然重"
+"要。下面演示了对 organization/gangster 关系的声明:"
#. Tag: programlisting
#: The_CMP_Engine.xml:568
#, no-c-format
+#, fuzzy
msgid ""
"<ejb-jar>\n"
" <relationships>\n"
@@ -2465,6 +2901,7 @@
#. Tag: para
#: The_CMP_Engine.xml:569
#, no-c-format
+#, fuzzy
msgid ""
"As you can see, each relationship is declared with an <literal>ejb-relation</"
"literal> element within the top level <literal>relationships</literal> "
@@ -2475,20 +2912,31 @@
"literal> elements (one for each side of the relationship). The <literal>ejb-"
"relationship-role</literal> tags are as follows:"
msgstr ""
+"如你所看到的,每个关系都用顶层的 <literal>relationships</literal> 元素里的 "
+"<literal>ejb-relation</literal> 元素进行声明。<literal>ejb-relation-name</"
+"literal> 元素指定了关系的名称。这很重要,因为我们需要在 <literal>jbosscmp-"
+"jdbc.xml</literal> 文件里通过名称来进行引用。每个 <literal>ejb-relation</"
+"literal> 都包含两个 <literal>ejb-relationship-role</literal> 元素(分别用于关"
+"系的两方)。下面是 <literal>ejb-relationship-role</literal> 标签:"
#. Tag: para
#: The_CMP_Engine.xml:574
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">ejb-relationshiprole-name</emphasis>: This optional "
"element is used to identify the role and match the database mapping the "
"<literal>jbosscmp-jdbc.xml</literal> file. The relationship role names for "
"each side of a relationship must be different."
msgstr ""
+"<emphasis role=\"bold\">ejb-relationshiprole-name</emphasis>:这个可选元素用"
+"来标识角色并映射 <literal>jbosscmp-jdbc.xml</literal> 文件定义的数据库。关系"
+"的每边的角色名称都必须不同。"
#. Tag: para
#: The_CMP_Engine.xml:579
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">multiplicity</emphasis>: This indicates the "
"multiplicity of this side of the relationship. The valid values are "
@@ -2498,10 +2946,16 @@
"relationship is from one organization to many gangsters. Note, as with all "
"XML elements, this element is case sensitive."
msgstr ""
+"<emphasis role=\"bold\">multiplicity</emphasis>:它指定关系的一边的多重性"
+"(multiplicity)。其有效值是 <literal>One</literal> 或 <literal>Many</"
+"literal>。在这个例子里,organization 的多重性是 <literal>One</literal>,而 "
+"gangster 的多重性是 <literal>Many</literal>,这是因为一个 organization 对应"
+"多个 gangster。请注意,和所有 XML 元素不同,这个元素对大小写敏感。"
#. Tag: para
#: The_CMP_Engine.xml:584
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">cascade-delete</emphasis>: When this optional "
"element is present, JBoss will delete the child entity when the parent "
@@ -2509,12 +2963,17 @@
"other side of the relationship has a multiplicity of one. The default is to "
"not cascade delete."
msgstr ""
+"<emphasis role=\"bold\">cascade-delete</emphasis>:如使用这个可选元素,在父 "
+"entity 被删除时,JBoss 将删除其子 entity。层叠删除(Cascade deletion)只有在"
+"关系的另外一边的多重性为 One 时才允许层叠删除(Cascade deletion)。它缺省是被"
+"禁止的。"
#. Tag: emphasis
#: The_CMP_Engine.xml:590
#, no-c-format
+#, fuzzy
msgid "relationship-role-source"
-msgstr ""
+msgstr "relationship-role-source"
#. Tag: para
#: The_CMP_Engine.xml:594
@@ -2522,13 +2981,16 @@
msgid ""
"<emphasis role=\"bold\">ejb-name</emphasis>: This required element gives the "
"name of the entity that has the role."
-msgstr "<emphasis role=\"bold\">name</emphasis>:参数的变量名,这是必须的。"
+msgstr ""
+"<emphasis role=\"bold\">ejb-name</emphasis>:这是必需的元素,它指定具有这个角"
+"色的 entity 的名称。"
#. Tag: emphasis
#: The_CMP_Engine.xml:602
#, no-c-format
+#, fuzzy
msgid "cmr-field"
-msgstr ""
+msgstr "cmr-field"
#. Tag: para
#: The_CMP_Engine.xml:606
@@ -2536,7 +2998,9 @@
msgid ""
"<emphasis role=\"bold\">cmr-field-name</emphasis>: This is the name of the "
"CMR field of the entity has one, if it has one."
-msgstr "<emphasis role=\"bold\">name</emphasis>:这个元素包含通知类的类全名。"
+msgstr ""
+"<emphasis role=\"bold\">cmr-field-name</emphasis>:如果 entity 具有 CMR 字段"
+"的话,这是该字段的名称。"
#. Tag: para
#: The_CMP_Engine.xml:611
@@ -2546,27 +3010,33 @@
"CMR field, if the field is a collection type. It must be <literal>java.util."
"Collection</literal> or <literal>java.util.Set</literal>."
msgstr ""
-"<emphasis role=\"bold\">prefix</emphasis>:这是每个日志文件名的前缀。它的缺省"
-"值是 <literal>access_log</literal>。"
+"<emphasis role=\"bold\">cmr-field-type</emphasis>:这个 CMR 字段的类型(如果"
+"它是集合类型)。它必须是 <literal>java.util.Collection</literal> 或者 "
+"<literal>java.util.Set</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:618
#, no-c-format
+#, fuzzy
msgid ""
"After adding the CMR field abstract accessors and declaring the "
"relationship, the relationship should be functional. The next section "
"discusses the database mapping of the relationship."
msgstr ""
+"在添加了 CMR 字段 abstract accessor 并声明了关系后,你就可以使用关系了。下节"
+"我们将讨论关系的数据库映射。"
#. Tag: title
#: The_CMP_Engine.xml:624
#, no-c-format
+#, fuzzy
msgid "Relationship Mapping"
-msgstr ""
+msgstr "关系映射"
#. Tag: para
#: The_CMP_Engine.xml:625
#, no-c-format
+#, fuzzy
msgid ""
"Relationships can be mapped using either a foreign key or a separate "
"relation table. One-to-one and one-to-many relationships use the foreign key "
@@ -2580,24 +3050,34 @@
"in <xref linkend=\"Relationship_Mapping-The_jbosscmp_jdbc."
"xml_ejb_relation_element_content_model\"/>."
msgstr ""
+"关系可以用外键或者独立的关系型表来映射。一对一和一对多的关系缺省使用外键的映"
+"射风格,而多对多关系则只使用关系型表风格。关系的映射在 <literal>jbosscmp-"
+"jdbc.xml</literal> 描述符的 <literal>relationships</literal> 部分里通过 "
+"<literal>ejb-relation</literal> 元素进行声明。<literal>ejb-jar.xml</literal> "
+"文件里的 <literal>ejb-relation-name</literal> 标识关系。<xref linkend="
+"\"Relationship_Mapping-The_jbosscmp_jdbc."
+"xml_ejb_relation_element_content_model\"/> 展示了 <literal>jbosscmp-jdbc."
+"xml</literal> 里的 <literal>ejb-relation</literal> 元素的内容格式。"
#. Tag: title
#: The_CMP_Engine.xml:629
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc.xml ejb-relation element content model"
-msgstr "The descriptors element content model"
+msgstr "jbosscmp-jdbc.xml 文件的 ejb-relation 元素的内容格式"
#. Tag: para
#: The_CMP_Engine.xml:636
#, no-c-format
+#, fuzzy
msgid ""
"The basic template of the relationship mapping declaration for "
"<literal>Organization-Gangster</literal> relationship follows:"
-msgstr ""
+msgstr "<literal>Organization-Gangster</literal> 关系映射声明遵循下面的基本模板:"
#. Tag: programlisting
#: The_CMP_Engine.xml:639
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <relationships>\n"
@@ -2652,16 +3132,21 @@
#. Tag: para
#: The_CMP_Engine.xml:640
#, no-c-format
+#, fuzzy
msgid ""
"After the <literal>ejb-relation-name</literal> of the relationship being "
"mapped is declared, the relationship can be declared as read only using the "
"<literal>read-only</literal> and <literal>read-time-out</literal> elements. "
"They have the same semantics as their counterparts in the entity element."
msgstr ""
+"在声明了映射的关系的 <literal>ejb-relation-name</literal> 后,关系可以用 "
+"<literal>read-only</literal> 和 <literal>read-time-out</literal> 元素声明为只"
+"读模式。它们具有和 entity 元素里对应部分相同的模式。"
#. Tag: para
#: The_CMP_Engine.xml:643
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>ejb-relation</literal> element must contain either a "
"<literal>foreign-key-mapping</literal> element or a <literal>relation-table-"
@@ -2671,16 +3156,24 @@
"contain a pair of <literal>ejb-relationship-role</literal> elements as "
"described in the following section."
msgstr ""
+"<literal>ejb-relation</literal> 元素必须包含 <literal>foreign-key-mapping</"
+"literal> 或 <literal>relation-table-mapping</literal> 元素,我们分别在 "
+"<xref linkend=\"Relationship_Mapping-Foreign_Key_Mapping\"/> 和 <xref "
+"linkend=\"Relationship_Mapping-Relation_table_Mapping\"/> 里对它们进行描述。"
+"这个元素也可以包含下面章节里描述的一对 <literal>ejb-relationship-role</"
+"literal> 元素。"
#. Tag: title
#: The_CMP_Engine.xml:647
#, no-c-format
+#, fuzzy
msgid "Relationship Role Mapping"
-msgstr ""
+msgstr "关系角色映射(Relationship Role Mapping)"
#. Tag: para
#: The_CMP_Engine.xml:648
#, no-c-format
+#, fuzzy
msgid ""
"Each of the two <literal>ejb-relationship-role</literal> elements contains "
"mapping information specific to an entity in the relationship. The content "
@@ -2688,32 +3181,42 @@
"<xref linkend=\"Relationship_Role_Mapping-"
"The_jbosscmp_jdbc_ejb_relationship_role_element_content_model\"/> ."
msgstr ""
+"两个 <literal>ejb-relationship-role</literal> 元素都包含关于 entity 的映射信"
+"息。<xref linkend=\"Relationship_Role_Mapping-"
+"The_jbosscmp_jdbc_ejb_relationship_role_element_content_model\"/> 展示了 "
+"<literal>ejb-relationship-role</literal> 元素的内容格式。"
#. Tag: title
#: The_CMP_Engine.xml:652
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc ejb-relationship-role element content model"
-msgstr "The descriptors element content model"
+msgstr "jbosscmp-jdbc 文件里的 ejb-relationship-role 元素的内容格式"
#. Tag: para
#: The_CMP_Engine.xml:659
#, no-c-format
+#, fuzzy
msgid "A detailed description of the main elements follows:"
-msgstr ""
+msgstr "下面是对 main 元素的详细描述:"
#. Tag: para
#: The_CMP_Engine.xml:664
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">ejb-relationship-role-name</emphasis>: This required "
"element gives the name of the role to which this configuration applies. It "
"must match the name of one of the roles declared for this relationship in "
"the <literal>ejb-jar.xml</literal> file."
msgstr ""
+"<emphasis role=\"bold\">ejb-relationship-role-name</emphasis>:这是一个必需元"
+"素,它给出这个配置所适用的角色的名称。它必须匹配 <literal>ejb-jar.xml</"
+"literal> 文件里针对这个关系所声明的角色的名称。"
#. Tag: para
#: The_CMP_Engine.xml:669
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">fk-constraint</emphasis>: This optional element is a "
"true/false value that indicates whether JBoss should add a foreign key "
@@ -2721,10 +3224,14 @@
"add generate the constraint if both the primary table and the related table "
"were created by JBoss during deployment."
msgstr ""
+"<emphasis role=\"bold\">fk-constraint</emphasis>:这个值为 true/false 的可选"
+"元素指定 JBoss 是否应该在这一边的关系的表里添加外键约束。只有主表和相关的表都"
+"在部署期间创建时,JBoss 才生成这个约束。"
#. Tag: para
#: The_CMP_Engine.xml:674
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">key-fields</emphasis>: This optional element "
"specifies the mapping of the primary key fields of the current entity, "
@@ -2736,6 +3243,12 @@
"many side of a one-to-many relationship. The details of this element are "
"described below."
msgstr ""
+"<emphasis role=\"bold\">key-fields</emphasis>:这个可选元素指定当前 entity 的"
+"主键字段的映射,无论它是在关系表还是对象里进行映射。对于当前 entity 的每个主"
+"键字段,<literal>key-fields</literal> 元素都必须包含一个 <literal>key-field</"
+"literal> 元素。如果这一侧的关系不需要外键映射,则 <literal>key-fields</"
+"literal> 元素可以为空。在一对多的关系里,“多”的一侧就是这样的一个例子。下面是"
+"关于这个元素的细节。"
#. Tag: para
#: The_CMP_Engine.xml:679
@@ -2745,23 +3258,27 @@
"controls the caching of this relationship. This option is discussed in <xref "
"linkend=\"Lazy_loading_Process-Relationships\"/>."
msgstr ""
-"<emphasis role=\"bold\">PartitionConfig</emphasis> 是一个用来为这个群集(参"
-"看 <xref linkend=\"jbosscache-jgroups\"/>)指定 JGroup 配置选项的元素"
-"(element)。"
+"<emphasis role=\"bold\">read-ahead</emphasis>:这是一个可选元素,它控制关系的"
+"缓存。<xref linkend=\"Lazy_loading_Process-Relationships\"/> 将讨论这个选项。"
#. Tag: para
#: The_CMP_Engine.xml:684
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">batch-cascade-delete</emphasis>: This indicates that "
"a cascade delete on this relationship should be performed with a single SQL "
"statement. This requires that the relationship be marked as <literal>batch-"
"delete</literal> in the <literal>ejb-jar.xml</literal>."
msgstr ""
+"<emphasis role=\"bold\">batch-cascade-delete</emphasis>:它指出对这个关系的层"
+"叠删除(cascade delete)应该用单个的 SQL 语句来完成。这要求这个关系在 "
+"<literal>ejb-jar.xml</literal> 里标记为 <literal>batch-delete</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:689
#, no-c-format
+#, fuzzy
msgid ""
"As noted above, the <literal>key-fields</literal> element contains a "
"<literal>key-field</literal> for each primary key field of the current "
@@ -2782,10 +3299,24 @@
"illustrates the creation of a new bean configuration that uses "
"<literal>insert-after-ejb-post-create</literal> by default."
msgstr ""
+"如上所述,<literal>key-fields</literal> 元素包含用于当前 entity 的每个主键字"
+"段的 <literal>key-field</literal>。<literal>key-field</literal> 元素使用和 "
+"entity 的 <literal>cmp-field</literal> 元素相同的语法,除了 <literal>key-"
+"field</literal> 不支持 <literal>not-null</literal> 选项。<literal>relation-"
+"table</literal> 的关键字段自动为非空值,这是因为它们是表里的主键。从另外一方"
+"面来说,外键字段必须缺省为非空值。这是因为 CMP 规格要求对数据库的插入发生在 "
+"<literal>ejbCreate</literal> 方法后、而在 <literal>ejbPostCreate</literal> 里"
+"进行更新来反映 CMR 的变动。既然 EJB 规格不允许关系在调用 "
+"<literal>ejbPostCreate</literal> 前被修改,外键的初始值将为空(null)。删除也"
+"有类似的问题。你可以用 <literal>jboss.xml</literal> 文件里的 <literal>insert-"
+"after-ejb-post-create</literal> 容器配置标签来修改这个插入行为。下面的例子演"
+"示了对一个缺省使用 <literal>insert-after-ejb-post-create</literal> 的新的 "
+"bean 的配置的创建过程。"
#. Tag: programlisting
#: The_CMP_Engine.xml:692
#, no-c-format
+#, fuzzy
msgid ""
"<jboss>\n"
" <!-- ... -->\n"
@@ -2816,27 +3347,35 @@
#. Tag: para
#: The_CMP_Engine.xml:693
#, no-c-format
+#, fuzzy
msgid ""
"An alternate means of working around the non-null foreign key issue is to "
"map the foreign key elements onto non-null CMP fields. In this case you "
"simply populate the foreign key fields in <literal>ejbCreate</literal> using "
"the associated CMP field setters."
msgstr ""
+"绕开非空外键问题的另外一个办法是把 foreign key 元素映射到非空的 CMP 字段上。"
+"在这种情况下,你只要简单地用相关的 CMP 字段的 setter 方法传递 "
+"<literal>ejbCreate</literal> 里的外键字段就可以了。"
#. Tag: para
#: The_CMP_Engine.xml:696
#, no-c-format
+#, fuzzy
msgid ""
"The content model of the key-fields element is <xref linkend="
"\"Relationship_Role_Mapping-"
"The_jbosscmp_jdbc_key_fields_element_content_model\"/>."
msgstr ""
+"<xref linkend=\"Relationship_Role_Mapping-"
+"The_jbosscmp_jdbc_key_fields_element_content_model\"/> 描述了 key-fields 元素"
+"的内容格式。"
#. Tag: title
#: The_CMP_Engine.xml:700
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc key-fields element content model"
-msgstr "The descriptors element content model"
+msgstr "jbosscmp-jdbc 文件里的 key-fields 元素的内容格式"
#. Tag: para
#: The_CMP_Engine.xml:707
@@ -2844,20 +3383,24 @@
msgid ""
"A detailed description of the elements contained in the <literal>key-field</"
"literal> element follows:"
-msgstr "下列是 <literal>FC</literal> 元素的可配置属性。"
+msgstr "下面是对 <literal>key-field</literal> 元素包含的元素的详细描述:"
#. Tag: para
#: The_CMP_Engine.xml:712
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">field-name</emphasis>: This required element "
"identifies the field to which this mapping applies. This name must match a "
"primary key field of the current entity."
msgstr ""
+"<emphasis role=\"bold\">field-name</emphasis>:这是一个必需元素,它指定该映射"
+"适用的字段。这个名字必须匹配当前 entity 的主键字段。"
#. Tag: para
#: The_CMP_Engine.xml:717
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">column-name</emphasis>: Use this element to specify "
"the column name in which this primary key field will be stored. If this is "
@@ -2867,16 +3410,25 @@
"<literal>relation-table</literal>. This element is not allowed for mapped "
"dependent value class; instead use the property element."
msgstr ""
+"<emphasis role=\"bold\">column-name</emphasis>:主键字段将被存储的列名。如果"
+"这个关系使用 <literal>foreign-key-mapping</literal>,那么这一列将被添加到相"
+"关 entity 的表里。如果这个关系使用 <literal>relation-table-mapping</"
+"literal>,那么这一列将被添加到 <literal>relation-table</literal> 里。映射的 "
+"dependent value 类不被允许使用这个元素,它可以使用 perperty 元素。"
#. Tag: para
#: The_CMP_Engine.xml:722
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">jdbc-type</emphasis>: This is the JDBC type that is "
"used when setting parameters in a JDBC <literal>PreparedStatement</literal> "
"or loading data from a JDBC ResultSet. The valid types are defined in "
"<literal>java.sql.Types</literal>."
msgstr ""
+"<emphasis role=\"bold\">jdbc-type</emphasis>:这是在设置 JDBC "
+"<literal>PreparedStatement</literal> 的参数或从 JDBC ResultSet 载入数据时使"
+"用的 JDBC 类型。<literal>java.sql.Types</literal> 里定义了其有效值。"
#. Tag: para
#: The_CMP_Engine.xml:727
@@ -2886,8 +3438,8 @@
"used in create table statements for this field. Valid types are only limited "
"by your database vendor."
msgstr ""
-"<emphasis role=\"bold\">SessionIdAlphabet</emphasis>:这是一个用来创建会话 "
-"ID 的字符集。它必须由刚好 65 个唯一的字符组成."
+"<emphasis role=\"bold\">sql-type</emphasis>:这是用于该字段的 create table 语"
+"句所使用的 SQL 类型。其有效值依你的数据库供应商而定。"
#. Tag: para
#: The_CMP_Engine.xml:732
@@ -2895,27 +3447,34 @@
msgid ""
"<emphasis role=\"bold\">property</emphasis>: Use this element for to specify "
"the mapping of a primary key field which is a dependent value class."
-msgstr "<emphasis role=\"bold\">name</emphasis>:这个元素包含通知类的类全名。"
+msgstr ""
+"<emphasis role=\"bold\">property</emphasis>:这个元素指定值为 dependent "
+"value 类的主键字段的映射。"
#. Tag: para
#: The_CMP_Engine.xml:737
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">dbindex</emphasis>: The presence of this optional "
"field indicates that the server should create an index on the corresponding "
"column in the database, and the index name will be <literal>fieldname_index</"
"literal>."
msgstr ""
+"<emphasis role=\"bold\">dbindex</emphasis>:这个可选字段指定服务器应该在数据"
+"库里对应的列上创建索引,且索引名将是 <literal>fieldname_index</literal>。"
#. Tag: title
#: The_CMP_Engine.xml:745
#, no-c-format
+#, fuzzy
msgid "Foreign Key Mapping"
-msgstr ""
+msgstr "外键映射"
#. Tag: para
#: The_CMP_Engine.xml:746
#, no-c-format
+#, fuzzy
msgid ""
"Foreign key mapping is the most common mapping style for one-to-one and one-"
"to-many relationships, but is not allowed for many-to many relationships. "
@@ -2923,10 +3482,15 @@
"foreign <literal>key-mapping</literal> element to the <literal>ejb-relation</"
"literal> element."
msgstr ""
+"对于一对一和一对多的关系来说,外键映射(Foreign key mapping)是最常用的映射风"
+"格,但它不能用在多对多的关系里。简单地把空的外部 <literal>key-mapping</"
+"literal> 元素添加到 <literal>ejb-relation</literal> 元素里就可以声明外键映射"
+"元素。"
#. Tag: para
#: The_CMP_Engine.xml:749
#, no-c-format
+#, fuzzy
msgid ""
"As noted in the previous section, with a foreign key mapping the "
"<literal>key-fields</literal> declared in the <literal>ejb-relationship-"
@@ -2938,10 +3502,18 @@
"in the example) must have a <literal>key-fields</literal> mapping. In one-to-"
"one relationships, one or both roles can have foreign keys."
msgstr ""
+"如前面章节里所述,在 <literal>ejb-relationship-role</literal> 里声明的使用外"
+"键映射的 <literal>key-fields</literal> 将被添加到相关的 entity 的表里。如果 "
+"<literal>key-fields</literal> 元素为空,这个 entity 将不能创建外键。在一对多"
+"的关系里,“多”的一侧(如这个例子里的 <literal>Gangster</literal>)必须具有一"
+"个空的 <literal>key-fields</literal> 元素,而“一”这一侧(如 "
+"<literal>Organization</literal>)则必须具有一个 <literal>key-fields</"
+"literal> 映射。在一对一的关系里,两个角色都可以具有外键。"
#. Tag: para
#: The_CMP_Engine.xml:752
#, no-c-format
+#, fuzzy
msgid ""
"The foreign key mapping is not dependent on the direction of the "
"relationship. This means that in a one-to-one unidirectional relationship "
@@ -2950,10 +3522,14 @@
"Gangster</literal> relationship is shown below with the foreign key elements "
"highlighted in bold:"
msgstr ""
+"外键映射不依赖于关系的方向。这意味着在一对一的单向(只有一边有 accessor 方"
+"法)的关系里,两个角色都可以拥有外键。下面是 <literal>Organization-Gangster</"
+"literal> 关系的完整外键映射,其中外键元素以黑体突出显示:"
#. Tag: programlisting
#: The_CMP_Engine.xml:755
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <relationships>\n"
@@ -3004,42 +3580,52 @@
#. Tag: title
#: The_CMP_Engine.xml:759
#, no-c-format
+#, fuzzy
msgid "Relation table Mapping"
-msgstr ""
+msgstr "关系表映射(Relation table Mapping)"
#. Tag: para
#: The_CMP_Engine.xml:760
#, no-c-format
+#, fuzzy
msgid ""
"Relation table mapping is less common for one-to-one and one-to-many "
"relationships, but is the only mapping style allowed for many-to-many "
"relationships. Relation table mapping is defined using the <literal>relation-"
"table-mapping</literal> element, the content model of which is shown below."
msgstr ""
+"对于一对一和一对多关系来说,关系表映射(Relation table Mapping)不是那么常"
+"用,但它是多对对关系唯一允许的映射风格。关系表映射用 <literal>relation-table-"
+"mapping</literal> 元素进行定义,下面是其内容格式。"
#. Tag: title
#: The_CMP_Engine.xml:764
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc relation-table-mapping element content model"
-msgstr "The descriptors element content model"
+msgstr "jbosscmp-jdbc 文件里的 relation-table-mapping 元素的内容格式"
#. Tag: para
#: The_CMP_Engine.xml:771
#, no-c-format
+#, fuzzy
msgid ""
"The relation-table-mapping for the <literal>Gangster-Job</literal> "
"relationship is shown in with table mapping elements highlighted in bold:"
msgstr ""
+"下面是 <literal>Gangster-Job</literal> 关系的 relation-table-mapping 定义,"
+"其 table mapping 元素以黑体突出显示:"
#. Tag: title
#: The_CMP_Engine.xml:774
#, no-c-format
+#, fuzzy
msgid "The jbosscmp-jdbc.xml Relation-table Mapping"
-msgstr ""
+msgstr "jbosscmp-jdbc.xml 里的关系表映射"
#. Tag: programlisting
#: The_CMP_Engine.xml:775
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <relationships>\n"
@@ -3108,11 +3694,14 @@
#. Tag: para
#: The_CMP_Engine.xml:776
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>relation-table-mapping</literal> element contains a subset of "
"the options available in the <literal>entity</literal> element. A detailed "
"description of these elements is reproduced here for convenience:"
msgstr ""
+"<literal>relation-table-mapping</literal> 元素包含 <literal>entity</literal> "
+"元素的选项的一个子集。为方便起见,下面是对这些元素的详细描述:"
#. Tag: para
#: The_CMP_Engine.xml:781
@@ -3122,13 +3711,14 @@
"the name of the table that will hold data for this relationship. The default "
"table name is based on the entity and <literal>cmr-field</literal> names."
msgstr ""
-"<emphasis role=\"bold\">PartitionName</emphasis> 是一个可选的属性,它指定与 "
-"HA-JNDI 服务通讯的不同节点的群集的名字。它的缺省值是 "
-"<literal>DefaultPartition</literal>。"
+"<emphasis role=\"bold\">table-name</emphasis>:这是一个可选元素,它指定将保存"
+"这个关系的数据的表的名称。缺省的表名基于 entity 和 <literal>cmr-field</"
+"literal> 名称。"
#. Tag: para
#: The_CMP_Engine.xml:786
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">datasource</emphasis>: This optional element gives "
"the <literal>jndi-name</literal> used to look up the datasource. All "
@@ -3136,6 +3726,10 @@
"datasources for entities is not recommended, as it vastly constrains the "
"domain over which finders and <literal>ejbSelect</literal>s can query."
msgstr ""
+"<emphasis role=\"bold\">datasource</emphasis>:这个可选元素指定用来查找数据源"
+"的 <literal>jndi-name</literal>。所有的数据库连接都从数据源获得。我们不推荐 "
+"entity 拥有多个数据源,因为这会极大地限制 finders 和 <literal>ejbSelect</"
+"literal> 可以查找的范围。"
#. Tag: para
#: The_CMP_Engine.xml:791
@@ -3144,12 +3738,13 @@
"<emphasis role=\"bold\">datasourcemapping</emphasis>: This optional element "
"allows one to specify the name of the <literal>type-mapping</literal> to use."
msgstr ""
-"<emphasis role=\"bold\">PartitionName</emphasis> 是用来指定节点名称的可选属"
-"性。它的缺省值是 <literal>DefaultPartition</literal>。"
+"<emphasis role=\"bold\">datasourcemapping</emphasis>:这是一个可选元素,它允"
+"许你指定所使用的 <literal>type-mapping</literal> 的名字。"
#. Tag: para
#: The_CMP_Engine.xml:796
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">create-table</emphasis>: This optional element if "
"true indicates JBoss should attempt to create a table for the relationship. "
@@ -3158,10 +3753,15 @@
"is not created. This option is very useful during the early stages of "
"development when the table structure changes often."
msgstr ""
+"<emphasis role=\"bold\">create-table</emphasis>:这个可选元素如果为 true,表"
+"示 JBoss 应该试图为这个关系创建一个表。当应用程序被部署时,JBoss 会在创建表之"
+"前检查它是否已经存在。如果已经存在,JBoss 将登记日志并不再创建。这个选项在部"
+"署早期表结构经常改变时很有用处。"
#. Tag: para
#: The_CMP_Engine.xml:806
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">remove-table</emphasis>: This optional element if "
"true indicates JBoss should attempt to drop the <literal>relation-table</"
@@ -3169,10 +3769,14 @@
"during the early stages of development when the table structure changes "
"often."
msgstr ""
+"<emphasis role=\"bold\">remove-table</emphasis>:这个可选元素如果为 true,表"
+"示在卸载应用程序时 JBoss 应该试图删除 <literal>relation-table</literal>。这个"
+"选项在部署早期表结构经常改变时很有用处。"
#. Tag: para
#: The_CMP_Engine.xml:811
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">row-locking</emphasis>: This optional element if "
"true indicates JBoss should lock all rows loaded in a transaction. Most "
@@ -3181,6 +3785,11 @@
"<literal>row-locking-template</literal> in the <literal>datasource-mapping</"
"literal> used by this entity."
msgstr ""
+"<emphasis role=\"bold\">row-locking</emphasis>:这个可选元素如果为 true,表"
+"示 JBoss 应该锁定在事务里加载的所有记录。在载入 entity 时,大多数数据库都用 "
+"<literal>SELECT FOR UPDATE</literal> 语法来实现这一点,但实际的语法由 entity "
+"使用的 <literal>datasource-mapping</literal> 里的 <literal>row-locking-"
+"template</literal> 所决定。"
#. Tag: para
#: The_CMP_Engine.xml:816
@@ -3190,18 +3799,20 @@
"true indicates JBoss should add a primary key constraint when creating "
"tables."
msgstr ""
-"<emphasis role=\"bold\">description</emphasis>:这个元素指定操作的易读的描"
-"述。"
+"<emphasis role=\"bold\">pk-constraint</emphasis>:这个可选元素如果为 true,表"
+"示在创建表时 JBoss 应该添加一个主键约束。"
#. Tag: title
#: The_CMP_Engine.xml:828
#, no-c-format
+#, fuzzy
msgid "Queries"
-msgstr ""
+msgstr "查询"
#. Tag: para
#: The_CMP_Engine.xml:829
#, no-c-format
+#, fuzzy
msgid ""
"Entity beans allow for two types of queries: finders and selects. A finder "
"provides queries on an entity bean to clients of the bean. The select method "
@@ -3212,16 +3823,23 @@
"language used to specify finders and select methods in a platform "
"independent way."
msgstr ""
+"Entity bean 允许两种类型的查询:finder 和 select。finder 提供对 bean 的客户的"
+"查询。select 方法则提供对 entity 实现的查询语句。不象 finder 只能返回和所定义"
+"的 home 接口相同类型的 entity,select 方法可以返回任何类型的 entity 或者仅是 "
+"entity 的一个字段。EJB-QL 是用来以独立于平台的方式指定 finder 和 select 的查"
+"询语言。"
#. Tag: title
#: The_CMP_Engine.xml:833
#, no-c-format
+#, fuzzy
msgid "Finder and select Declaration"
-msgstr ""
+msgstr "Finder 和 select 的声明"
#. Tag: para
#: The_CMP_Engine.xml:834
#, no-c-format
+#, fuzzy
msgid ""
"The declaration of finders has not changed in CMP 2.0. Finders are still "
"declared in the home interface (local or remote) of the entity. Finders "
@@ -3232,10 +3850,15 @@
"differentiate the different types of query specifications we will be looking "
"at."
msgstr ""
+"Finder 的声明在 CMP 2.0 里没有变化。Finder 仍然在 entity 的 home 接口(local "
+"或 remote)里进行声明。下面的代码声明了 <literal>GangsterHome</literal> 接口"
+"上的 <literal>findBadDudes_ejbql</literal> finder。这里所使用的命名规则用来区"
+"分不同的查询类型。"
#. Tag: programlisting
#: The_CMP_Engine.xml:837
#, no-c-format
+#, fuzzy
msgid ""
"public interface GangsterHome \n"
" extends EJBLocalHome \n"
@@ -3243,20 +3866,30 @@
" Collection findBadDudes_ejbql(int badness) throws FinderException;\n"
"}"
msgstr ""
+"public interface GangsterHome \n"
+" extends EJBLocalHome \n"
+"{\n"
+" Collection findBadDudes_ejbql(int badness) throws FinderException;\n"
+"}"
#. Tag: para
#: The_CMP_Engine.xml:838
#, no-c-format
+#, fuzzy
msgid ""
"Select methods are declared in the entity implementation class, and must be "
"public and abstract just like CMP and CMR field abstract accessors and must "
"throw a <literal>FinderException</literal>. The following code declares an "
"select method:"
msgstr ""
+"Select 方法在 entity 实现类进行声明,且必须为 public 和 abstract,就象 CMP "
+"和 CMR 字段的 abstract accessor 一样,它也必须抛出 <literal>FinderException</"
+"literal>。下面的代码声明了一个 select 方法:"
#. Tag: programlisting
#: The_CMP_Engine.xml:841
#, no-c-format
+#, fuzzy
msgid ""
"public abstract class GangsterBean \n"
" implements EntityBean \n"
@@ -3265,16 +3898,24 @@
" throws FinderException;\n"
"}"
msgstr ""
+"public abstract class GangsterBean \n"
+" implements EntityBean \n"
+"{\n"
+" public abstract Set ejbSelectBoss_ejbql(String name)\n"
+" throws FinderException;\n"
+"}"
#. Tag: title
#: The_CMP_Engine.xml:845
#, no-c-format
+#, fuzzy
msgid "EJB-QL Declaration"
-msgstr ""
+msgstr "EJB-QL 声明"
#. Tag: para
#: The_CMP_Engine.xml:846
#, no-c-format
+#, fuzzy
msgid ""
"Every select or finder method (except <literal>findByPrimaryKey</literal>) "
"must have an EJB-QL query defined in the <literal>ejb-jar.xml</literal> "
@@ -3283,10 +3924,15 @@
"<literal>findBadDudes_ejbql</literal> and <literal>ejbSelectBoss_ejbql</"
"literal> queries:"
msgstr ""
+"每个 select 或 finder 方法(除了 <literal>findByPrimaryKey</literal>)都必须"
+"在 <literal>ejb-jar.xml</literal> 文件里定义一个 EJB-QL 查询。EJB-QL 查询在 "
+"entity 元素的 query 元素里进行定义。下面是对 <literal>findBadDudes_ejbql</"
+"literal> 和 <literal>ejbSelectBoss_ejbql</literal> 查询的声明:"
#. Tag: programlisting
#: The_CMP_Engine.xml:849
#, no-c-format
+#, fuzzy
msgid ""
"<ejb-jar>\n"
" <enterprise-beans>\n"
@@ -3365,30 +4011,38 @@
#. Tag: para
#: The_CMP_Engine.xml:850
#, no-c-format
+#, fuzzy
msgid ""
"EJB-QL is similar to SQL but has some surprising differences. The following "
"are some important things to note about EJB-QL:"
msgstr ""
+"EJB-QL 和 SQL 类似,但它有一些令人惊讶的区别。下面是 EJB-QL 一些值得注意的东"
+"西:"
#. Tag: para
#: The_CMP_Engine.xml:855
#, no-c-format
+#, fuzzy
msgid ""
"EJB-QL is a typed language, meaning that it only allows comparison of like "
"types (i.e., strings can only be compared with strings)."
msgstr ""
+"EJB-QL 是一个强类型的语言,这意味着它只允许同类型间的比较(也就是说,字符串只"
+"能和字符串比较)。"
#. Tag: para
#: The_CMP_Engine.xml:860
#, no-c-format
+#, fuzzy
msgid ""
"In an equals comparison a variable (single valued path) must be on the left "
"hand side. Some examples follow:"
-msgstr ""
+msgstr "在等式里,变量必须在左侧。下面是一些例子:"
#. Tag: programlisting
#: The_CMP_Engine.xml:865
#, no-c-format
+#, fuzzy
msgid ""
"g.hangout.state = 'CA' Legal\n"
"'CA' = g.shippingAddress.state <emphasis>NOT Legal</emphasis>\n"
@@ -3405,34 +4059,41 @@
#. Tag: para
#: The_CMP_Engine.xml:868
#, no-c-format
+#, fuzzy
msgid "Parameters use a base 1 index like java.sql.PreparedStatement."
-msgstr ""
+msgstr "参数可以使用基于 1 的索引如 java.sql.PreparedStatement。"
#. Tag: para
#: The_CMP_Engine.xml:873
#, no-c-format
+#, fuzzy
msgid ""
"Parameters are only allowed on the right hand side of a comparison. For "
"example:"
-msgstr ""
+msgstr "参数只被允许在等式的右边。例如:"
#. Tag: programlisting
#: The_CMP_Engine.xml:878
#, no-c-format
+#, fuzzy
msgid ""
"gangster.hangout.state = ?1 <emphasis>Legal</emphasis>\n"
"?1 = gangster.hangout.state <emphasis>NOT Legal</emphasis>"
msgstr ""
+"gangster.hangout.state = ?1 <emphasis>正确</emphasis>\n"
+"?1 = gangster.hangout.state <emphasis>错误</emphasis>"
#. Tag: title
#: The_CMP_Engine.xml:882
#, no-c-format
+#, fuzzy
msgid "Overriding the EJB-QL to SQL Mapping"
-msgstr ""
+msgstr "用 SQL 映射覆盖 EJB-QL"
#. Tag: para
#: The_CMP_Engine.xml:883
#, no-c-format
+#, fuzzy
msgid ""
"The EJB-QL query can be overridden in the <literal>jbosscmp-jdbc.xml</"
"literal> file. The finder or select is still required to have an EJB-QL "
@@ -3445,13 +4106,13 @@
"<literal>query</literal> element in the jbosscmp-jdbc.xml file. Tthe content "
"model is shown in <xref linkend=\"Overriding_the_EJB_QL_to_SQL_Mapping-"
"The_jbosscmp_jdbc_query_element_content_model\"/>."
-msgstr ""
+msgstr "<literal></literal><literal></literal> JBossQL DynamicQL DeclaredSQL<literal></literal><literal></literal><xref linkend=\"Overriding_the_EJB_QL_to_SQL_Mapping-The_jbosscmp_jdbc_query_element_content_model\"/>."
#. Tag: title
#: The_CMP_Engine.xml:887
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc query element content model"
-msgstr "The descriptors element content model"
+msgstr "jbosscmp-jdbc 文件的 query 元素的内容模型"
#. Tag: para
#: The_CMP_Engine.xml:896
@@ -3459,7 +4120,7 @@
msgid ""
"<emphasis role=\"bold\">description</emphasis>: An optional description for "
"the query."
-msgstr "<emphasis role=\"bold\">description</emphasis>:参数的可选描述。"
+msgstr "<emphasis role=\"bold\">description</emphasis>:查询的可选描述。"
#. Tag: para
#: The_CMP_Engine.xml:901
@@ -3470,56 +4131,71 @@
"<literal>query-method</literal> declared for this entity in the <literal>ejb-"
"jar.xml</literal> file."
msgstr ""
-"<emphasis role=\"bold\">DefaultSecurityDomain</emphasis>:它指定在 WAR 文件"
-"的 <literal>jboss-web.xml</literal> 里的 <literal>security-domain</literal> "
-"没有显性地指定的情况下的 JAAS 安全域名。"
+"<emphasis role=\"bold\">query-method</emphasis>:这个可选元素指定了所配置的查"
+"询方法。它必须匹配 <literal>ejb-jar.xml</literal> 文件里为这个 entity 声明的 "
+"<literal>query-method</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:906
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">jboss-ql</emphasis>: This is a JBossQL query to use "
"in place of the EJB-QL query. JBossQL is discussed in <xref linkend="
"\"Queries-JBossQL\"/>."
msgstr ""
+"<emphasis role=\"bold\">jboss-ql</emphasis>:这是用来替代 EJB-QL 查询的 "
+"JBossQL 查询。JBossQL 将在 <xref linkend=\"Queries-JBossQL\"/> 里进行讨论。"
#. Tag: para
#: The_CMP_Engine.xml:911
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">dynamic-ql</emphasis>: This indicated that the "
"method is a dynamic query method and not an EJB-QL query. Dynamic queries "
"are discussed in <xref linkend=\"Queries-DynamicQL\"/>."
msgstr ""
+"<emphasis role=\"bold\">dynamic-ql</emphasis>:它指出该方法是一个动态查询方法"
+"而不是 EJB-QL 查询。<xref linkend=\"Queries-DynamicQL\"/> 将讨论动态查询。"
#. Tag: para
#: The_CMP_Engine.xml:916
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">declared-sql</emphasis>: This query uses declared "
"SQL in place of the EJB-QL query. Declared SQL is discussed in <xref linkend="
"\"Queries-DeclaredSQL\"/>."
msgstr ""
+"<emphasis role=\"bold\">declared-sql</emphasis>:这个查询使用声明式 SQL 来代"
+"替 EJB-QL 查询。<xref linkend=\"Queries-DeclaredSQL\"/> 将讨论声明式 SQL。"
#. Tag: para
#: The_CMP_Engine.xml:921
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">read-ahead</emphasis>: This optional element allows "
"one to optimize the loading of additional fields for use with the entities "
"referenced by the query. This is discussed in detail in <xref linkend="
"\"The_CMP_Engine-Optimized_Loading\"/>."
msgstr ""
+"<emphasis role=\"bold\">read-ahead</emphasis>:这个可选元素允许你优化对查询所"
+"引用的 entity 的其他字段的加载。这将在 <xref linkend=\"The_CMP_Engine-"
+"Optimized_Loading\"/> 里进行详细讨论。"
#. Tag: title
#: The_CMP_Engine.xml:929
#, no-c-format
+#, fuzzy
msgid "JBossQL"
-msgstr ""
+msgstr "JBossQL"
#. Tag: para
#: The_CMP_Engine.xml:930
#, no-c-format
+#, fuzzy
msgid ""
"JBossQL is a superset of EJB-QL that is designed to address some of the "
"inadequacies of EJB-QL. In addition to a more flexible syntax, new "
@@ -3532,19 +4208,31 @@
"<literal>LCASE</literal> functions. Queries can also include functions in "
"the <literal>SELECT</literal> clause for select methods."
msgstr ""
+"JBossQL 是 EJB-QL 的一个超集,它的设计目的是解决 EJB-QL 的不足。出了更为灵活"
+"的语法JBossQL 也添加了新的功能、关键字和子句。在编写本文档之时,JBossQL 已支"
+"持 <literal>ORDER BY</literal>、<literal>OFFSET</literal> 和 <literal>LIMIT</"
+"literal> 子句,<literal>IN</literal> 和 <literal>LIKE</literal> 操作符里的参"
+"数,<literal>COUNT</literal>、<literal>MAX</literal>、 <literal>MIN</"
+"literal>、<literal>AVG</literal>、<literal>SUM</literal>、<literal>UCASE</"
+"literal> 和 <literal>LCASE</literal> 函数。查询也可以在 <literal>SELECT</"
+"literal> 子句里包含函数。"
#. Tag: para
#: The_CMP_Engine.xml:933
#, no-c-format
+#, fuzzy
msgid ""
"JBossQL is declared in the <literal>jbosscmp-jdbc.xml</literal> file with a "
"<literal>jboss-ql</literal> element containing the JBossQL query. The "
"following example provides an example JBossQL declaration."
msgstr ""
+"JBossQL 在 <literal>jbosscmp-jdbc.xml</literal> 文件里用包含 JBossQL 查询的 "
+"<literal>jboss-ql</literal> 元素进行声明。下面是一个 JBossQL 声明的例子。"
#. Tag: programlisting
#: The_CMP_Engine.xml:936
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -3589,22 +4277,29 @@
#. Tag: para
#: The_CMP_Engine.xml:937
#, no-c-format
+#, fuzzy
msgid "The corresponding generated SQL is straightforward."
-msgstr ""
+msgstr "生成的相应 SQL 很简单。"
#. Tag: programlisting
#: The_CMP_Engine.xml:940
#, no-c-format
+#, fuzzy
msgid ""
"SELECT t0_g.id\n"
" FROM gangster t0_g\n"
" WHERE t0_g.badness > ?\n"
" ORDER BY t0_g.badness DESC"
msgstr ""
+"SELECT t0_g.id\n"
+" FROM gangster t0_g\n"
+" WHERE t0_g.badness > ?\n"
+" ORDER BY t0_g.badness DESC"
#. Tag: para
#: The_CMP_Engine.xml:941
#, no-c-format
+#, fuzzy
msgid ""
"Another capability of JBossQL is the ability to retrieve finder results in "
"blocks using the <literal>LIMIT</literal> and <literal>OFFSET</literal> "
@@ -3612,10 +4307,14 @@
"performed, the following <literal>findManyJobs_jbossql</literal> finder may "
"be defined."
msgstr ""
+"JBossQL 的另外一个能力是用 <literal>LIMIT</literal> 和 <literal>OFFSET</"
+"literal> 函数从块里获取 finder 结果。例如,要重复大量的任务,你可以定义下面"
+"的 <literal>findManyJobs_jbossql</literal> finder。"
#. Tag: programlisting
#: The_CMP_Engine.xml:944
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -3664,12 +4363,14 @@
#. Tag: title
#: The_CMP_Engine.xml:948
#, no-c-format
+#, fuzzy
msgid "DynamicQL"
-msgstr ""
+msgstr "DynamicQL"
#. Tag: para
#: The_CMP_Engine.xml:949
#, no-c-format
+#, fuzzy
msgid ""
"DynamicQL allows the runtime generation and execution of JBossQL queries. A "
"DynamicQL query method is an abstract method that takes a JBossQL query and "
@@ -3677,10 +4378,15 @@
"the generated SQL. The following generates a JBossQL query that selects all "
"the gangsters that have a hangout in any state in the states set:"
msgstr ""
+"DynamicQL 允许在运行时生成和执行 JBossQL 查询。DynamicQL 查询方法是一个 "
+"abstract 方法,它把 JBossQL 查询及其参数作为参数。JBoss 编译 JBossQL 并执行所"
+"生成的 SQL。下面的例子生成了一个 JBossQL 查询,它选择了所有在州集合里的任何州"
+"里具有聚齐处的 gangster:"
#. Tag: programlisting
#: The_CMP_Engine.xml:952
#, no-c-format
+#, fuzzy
msgid ""
"public abstract class GangsterBean \n"
" implements EntityBean \n"
@@ -3745,6 +4451,7 @@
#. Tag: para
#: The_CMP_Engine.xml:953
#, no-c-format
+#, fuzzy
msgid ""
"The DynamicQL select method may have any valid select method name, but the "
"method must always take a string and an object array as parameters. "
@@ -3752,10 +4459,15 @@
"an empty <literal>dynamic-ql</literal> element. The following is the "
"declaration for <literal>ejbSelectGeneric</literal>."
msgstr ""
+"DynamicQL 的 select 方法可能具有任何有效的名称,但这个方法必须把一个字符串和"
+"一个对象数组作为参数。DynamicQL 在 <literal>jbosscmp-jdbc.xml</literal> 文件"
+"里用一个空的 <literal>dynamic-ql</literal> 元素进行声明。下面是对 "
+"<literal>ejbSelectGeneric</literal> 的声明。"
#. Tag: programlisting
#: The_CMP_Engine.xml:956
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -3800,12 +4512,14 @@
#. Tag: title
#: The_CMP_Engine.xml:960
#, no-c-format
+#, fuzzy
msgid "DeclaredSQL"
-msgstr ""
+msgstr "DeclaredSQL"
#. Tag: para
#: The_CMP_Engine.xml:961
#, no-c-format
+#, fuzzy
msgid ""
"DeclaredSQL is based on the legacy JAWS CMP 1.1 engine finder declaration, "
"but has been updated for CMP 2.0. Commonly this declaration is used to limit "
@@ -3814,12 +4528,17 @@
"in <xref linkend=\"DeclaredSQL-"
"The_jbosscmp_jdbc_declared_sql_element_content_model.\"/>."
msgstr ""
+"DeclaredSQL 基于遗留的JAWS CMP 1.1 engine finder 的声明,但它现在已升级到 "
+"CMP 2.0 了。通常这个声明用来限制带有不能在 EJB-QL 或 JBossQL 里使用的 "
+"<literal>WHERE</literal> 子句的查询。<xref linkend=\"DeclaredSQL-"
+"The_jbosscmp_jdbc_declared_sql_element_content_model.\"/> 给出了 declared-"
+"sql 元素的内容模型。"
#. Tag: title
#: The_CMP_Engine.xml:965
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc declared-sql element content model.>"
-msgstr "The descriptors element content model"
+msgstr "jbosscmp-jdbc 文件的 declared-sql 元素的内容模型。"
#. Tag: para
#: The_CMP_Engine.xml:974
@@ -3829,12 +4548,13 @@
"element specifies what is to be selected and consists of the following "
"elements:"
msgstr ""
-"<emphasis role=\"bold\">display-name</emphasis>:<literal>display-name</"
-"literal>元素指定一个易于使用的名字。"
+"<emphasis role=\"bold\">select</emphasis>:<literal>select</literal> 元素指定"
+"所选择的内容,它由下面的元素组成:"
#. Tag: para
#: The_CMP_Engine.xml:979
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">distinct</emphasis>: If this empty element is "
"present, JBoss will add the <literal>DISTINCT</literal> keyword to the "
@@ -3842,6 +4562,10 @@
"<literal>DISTINCT</literal> if method returns a <literal>java.util.Set</"
"literal>"
msgstr ""
+"<emphasis role=\"bold\">distinct</emphasis>:如果使用了这个空的元素,JBoss 将"
+"把 <literal>DISTINCT</literal> 关键字添加到生成的 <literal>SELECT</literal> "
+"子句里。如果方法返回 <literal>java.util.Set</literal> 则会缺省使用 "
+"<literal>DISTINCT</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:984
@@ -3851,8 +4575,8 @@
"literal> of the entity that will be selected. This is only required if the "
"query is for a select method."
msgstr ""
-"<emphasis role=\"bold\">PartitionObjectName</emphasis>:与代理关联的群集服务"
-"的 JMX <literal>ObjectName</literal>。"
+"<emphasis role=\"bold\">ejb-name</emphasis>:这是将被选择的 entity 的 "
+"<literal>ejb-name</literal>。它只有在查询是 select 方法时才是必需的。"
#. Tag: para
#: The_CMP_Engine.xml:989
@@ -3862,8 +4586,8 @@
"field that will be selected from the specified entity. The default is to "
"select entire entity."
msgstr ""
-"<emphasis role=\"bold\">keystorePass</emphasis>:这是从指定 keystore 文件里访"
-"问服务器证书所用到的密码。它的缺省值是 <literal>changeit</literal>."
+"<emphasis role=\"bold\">field-name</emphasis>:这是将从指定的 entity 里选择"
+"的 CMP 字段的名称。缺省是选择整个 entity。"
#. Tag: para
#: The_CMP_Engine.xml:994
@@ -3873,17 +4597,21 @@
"be used for the main select table. The default is to use the <literal>ejb-"
"name</literal>."
msgstr ""
-"<emphasis role=\"bold\">mcast_port</emphasis> 指定多点传送端口号码。它的缺省"
-"值是 <literal>45566</literal>。"
+"<emphasis role=\"bold\">alias</emphasis>:它指定用于主 select 表的别名。缺省"
+"是使用 <literal>ejb-name</literal>。"
#. Tag: para
#: The_CMP_Engine.xml:999
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">additional-columns</emphasis>: Declares other "
"columns to be selected to satisfy ordering by arbitrary columns with finders "
"or to facilitate aggregate functions in selects."
msgstr ""
+"<emphasis role=\"bold\">additional-columns</emphasis>:声明其他列来满足按任意"
+"带有 finder 的列排序的需要或者利用 select 里的集合函数(aggregate "
+"function)。"
#. Tag: para
#: The_CMP_Engine.xml:1006
@@ -3893,8 +4621,8 @@
"declares additional SQL to append to the generated <literal>FROM</literal> "
"clause."
msgstr ""
-"<emphasis role=\"bold\">display-name</emphasis>:<literal>display-name</"
-"literal>元素指定一个易于使用的名字。"
+"<emphasis role=\"bold\">from</emphasis>:<literal>from</literal> 元素声明附加"
+"在生成的 <literal>FROM</literal> 子句后面的额外的 SQL。"
#. Tag: para
#: The_CMP_Engine.xml:1011
@@ -3903,8 +4631,8 @@
"<emphasis role=\"bold\">where</emphasis>: The <literal>where</literal> "
"element declares the <literal>WHERE</literal> clause for the query."
msgstr ""
-"<emphasis role=\"bold\">display-name</emphasis>:<literal>display-name</"
-"literal>元素指定一个易于使用的名字。"
+"<emphasis role=\"bold\">where</emphasis>:<literal>where</literal> 元素声明用"
+"于查询的 <literal>WHERE</literal> 子句。"
#. Tag: para
#: The_CMP_Engine.xml:1016
@@ -3913,8 +4641,8 @@
"<emphasis role=\"bold\">order</emphasis>: The <literal>order</literal> "
"element declares the <literal>ORDER</literal> clause for the query."
msgstr ""
-"<emphasis role=\"bold\">display-name</emphasis>:<literal>display-name</"
-"literal>元素指定一个易于使用的名字。"
+"<emphasis role=\"bold\">order</emphasis>:<literal>order</literal> 元素声明查"
+"询语句的 <literal>ORDER</literal> 子句。"
#. Tag: para
#: The_CMP_Engine.xml:1021
@@ -3923,18 +4651,20 @@
"<emphasis role=\"bold\">other</emphasis>: The <literal>other</literal> "
"element declares additional SQL that is appended to the end of the query."
msgstr ""
-"<emphasis role=\"bold\">display-name</emphasis>:<literal>display-name</"
-"literal>元素指定一个易于使用的名字。"
+"<emphasis role=\"bold\">other</emphasis>:<literal>other</literal> 元素声明附"
+"加在查询语句后面的额外 SQL。"
#. Tag: para
#: The_CMP_Engine.xml:1026
#, no-c-format
+#, fuzzy
msgid "The following is an example DeclaredSQL declaration."
-msgstr ""
+msgstr "下面是一个 DeclaredSQL 声明的例子。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1029
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -3985,22 +4715,29 @@
#. Tag: para
#: The_CMP_Engine.xml:1030 The_CMP_Engine.xml:1038 The_CMP_Engine.xml:1641
#, no-c-format
+#, fuzzy
msgid "The generated SQL would be:"
-msgstr ""
+msgstr "生成的 SQL 将是:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1033
#, no-c-format
+#, fuzzy
msgid ""
"SELECT id\n"
"FROM gangster\n"
"WHERE badness > ?\n"
"ORDER BY badness DESC"
msgstr ""
+"SELECT id\n"
+"FROM gangster\n"
+"WHERE badness > ?\n"
+"ORDER BY badness DESC"
#. Tag: para
#: The_CMP_Engine.xml:1034
#, no-c-format
+#, fuzzy
msgid ""
"As you can see, JBoss generates the <literal>SELECT</literal> and "
"<literal>FROM</literal> clauses necessary to select the primary key for this "
@@ -4009,10 +4746,16 @@
"<literal>FROM</literal> clause. The following is example DeclaredSQL "
"declaration with an additional <literal>FROM</literal> clause."
msgstr ""
+"你可以看到,JBoss 生成必需的 <literal>SELECT</literal> 和 <literal>FROM</"
+"literal> 子句来选择这个 entity 的主键。如果需要的话,你可以指定额外的 "
+"<literal>FROM</literal> 子句,它附加在自动生成的 <literal>FROM</literal> 子句"
+"的后面。下面是一个带有额外 <literal>FROM</literal> 子句的 DeclaredSQL 声明的"
+"例子。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1037
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -4079,16 +4822,22 @@
#. Tag: programlisting
#: The_CMP_Engine.xml:1041
#, no-c-format
+#, fuzzy
msgid ""
"SELECT DISTINCT boss.id\n"
" FROM gangster boss, gangster g, organization o\n"
" WHERE (LCASE(g.name) = ? OR LCASE(g.nick_name) = ?) AND\n"
" g.organization = o.name AND o.the_boss = boss.id"
msgstr ""
+"SELECT DISTINCT boss.id\n"
+" FROM gangster boss, gangster g, organization o\n"
+" WHERE (LCASE(g.name) = ? OR LCASE(g.nick_name) = ?) AND\n"
+" g.organization = o.name AND o.the_boss = boss.id"
#. Tag: para
#: The_CMP_Engine.xml:1042
#, no-c-format
+#, fuzzy
msgid ""
"Notice that the <literal>FROM</literal> clause starts with a comma. This is "
"because the container appends the declared <literal>FROM</literal> clause to "
@@ -4106,18 +4855,32 @@
"literal> declaration. The DeclaredSQL declaration can also be used in select "
"methods to select a CMP field."
msgstr ""
+"请注意 <literal>FROM</literal> 子句由逗号开始。这是因为容器把声明的 "
+"<literal>FROM</literal> 子句附加在生成的 <literal>FROM</literal> 子句后面。"
+"<literal>FROM</literal> 子句也可能以 SQL <literal>JOIN</literal> 语句开始。既"
+"然这是一个 select 方法,它必须用 <literal>select</literal> 元素来声明要选择"
+"的 entity。请注意,查询也会声明一个别名。如果没有声明别名,<literal>table-"
+"name</literal> 将作为别名使用,这会生成带有 <literal>table_name.field_name</"
+"literal> 风格的列声明的 <literal>SELECT</literal> 子句。但不是所有的数据库厂"
+"商都支持这种语法,所以最好是声明别名。可选的空的 <literal>distinct</literal> "
+"元素使 <literal>SELECT</literal> 子句使用 <literal>SELECT DISTINCT</literal> "
+"声明。select 方法也可以用 DeclaredSQL 声明来查询 CMP 字段。"
#. Tag: para
#: The_CMP_Engine.xml:1045
#, no-c-format
+#, fuzzy
msgid ""
"Now we well see an example which overrides a select to return all of the zip "
"codes an <literal>Organization</literal> operates in."
msgstr ""
+"现在我们来看看一个例子,它覆盖 select 并返回 <literal>Organization</literal> "
+"操作的所有 zip code。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1048
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -4174,12 +4937,14 @@
#. Tag: para
#: The_CMP_Engine.xml:1049
#, no-c-format
+#, fuzzy
msgid "The corresponding SQL would be:"
-msgstr ""
+msgstr "相应的 SQL 将是:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1052
#, no-c-format
+#, fuzzy
msgid ""
"SELECT DISTINCT hangout.zip\n"
" FROM location hangout, organization o, gangster g\n"
@@ -4196,22 +4961,28 @@
#. Tag: title
#: The_CMP_Engine.xml:1054
#, no-c-format
+#, fuzzy
msgid "Parameters"
msgstr "参数(Parameters)"
#. Tag: para
#: The_CMP_Engine.xml:1055
#, no-c-format
+#, fuzzy
msgid ""
"DeclaredSQL uses a completely new parameter handling system, which supports "
"entity and DVC parameters. Parameters are enclosed in curly brackets and use "
"a zero-based index, which is different from the one-based EJB-QL parameters. "
"There are three categories of parameters: simple, DVC, and entity."
msgstr ""
+"DeclaredSQL 使用一个全新的参数处理系统,它支持 entity 和 DVC 参数。参数括在花"
+"括号里且使用基于 0 的索引,这和基于 1 的 EJB-QL 的参数不同。它有 3 中参数类"
+"别:simple、DVC 和 entity。"
#. Tag: para
#: The_CMP_Engine.xml:1060
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">simple</emphasis>: A simple parameter can be of any "
"type except for a known (mapped) DVC or an entity. A simple parameter only "
@@ -4221,10 +4992,16 @@
"serialized and then set as a parameter. Note that most databases do not "
"support the use of a BLOB value in a WHERE clause."
msgstr ""
+"<emphasis role=\"bold\">simple</emphasis>:simple 参数可以是任何类型,除了已"
+"知的(映射的)DVC 或 entity。simple 参数之包含参数序号,如 <literal>{0}</"
+"literal>。在设置了 simple 参数后,该 entity 的 <literal>datasourcemapping</"
+"literal> 决定用来设置这个参数的 JDBC 类型。未知的 DVC 会被序列化之后再设置为"
+"参数。请注意大多数数据库都不支持在 WHERE 子句里使用 BLOB 值。"
#. Tag: para
#: The_CMP_Engine.xml:1065
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">DVC</emphasis>: A DVC parameter can be any known "
"(mapped) DVC. A DVC parameter must be dereferenced down to a simple property "
@@ -4237,10 +5014,18 @@
"type that is declared for that property in the <literal>dependent-value-"
"class</literal> element."
msgstr ""
+"<emphasis role=\"bold\">DVC</emphasis>:DVC 参数可以是任何已知的(映射的)"
+"DVC。DVC 参数必须通过简单属性(不能是另外一个 DVC)间接引用。例如,如果我们有"
+"一个类型为 <literal>ContactInfo</literal> 的 CVS 属性,有效的参数声明可以是 "
+"<literal>{0.email}</literal> 和 <literal>{0.cell.areaCode}</literal>,但不能"
+"是 <literal>{0.cell}</literal>。用来设置参数的 JDBC 类型基于属性的类型和 "
+"entity 的 <literal>datasourcemapping</literal>。在 <literal>dependent-value-"
+"class</literal> 元素为该属性声明的 JDBC 类型被用来设置这个参数。"
#. Tag: para
#: The_CMP_Engine.xml:1070
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">entity</emphasis>: An entity parameter can be any "
"entity in the application. An entity parameter must be dereferenced down to "
@@ -4255,26 +5040,40 @@
"parameter is the JDBC type that is declared for that field in the entity "
"declaration."
msgstr ""
+"<emphasis role=\"bold\">entity</emphasis>:entity 参数可以是应用程序里的任何 "
+"entity。entity 参数必须通过简单主键字段或者 DVC 主键字段的简单属性进行间接引"
+"用。例如,如果我们有一个类型为 <literal>Gangster</literal> 的参数,其有效的参"
+"数声明将是 <literal>{0.gangsterId}</literal>。如果我们有某个带有类型为 "
+"<literal>ContactInfo</literal> 的主键字段的 entity,<literal>其有效参数</"
+"literal>声明将是 <literal>{0.info.cell.areaCode}</literal>。只有 entity 的主"
+"键成员的字段才可以被间接引用(以后的版本里可能取消这个限制)。在 entity 声明"
+"里为这个字段声明的 JDBC 类型被用来设置这个参数。"
#. Tag: title
#: The_CMP_Engine.xml:1080
#, no-c-format
+#, fuzzy
msgid "EJBQL 2.1 and SQL92 queries"
-msgstr ""
+msgstr "EJBQL 2.1 和 SQL92 查询"
#. Tag: para
#: The_CMP_Engine.xml:1081
#, no-c-format
+#, fuzzy
msgid ""
"The default query compiler doesn't fully support EJB-QL 2.1 or the SQL92 "
"standard. If you need either of these functions, you can replace the query "
"compiler. The default compiler is specified in <literal>standardjbosscmp-"
"jdbc.xml</literal>."
msgstr ""
+"缺省的查询编译器不完全支持 EJB-QL 2.1 或 SQL92 标准。如果你需要使用它们的函"
+"数,你可以替换查询编译器。你可以在 <literal>standardjbosscmp-jdbc.xml</"
+"literal> 里指定缺省的编译器。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1084
#, no-c-format
+#, fuzzy
msgid ""
"<defaults>\n"
" ...\n"
@@ -4283,18 +5082,28 @@
" ...\n"
"</defaults>"
msgstr ""
+"<defaults>\n"
+" ...\n"
+" <ql-compiler>org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLCompiler</"
+"ql-compiler>\n"
+" ...\n"
+"</defaults>"
#. Tag: para
#: The_CMP_Engine.xml:1085
#, no-c-format
+#, fuzzy
msgid ""
"To use the SQL92 compiler, simply specify the SQL92 compiler in <literal>ql-"
"compiler</literal> element."
msgstr ""
+"要使用 SQL92 编译器,简单地在 <literal>ql-compiler</literal> 元素里指定 "
+"SQL92 编译器就可以了。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1088
#, no-c-format
+#, fuzzy
msgid ""
"<defaults>\n"
" ...\n"
@@ -4303,19 +5112,30 @@
" ...\n"
"</defaults>"
msgstr ""
+"<defaults>\n"
+" ...\n"
+" <ql-compiler>org.jboss.ejb.plugins.cmp.jdbc."
+"EJBQLToSQL92Compiler</ql-compiler>\n"
+" ...\n"
+"</defaults>"
#. Tag: para
#: The_CMP_Engine.xml:1089
#, no-c-format
+#, fuzzy
msgid ""
"This changes the query compiler for all beans in the entire system. You can "
"also specify the ql-compiler for each element in <literal>jbosscmp-jdbc.xml</"
"literal>. Here is an example using one of our earlier queries."
msgstr ""
+"这会改变整个系统里的所有 bean 使用的查询编译器。你也可以在 <literal>jbosscmp-"
+"jdbc.xml</literal> 里为每个元素指定查询编译器。下面是使用其中一个早前的查询的"
+"例子。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1092
#, no-c-format
+#, fuzzy
msgid ""
"<query>\n"
" <query-method>\n"
@@ -4352,6 +5172,7 @@
#. Tag: para
#: The_CMP_Engine.xml:1093
#, no-c-format
+#, fuzzy
msgid ""
"One important limitation of SQL92 query compiler is that it always selects "
"all the fields of an entity regardless the <literal>read-ahead</literal> "
@@ -4363,16 +5184,25 @@
"<literal>on-find</literal><literal>read-ahead</literal> with the default "
"load group <literal>*</literal> works as expected."
msgstr ""
+"SQL92 查询编译器的一个重要限制是它总是选择 entity 所有的字段而不管是否使用了 "
+"<literal>read-ahead</literal> 策略。例如,如果查询使用了 <literal>on-load</"
+"literal><literal>read-ahead</literal> 策略,第一个查询将包括所有的字段而不仅"
+"仅是主键字段,但只有主键字段会从 <literal>ResultSet</literal> 里读取。然后其"
+"他字段也实际上将被载入 read-ahead 缓存。运行带有缺省的 load group 的 "
+"<literal>on-find</literal><literal>read-ahead</literal> 则和我们所预期的相"
+"同。"
#. Tag: title
#: The_CMP_Engine.xml:1099
#, no-c-format
+#, fuzzy
msgid "BMP Custom Finders"
-msgstr ""
+msgstr "自定义的 BMP Finder"
#. Tag: para
#: The_CMP_Engine.xml:1100
#, no-c-format
+#, fuzzy
msgid ""
"JBoss also supports bean managed persistence custom finders. If a custom "
"finder method matches a finder declared in the home or local home interface, "
@@ -4381,10 +5211,15 @@
"xml</literal> files. The following simple example finds the entities by a "
"collection of primary keys:"
msgstr ""
+"JBoss 也支持 bean 管理的持久性自定义 finder。如果自定义的 finder 方法和 home "
+"或 local home 接口里声明的 finder 相符,JBoss 将总是先于 <literal>ejb-jar."
+"xml</literal> 或 <literal>jbosscmp-jdbc.xml</literal> 里声明的其他实现调用自"
+"定义的 finder。下面的简单示例根据主键集合来查找 entity:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1103
#, no-c-format
+#, fuzzy
msgid ""
"public abstract class GangsterBean\n"
" implements EntityBean \n"
@@ -4395,10 +5230,19 @@
" }\n"
"}"
msgstr ""
+"public abstract class GangsterBean\n"
+" implements EntityBean \n"
+"{\n"
+" public Collection ejbFindByPrimaryKeys(Collection keys)\n"
+" {\n"
+" return keys;\n"
+" }\n"
+"}"
#. Tag: para
#: The_CMP_Engine.xml:1104
#, no-c-format
+#, fuzzy
msgid ""
"This is a very useful finder because it quickly coverts primary keys into "
"real Entity objects without contacting the database. One drawback is that it "
@@ -4409,16 +5253,24 @@
"and the JBoss EJB verifier will fail the deployment of such an entity unless "
"the StrictVerifier attribute is set to false."
msgstr ""
+"这是一个非常有用的 finder,因为它可以快速地把主键转换成实际的Eentity 对象而不"
+"需要连接数据库。它一个缺点是创建了一个带有不存在于数据库里的主键的 Entity 对"
+"象。如果在这个“坏”的 Entity 上调用了任何方法,NoSuchEntityException 将被抛"
+"出。它的另外一个缺点是结果 entity bean 违背了 EJB 规格,因为它实现了一个 "
+"finder,除非把 StrictVerifier 属性设为 false,否则 JBoss EJB verifier 在部署"
+"它时就会失败。"
#. Tag: title
#: The_CMP_Engine.xml:1112
#, no-c-format
+#, fuzzy
msgid "Optimized Loading"
-msgstr ""
+msgstr "优化加载"
#. Tag: para
#: The_CMP_Engine.xml:1113
#, no-c-format
+#, fuzzy
msgid ""
"The goal of optimized loading is to load the smallest amount of data "
"required to complete a transaction in the fewest number of queries. The "
@@ -4428,26 +5280,35 @@
"understanding of the loading system, so this chapter may have to be read "
"more than once."
msgstr ""
+"优化加载的目的是使用最少的查询次数、加载最少的数据来完成事务。JBoss 的调整需"
+"要对加载过程有着详细了解。本节描述了 JBoss 加载过程的内部细节及其配置。对加载"
+"过程的调整确实需要完整地理解加载系统,所以你可能需要对本节内容进行多次反复阅"
+"读。"
#. Tag: title
#: The_CMP_Engine.xml:1117
#, no-c-format
+#, fuzzy
msgid "Loading Scenario"
-msgstr ""
+msgstr "加载模式"
#. Tag: para
#: The_CMP_Engine.xml:1118
#, no-c-format
+#, fuzzy
msgid ""
"The easiest way to investigate the loading process is to look at a usage "
"scenario. The most common scenario is to locate a collection of entities and "
"iterate over the results performing some operation. The following example "
"generates an html table containing all of the gangsters:"
msgstr ""
+"了解加载过程的最容易的方法就是查看其使用模式。最常用的模式是选定一个 entity "
+"集合并重复某个操作。下面的例子生成了一个包含所有 gangster 的 HTML 表格:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1121
#, no-c-format
+#, fuzzy
msgid ""
"public String createGangsterHtmlTable_none() \n"
" throws FinderException \n"
@@ -4496,32 +5357,41 @@
#. Tag: para
#: The_CMP_Engine.xml:1122
#, no-c-format
+#, fuzzy
msgid ""
"Assume this code is called within a single transaction and all optimized "
"loading has been disabled. At the <literal>findAll_none</literal> call, "
"JBoss will execute the following query:"
msgstr ""
+"假设在单一事务里调用这段代码且禁用了所有的优化加载。在 "
+"<literal>findAll_none</literal> 调用时,JBoss 将执行下面的查询:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1125
#, no-c-format
+#, fuzzy
msgid ""
"SELECT t0_g.id\n"
" FROM gangster t0_g\n"
" ORDER BY t0_g.id ASC"
msgstr ""
+"SELECT t0_g.id\n"
+" FROM gangster t0_g\n"
+" ORDER BY t0_g.id ASC"
#. Tag: para
#: The_CMP_Engine.xml:1126
#, no-c-format
+#, fuzzy
msgid ""
"Then as each of the eight gangster in the sample database is accessed, JBoss "
"will execute the following eight queries:"
-msgstr ""
+msgstr "然后当示例数据库中的 8 个 gangster 都被访问时,JBoss 将执行下面的 8 个查询:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1129
#, no-c-format
+#, fuzzy
msgid ""
"SELECT name, nick_name, badness, hangout, organization\n"
" FROM gangster WHERE (id=0)\n"
@@ -4560,6 +5430,7 @@
#. Tag: para
#: The_CMP_Engine.xml:1130
#, no-c-format
+#, fuzzy
msgid ""
"There are two problems with this scenario. First, an excessive number of "
"queries are executed because JBoss executes one query for the "
@@ -4572,35 +5443,47 @@
"emphasis> problem and is addressed with the read-ahead strategies described "
"in the following sections."
msgstr ""
+"这种模式有两个问题。首先,因为 JBoss 为每个 <literal>findAll</literal> 都执行"
+"一个查询且对于每个找到的元素都用查询进行访问。其原因是 JBoss 容器内部对查询结"
+"果的处理。虽然好像在执行查询时,实际选择的 entity bean 都被返回,但其实 "
+"JBoss 只返回符合条件的 entity 的主键,而直到对其进行方法调用时才载入这个 "
+"entity。这就是有名的 <emphasis>n+1</emphasis> 问题,而后续章节所讨论的 read-"
+"ahead 策略则可以解决这个问题。"
#. Tag: para
#: The_CMP_Engine.xml:1133
#, no-c-format
+#, fuzzy
msgid ""
"Second, the values of unused fields are loaded needlessly. JBoss loads the "
"<literal>hangout</literal> and <literal>organization</literal> fields, which "
"are never accessed. (we have disabled the complex <literal>contactInfo</"
"literal> field for the sake of clarity)"
msgstr ""
+"其次,不必要地加载了未使用的字段的值。JBoss 加载从未被访问的 "
+"<literal>hangout</literal> 和 <literal>organization</literal> 字段。(为清楚"
+"起见,我们禁用了复杂的 <literal>contactInfo</literal> 字段)"
#. Tag: para
#: The_CMP_Engine.xml:1136 The_CMP_Engine.xml:2018
#, no-c-format
+#, fuzzy
msgid "The following table shows the execution of the queries:"
-msgstr ""
+msgstr "下面的表展示了这些查询的执行情况:"
#. Tag: title
#: The_CMP_Engine.xml:1140
#, fuzzy, no-c-format
msgid "Unoptimized Query Execution"
-msgstr "优化状态复制"
+msgstr "执行未优化的查询"
#. Tag: entry
#: The_CMP_Engine.xml:1144 The_CMP_Engine.xml:1360 The_CMP_Engine.xml:1678
#: The_CMP_Engine.xml:2035 The_CMP_Engine.xml:2050
#, no-c-format
+#, fuzzy
msgid "<entry>id</entry>"
-msgstr ""
+msgstr "<entry>id</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:1147 The_CMP_Engine.xml:1363 The_CMP_Engine.xml:1681
@@ -4613,50 +5496,57 @@
#: The_CMP_Engine.xml:1150 The_CMP_Engine.xml:1366 The_CMP_Engine.xml:1684
#: The_CMP_Engine.xml:2041
#, no-c-format
+#, fuzzy
msgid "nick_name"
-msgstr ""
+msgstr "nick_name"
#. Tag: entry
#: The_CMP_Engine.xml:1153 The_CMP_Engine.xml:1369 The_CMP_Engine.xml:1687
#: The_CMP_Engine.xml:2044
#, no-c-format
+#, fuzzy
msgid "badness"
-msgstr ""
+msgstr "badness"
#. Tag: entry
#: The_CMP_Engine.xml:1156 The_CMP_Engine.xml:1372 The_CMP_Engine.xml:1690
#: The_CMP_Engine.xml:2047
#, no-c-format
+#, fuzzy
msgid "hangout"
-msgstr ""
+msgstr "hangout"
#. Tag: entry
#: The_CMP_Engine.xml:1159 The_CMP_Engine.xml:1375 The_CMP_Engine.xml:1693
#, no-c-format
+#, fuzzy
msgid "organization"
-msgstr ""
+msgstr "organization"
#. Tag: entry
#: The_CMP_Engine.xml:1166 The_CMP_Engine.xml:1178 The_CMP_Engine.xml:1382
#: The_CMP_Engine.xml:1394 The_CMP_Engine.xml:1700 The_CMP_Engine.xml:1712
#: The_CMP_Engine.xml:2066 The_CMP_Engine.xml:2078 The_CMP_Engine.xml:2081
#, no-c-format
+#, fuzzy
msgid "<entry>0</entry>"
-msgstr ""
+msgstr "<entry>0</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:1169 The_CMP_Engine.xml:1385 The_CMP_Engine.xml:1703
#: The_CMP_Engine.xml:2069
#, no-c-format
+#, fuzzy
msgid "Yojimbo"
-msgstr ""
+msgstr "Yojimbo"
#. Tag: entry
#: The_CMP_Engine.xml:1172 The_CMP_Engine.xml:1388 The_CMP_Engine.xml:1706
#: The_CMP_Engine.xml:2072
#, no-c-format
+#, fuzzy
msgid "Bodyguard"
-msgstr ""
+msgstr "Bodyguard"
#. Tag: entry
#: The_CMP_Engine.xml:1175 The_CMP_Engine.xml:1306 The_CMP_Engine.xml:1318
@@ -4665,45 +5555,51 @@
#: The_CMP_Engine.xml:2075 The_CMP_Engine.xml:2269 The_CMP_Engine.xml:2281
#: The_CMP_Engine.xml:2284
#, no-c-format
+#, fuzzy
msgid "<entry>7</entry>"
-msgstr ""
+msgstr "<entry>7</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:1181 The_CMP_Engine.xml:1201 The_CMP_Engine.xml:1221
#: The_CMP_Engine.xml:1397 The_CMP_Engine.xml:1417 The_CMP_Engine.xml:1437
#: The_CMP_Engine.xml:1715 The_CMP_Engine.xml:1735 The_CMP_Engine.xml:1755
#, no-c-format
+#, fuzzy
msgid "Yakuza"
-msgstr ""
+msgstr "Yakuza"
#. Tag: entry
#: The_CMP_Engine.xml:1186 The_CMP_Engine.xml:1198 The_CMP_Engine.xml:1402
#: The_CMP_Engine.xml:1414 The_CMP_Engine.xml:1720 The_CMP_Engine.xml:1732
#: The_CMP_Engine.xml:2095 The_CMP_Engine.xml:2107 The_CMP_Engine.xml:2110
#, no-c-format
+#, fuzzy
msgid "<entry>1</entry>"
-msgstr ""
+msgstr "<entry>1</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:1189 The_CMP_Engine.xml:1405 The_CMP_Engine.xml:1723
#: The_CMP_Engine.xml:2098
#, no-c-format
+#, fuzzy
msgid "Takeshi"
-msgstr ""
+msgstr "Takeshi"
#. Tag: entry
#: The_CMP_Engine.xml:1192 The_CMP_Engine.xml:1408 The_CMP_Engine.xml:1726
#: The_CMP_Engine.xml:2101
#, no-c-format
+#, fuzzy
msgid "Master"
-msgstr ""
+msgstr "Master"
#. Tag: entry
#: The_CMP_Engine.xml:1195 The_CMP_Engine.xml:1411 The_CMP_Engine.xml:1729
#: The_CMP_Engine.xml:2104
#, no-c-format
+#, fuzzy
msgid "<entry>10</entry>"
-msgstr ""
+msgstr "<entry>10</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:1206 The_CMP_Engine.xml:1218 The_CMP_Engine.xml:1295
@@ -4712,22 +5608,25 @@
#: The_CMP_Engine.xml:2124 The_CMP_Engine.xml:2136 The_CMP_Engine.xml:2139
#: The_CMP_Engine.xml:2249
#, no-c-format
+#, fuzzy
msgid "<entry>2</entry>"
-msgstr ""
+msgstr "<entry>2</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:1209 The_CMP_Engine.xml:1425 The_CMP_Engine.xml:1743
#: The_CMP_Engine.xml:2127
#, no-c-format
+#, fuzzy
msgid "Yuriko"
-msgstr ""
+msgstr "Yuriko"
#. Tag: entry
#: The_CMP_Engine.xml:1212 The_CMP_Engine.xml:1428 The_CMP_Engine.xml:1746
#: The_CMP_Engine.xml:2130
#, no-c-format
+#, fuzzy
msgid "Four finger"
-msgstr ""
+msgstr "Four finger"
#. Tag: entry
#: The_CMP_Engine.xml:1215 The_CMP_Engine.xml:1246 The_CMP_Engine.xml:1258
@@ -4737,6 +5636,7 @@
#: The_CMP_Engine.xml:2133 The_CMP_Engine.xml:2182 The_CMP_Engine.xml:2194
#: The_CMP_Engine.xml:2197 The_CMP_Engine.xml:2220
#, no-c-format
+#, fuzzy
msgid "<entry>4</entry>"
msgstr "<entry>4</entry>"
@@ -4745,6 +5645,7 @@
#: The_CMP_Engine.xml:1454 The_CMP_Engine.xml:1760 The_CMP_Engine.xml:1772
#: The_CMP_Engine.xml:2153 The_CMP_Engine.xml:2165 The_CMP_Engine.xml:2168
#, no-c-format
+#, fuzzy
msgid "<entry>3</entry>"
msgstr "<entry>3</entry>"
@@ -4752,6 +5653,7 @@
#: The_CMP_Engine.xml:1229 The_CMP_Engine.xml:1445 The_CMP_Engine.xml:1763
#: The_CMP_Engine.xml:2156
#, no-c-format
+#, fuzzy
msgid "Chow"
msgstr "Chow"
@@ -4759,6 +5661,7 @@
#: The_CMP_Engine.xml:1232 The_CMP_Engine.xml:1448 The_CMP_Engine.xml:1766
#: The_CMP_Engine.xml:2159
#, no-c-format
+#, fuzzy
msgid "Killer"
msgstr "Killer"
@@ -4766,6 +5669,7 @@
#: The_CMP_Engine.xml:1235 The_CMP_Engine.xml:1451 The_CMP_Engine.xml:1769
#: The_CMP_Engine.xml:2162
#, no-c-format
+#, fuzzy
msgid "<entry>9</entry>"
msgstr "<entry>9</entry>"
@@ -4773,6 +5677,7 @@
#: The_CMP_Engine.xml:1241 The_CMP_Engine.xml:1261 The_CMP_Engine.xml:1457
#: The_CMP_Engine.xml:1477 The_CMP_Engine.xml:1775 The_CMP_Engine.xml:1795
#, no-c-format
+#, fuzzy
msgid "Triads"
msgstr "Triads"
@@ -4780,6 +5685,7 @@
#: The_CMP_Engine.xml:1249 The_CMP_Engine.xml:1465 The_CMP_Engine.xml:1783
#: The_CMP_Engine.xml:2185
#, no-c-format
+#, fuzzy
msgid "Shogi"
msgstr "Shogi"
@@ -4787,6 +5693,7 @@
#: The_CMP_Engine.xml:1252 The_CMP_Engine.xml:1468 The_CMP_Engine.xml:1786
#: The_CMP_Engine.xml:2188
#, no-c-format
+#, fuzzy
msgid "Lightning"
msgstr "Lightning"
@@ -4794,6 +5701,7 @@
#: The_CMP_Engine.xml:1255 The_CMP_Engine.xml:1471 The_CMP_Engine.xml:1789
#: The_CMP_Engine.xml:2191
#, no-c-format
+#, fuzzy
msgid "<entry>8</entry>"
msgstr "<entry>8</entry>"
@@ -4802,6 +5710,7 @@
#: The_CMP_Engine.xml:1494 The_CMP_Engine.xml:1800 The_CMP_Engine.xml:1812
#: The_CMP_Engine.xml:2211 The_CMP_Engine.xml:2223 The_CMP_Engine.xml:2226
#, no-c-format
+#, fuzzy
msgid "<entry>5</entry>"
msgstr "<entry>5</entry>"
@@ -4809,6 +5718,7 @@
#: The_CMP_Engine.xml:1269 The_CMP_Engine.xml:1485 The_CMP_Engine.xml:1803
#: The_CMP_Engine.xml:2214
#, no-c-format
+#, fuzzy
msgid "Valentino"
msgstr "Valentino"
@@ -4816,6 +5726,7 @@
#: The_CMP_Engine.xml:1272 The_CMP_Engine.xml:1488 The_CMP_Engine.xml:1806
#: The_CMP_Engine.xml:2217
#, no-c-format
+#, fuzzy
msgid "Pizza-Face"
msgstr "Pizza-Face"
@@ -4824,6 +5735,7 @@
#: The_CMP_Engine.xml:1497 The_CMP_Engine.xml:1517 The_CMP_Engine.xml:1537
#: The_CMP_Engine.xml:1815 The_CMP_Engine.xml:1835 The_CMP_Engine.xml:1855
#, no-c-format
+#, fuzzy
msgid "Mafia"
msgstr "Mafia"
@@ -4834,6 +5746,7 @@
#: The_CMP_Engine.xml:2240 The_CMP_Engine.xml:2252 The_CMP_Engine.xml:2255
#: The_CMP_Engine.xml:2278
#, no-c-format
+#, fuzzy
msgid "<entry>6</entry>"
msgstr "<entry>6</entry>"
@@ -4841,6 +5754,7 @@
#: The_CMP_Engine.xml:1289 The_CMP_Engine.xml:1505 The_CMP_Engine.xml:1823
#: The_CMP_Engine.xml:2243
#, no-c-format
+#, fuzzy
msgid "Toni"
msgstr "Toni"
@@ -4848,6 +5762,7 @@
#: The_CMP_Engine.xml:1292 The_CMP_Engine.xml:1508 The_CMP_Engine.xml:1826
#: The_CMP_Engine.xml:2246
#, no-c-format
+#, fuzzy
msgid "Toothless"
msgstr "Toothless"
@@ -4855,6 +5770,7 @@
#: The_CMP_Engine.xml:1309 The_CMP_Engine.xml:1525 The_CMP_Engine.xml:1843
#: The_CMP_Engine.xml:2272
#, no-c-format
+#, fuzzy
msgid "Corleone"
msgstr "Corleone"
@@ -4862,18 +5778,21 @@
#: The_CMP_Engine.xml:1312 The_CMP_Engine.xml:1528 The_CMP_Engine.xml:1846
#: The_CMP_Engine.xml:2275
#, no-c-format
+#, fuzzy
msgid "Godfather"
msgstr "Godfather"
#. Tag: title
#: The_CMP_Engine.xml:1331
#, no-c-format
+#, fuzzy
msgid "Load Groups"
-msgstr "Load Groups"
+msgstr "加载组(Load Group)"
#. Tag: para
#: The_CMP_Engine.xml:1332
#, no-c-format
+#, fuzzy
msgid ""
"The configuration and optimization of the loading system begins with the "
"declaration of named load groups in the entity. A load group contains the "
@@ -4881,10 +5800,15 @@
"<literal>Gangster</literal> in the Organization-Gangster example) that will "
"be loaded in a single operation. An example configuration is shown below:"
msgstr ""
+"对加载系统的配置和优化从 entity 里命名的加载组(load group)声明开始。加载组"
+"包含具有外键并将在单一操作里加载的 CMP 字段和 CMR 字段的名字(如 "
+"Organization-Gangster 示例里的 <literal>Gangster</literal>)。下面是一个配置"
+"示例:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1335
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -4937,6 +5861,7 @@
#. Tag: para
#: The_CMP_Engine.xml:1336
#, no-c-format
+#, fuzzy
msgid ""
"In this example, two load groups are declared: <literal>basic</literal> and "
"<literal>contact info</literal>. Note that the load groups do not need to be "
@@ -4945,16 +5870,23 @@
"JBoss automatically adds a group named <literal>*</literal> (the star group) "
"that contains every CMP field and CMR field with a foreign key in the entity."
msgstr ""
+"在这个例子里声明了两个加载组(load group):<literal>basic</literal> 和 "
+"<literal>contact info</literal>。请注意,加载组并不需要相互排斥。例如,这两个"
+"加载组都可以包含 <literal>nickName</literal> 字段。除了所声明的加载组,JBoss "
+"还自动地添加一个名为 <literal>*</literal> 的组,它包含每个带有 entity 里的外"
+"键的 CMP 字段和 CMR 字段。"
#. Tag: title
#: The_CMP_Engine.xml:1342
#, no-c-format
+#, fuzzy
msgid "Read-ahead"
-msgstr ""
+msgstr "Read-ahead"
#. Tag: para
#: The_CMP_Engine.xml:1343
#, no-c-format
+#, fuzzy
msgid ""
"Optimized loading in JBoss is called read-ahead. This refers to the "
"technique of reading the row for an entity being loaded, as well as the next "
@@ -4967,25 +5899,37 @@
"it is loaded into an entity or the end of the transaction occurs. The "
"following sections describe the read-ahead strategies."
msgstr ""
+"JBoss 里的优化加载被称为预读(read-ahead)。这指的是在读取被加载的 entity 的"
+"某一行时,同时还读取下面的几行,所以被称为预读(read-ahead)。JBoss 实现两个"
+"主要的策略(<literal>on-find</literal> 和 <literal>on-load</literal>)来优化"
+"前面章节所提及的加载问题。在预读期间加载的额外数据不会马上和内存里的 entity "
+"对象相关联,因为 JBoss 里的 entity 知道实际被访问时才会实例化。相反,它会存储"
+"在预加载的缓存里,而知道事务结束时才会载入到 entity 里。下面的章节描述了预读"
+"策略。"
#. Tag: title
#: The_CMP_Engine.xml:1347
#, no-c-format
+#, fuzzy
msgid "on-find"
-msgstr ""
+msgstr "on-find"
#. Tag: para
#: The_CMP_Engine.xml:1348
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>on-find</literal> strategy reads additional columns when the "
"query is invoked. If the query is <literal>on-find</literal> optimized, "
"JBoss will execute the following query when the query is executed."
msgstr ""
+"<literal>on-find</literal> 策略在查询被调用时读取列。如果这个查询是经过 "
+"<literal>on-find</literal> 优化的,JBoss 将执行下面的查询。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1351
#, no-c-format
+#, fuzzy
msgid ""
"SELECT t0_g.id, t0_g.name, t0_g.nick_name, t0_g.badness \n"
" FROM gangster t0_g\n"
@@ -4998,6 +5942,7 @@
#. Tag: para
#: The_CMP_Engine.xml:1352
#, no-c-format
+#, fuzzy
msgid ""
"All of the required data would be in the preload cache, so no additional "
"queries would need to be executed while iterating through the query results. "
@@ -5005,16 +5950,21 @@
"but it becomes very inefficient when trying to load a large result set into "
"memory. The following table shows the execution of this query:"
msgstr ""
+"所有需要的数据都存放在预加载的缓存里,所以在迭代查询结果时不需要执行额外的查"
+"询。这种策略对于返回少量数据的查询来说时有效的,但是如果把大量的查询结果放入"
+"内存就非常低效了。下面的表展示了这个查询的执行:"
#. Tag: title
#: The_CMP_Engine.xml:1356
#, no-c-format
+#, fuzzy
msgid "on-find Optimized Query Execution"
-msgstr ""
+msgstr "经过 on-find 优化的查询结果"
#. Tag: para
#: The_CMP_Engine.xml:1544
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>read-ahead</literal> strategy and <literal>load-group</literal> "
"for a query is defined in the <literal>query</literal> element. If a "
@@ -5023,10 +5973,16 @@
"<literal>entity</literal> element or <literal>defaults</literal> element is "
"used. The <literal>on-find</literal> configuration follows:"
msgstr ""
+"<literal>read-ahead</literal> 策略和查询的 <literal>load-group</literal> 在 "
+"<literal>query</literal> 元素里进行定义。如果 <literal>read-ahead</literal> "
+"策略不在 <literal>query</literal> 里声明,<literal>entity</literal> 元素或 "
+"<literal>defaults</literal> 元素里声明的策略将被使用。下面是 <literal>on-"
+"find</literal> 的配置:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1547
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -5081,6 +6037,7 @@
#. Tag: para
#: The_CMP_Engine.xml:1548
#, no-c-format
+#, fuzzy
msgid ""
"One problem with the <literal>on-find</literal> strategy is that it must "
"load additional data for every entity selected. Commonly in web applications "
@@ -5090,16 +6047,22 @@
"The <literal>on-load</literal> strategy discussed in the next section does "
"not suffer from this problem."
msgstr ""
+"<literal>on-find</literal> 策略存在的一个问题时它必须为每个选择的 entity 载入"
+"额外的数据。在 web 程序里,页面上通常会显示固定数量的结果。既然预加载的数据只"
+"在事务期间有效,而事务仅仅限于单个的 web HTTP 会话,那么大多数的预加载数据都"
+"不会被用到。下节讨论的 <literal>on-load</literal> 策略就不会有这个问题。"
#. Tag: title
#: The_CMP_Engine.xml:1552
#, no-c-format
+#, fuzzy
msgid "Left join read ahead"
-msgstr ""
+msgstr "Left join read ahead"
#. Tag: para
#: The_CMP_Engine.xml:1553
#, no-c-format
+#, fuzzy
msgid ""
"Left join read ahead is an enhanced <literal>on-find</literal><literal>read-"
"ahead</literal> strategy. It allows you to preload in one SQL query not only "
@@ -5111,39 +6074,54 @@
"Let's look at some examples. Entity and relationship declarations can be "
"found below."
msgstr ""
+"Left join read ahead 是一个加强的 <literal>on-find</literal><literal>read-"
+"ahead</literal> 策略。它允许你预加载 SQL 查询,不仅包括基础实例的字段,也包括"
+"可以通过 CMR 导航从基础实例引用的相关实例。CMR 导航的深度没有限制。在导航和关"
+"系类型映射里使用的 CMR 字段的表间关系(cardinality)也没有限制,也就是说,外"
+"键和关系表映射风格都被支持。让我们来看看一些例子。下面是 Entity 和关系的声"
+"明。"
#. Tag: title
#: The_CMP_Engine.xml:1559
#, no-c-format
+#, fuzzy
msgid "D#findByPrimaryKey"
-msgstr ""
+msgstr "D#findByPrimaryKey"
#. Tag: para
#: The_CMP_Engine.xml:1560
#, no-c-format
+#, fuzzy
msgid ""
"Suppose we have an entity <literal>D</literal>. A typical SQL query "
"generated for the <literal>findByPrimaryKey</literal> would look like this:"
msgstr ""
+"假设我们有一个名为 <literal>D</literal> 的 entity。为 "
+"<literal>findByPrimaryKey</literal> 生成的典型的 SQL 查询将类似于:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1563
#, no-c-format
+#, fuzzy
msgid "SELECT t0_D.id, t0_D.name FROM D t0_D WHERE t0_D.id=?"
-msgstr ""
+msgstr "SELECT t0_D.id, t0_D.name FROM D t0_D WHERE t0_D.id=?"
#. Tag: para
#: The_CMP_Engine.xml:1564
#, no-c-format
+#, fuzzy
msgid ""
"Suppose that while executing <literal>findByPrimaryKey</literal> we also "
"want to preload two collection-valued CMR fields <literal>bs</literal> and "
"<literal>cs</literal>."
msgstr ""
+"假设当执行 <literal>findByPrimaryKey</literal> 时,我们也想要预加载两个值为集"
+"合的 CMR 字段 <literal>bs</literal> 和 <literal>cs</literal>。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1567
#, no-c-format
+#, fuzzy
msgid ""
"<query>\n"
" <query-method>\n"
@@ -5163,18 +6141,37 @@
" </read-ahead>\n"
"</query>"
msgstr ""
+"<query>\n"
+" <query-method>\n"
+" <method-name>findByPrimaryKey</method-name>\n"
+" <method-params>\n"
+" <method-param>java.lang.Long</method-param>\n"
+" </method-params>\n"
+" </query-method>\n"
+" <jboss-ql><![CDATA[SELECT OBJECT(o) FROM D AS o WHERE o.id = ?"
+"1]]></jboss-ql>\n"
+" <read-ahead>\n"
+" <strategy>on-find</strategy>\n"
+" <page-size>4</page-size>\n"
+" <eager-load-group>basic</eager-load-group>\n"
+" <left-join cmr-field=\"bs\" eager-load-group=\"basic\"/>\n"
+" <left-join cmr-field=\"cs\" eager-load-group=\"basic\"/>\n"
+" </read-ahead>\n"
+"</query>"
#. Tag: para
#: The_CMP_Engine.xml:1568
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>left-join</literal> declares the relations to be eager loaded. "
"The generated SQL would look like this:"
-msgstr ""
+msgstr "<literal>left-join</literal> 声明要加载的关系。生成的 SQL 将类似于:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1571
#, no-c-format
+#, fuzzy
msgid ""
"SELECT t0_D.id, t0_D.name,\n"
" t1_D_bs.id, t1_D_bs.name,\n"
@@ -5195,44 +6192,57 @@
#. Tag: para
#: The_CMP_Engine.xml:1572
#, no-c-format
+#, fuzzy
msgid ""
"For the <literal>D</literal> with the specific id we preload all its related "
"<literal>B</literal>'s and <literal>C</literal>'s and can access "
"those instance loading them from the read ahead cache, not from the database."
msgstr ""
+"对于带有特定 ID 的 <literal>D</literal>,我们预加载所有相关的 <literal>B</"
+"literal> 和 <literal>C</literal>,然后我们可以访问那些从预读缓存而不是数据库"
+"里加载的实例。"
#. Tag: title
#: The_CMP_Engine.xml:1578
#, no-c-format
+#, fuzzy
msgid "D#findAll"
-msgstr ""
+msgstr "D#findAll"
#. Tag: para
#: The_CMP_Engine.xml:1579
#, no-c-format
+#, fuzzy
msgid ""
"In the same way, we could optimize the <literal>findAll</literal> method on "
"<literal>D</literal> selects all the <literal>D</literal>'s. A normal "
"findAll query would look like this:"
msgstr ""
+"以相同的方式,我们可以优化 <literal>D</literal> 的 <literal>findAll</"
+"literal> 方法,选择所有的 <literal>D</literal>。普通的 findAll 查询类似于:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1582
#, no-c-format
+#, fuzzy
msgid "SELECT DISTINCT t0_o.id, t0_o.name FROM D t0_o ORDER BY t0_o.id DESC"
-msgstr ""
+msgstr "SELECT DISTINCT t0_o.id, t0_o.name FROM D t0_o ORDER BY t0_o.id DESC"
#. Tag: para
#: The_CMP_Engine.xml:1583
#, no-c-format
+#, fuzzy
msgid ""
"To preload the relations, we simply need to add the <literal>left-join</"
"literal> elements to the query."
msgstr ""
+"为了预加载关系,我们只需简单地把 <literal>left-join</literal> 元素添加到这个"
+"查询里。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1586
#, no-c-format
+#, fuzzy
msgid ""
"<query>\n"
" <query-method>\n"
@@ -5267,12 +6277,14 @@
#. Tag: para
#: The_CMP_Engine.xml:1587
#, no-c-format
+#, fuzzy
msgid "And here is the generated SQL:"
-msgstr ""
+msgstr "下面是生成的 SQL:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1590
#, no-c-format
+#, fuzzy
msgid ""
"SELECT DISTINCT t0_o.id, t0_o.name,\n"
" t1_o_bs.id, t1_o_bs.name,\n"
@@ -5298,31 +6310,37 @@
"<literal>B</literal> and <literal>C</literal> objects for each <literal>D</"
"literal> object."
msgstr ""
-"<literal>Alias</literal> 元素是 <literal>Host</literal> 参数的一个可选子参"
-"数。每个 <literal>Alias</literal> 为对应的 <literal>Host</literal> 指定一个"
-"替代的 DNS 名。"
+"现在,简单的 <literal>findAll</literal> 查询为每个 <literal>D</literal> 对象"
+"预加载了相关的 <literal>B</literal> 和 <literal>C</literal> 对象。"
#. Tag: title
#: The_CMP_Engine.xml:1597
#, no-c-format
+#, fuzzy
msgid "A#findAll"
-msgstr ""
+msgstr "A#findAll"
#. Tag: para
#: The_CMP_Engine.xml:1598
#, no-c-format
+#, fuzzy
msgid ""
"Now let's look at a more complex configuration. Here we want to preload "
"instance <literal>A</literal> along with several relations."
msgstr ""
+"现在,让我们来看一个更为复杂的配置。在这里我们想预加载实例 <literal>A</"
+"literal> 以及几个关系。"
#. Tag: para
#: The_CMP_Engine.xml:1603
#, no-c-format
+#, fuzzy
msgid ""
"its parent (self-relation) reached from <literal>A</literal> with CMR field "
"<literal>parent</literal>"
msgstr ""
+"通过 CMR 字段 <literal>parent</literal> 从 <literal>A</literal> 连接的父关系"
+"(自有关系)。"
#. Tag: para
#: The_CMP_Engine.xml:1608
@@ -5332,40 +6350,48 @@
"<literal>b</literal>, and the related <literal>C</literal> reached from "
"<literal>B</literal> with CMR field <literal>c</literal>"
msgstr ""
-"JAXP JAR是<literal>crimson.jar</literal>还是 <literal>xerces.jar</literal>依"
-"赖于<literal>Main</literal>入口的<literal>-j</literal>选项。缺省是"
-"<literal>crimson.jar</literal>。"
+"用 CMR 字段 <literal>b</literal> 从 <literal>A</literal> 到达的 <literal>B</"
+"literal>,以及相关的用 CMR 字段 <literal>c</literal> 到达的 <literal>C</"
+"literal>。"
#. Tag: para
#: The_CMP_Engine.xml:1613
#, no-c-format
+#, fuzzy
msgid ""
"<literal>B</literal> reached from <literal>A</literal> but this time with "
"CMR field <literal>b2</literal> and related to it <literal>C</literal> "
"reached from B with CMR field c."
msgstr ""
+"从 <literal>A</literal> 到达的 <literal>B</literal>,但这次使用 CMR 字段 "
+"<literal>b2</literal> 且将其关联至从 B 用 CMR 字段 c 到达的 <literal>C</"
+"literal>。"
#. Tag: para
#: The_CMP_Engine.xml:1618
#, no-c-format
+#, fuzzy
msgid "For reference, the standard query would be:"
-msgstr ""
+msgstr "作为参考,标准的查询将是:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1621
#, no-c-format
+#, fuzzy
msgid "SELECT t0_o.id, t0_o.name FROM A t0_o ORDER BY t0_o.id DESC FOR UPDATE"
-msgstr ""
+msgstr "SELECT t0_o.id, t0_o.name FROM A t0_o ORDER BY t0_o.id DESC FOR UPDATE"
#. Tag: para
#: The_CMP_Engine.xml:1622
#, no-c-format
+#, fuzzy
msgid "The following metadata describes our preloading plan."
-msgstr ""
+msgstr "下面的元数据描述了我们的预加载计划。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1625
#, no-c-format
+#, fuzzy
msgid ""
"<query>\n"
" <query-method>\n"
@@ -5387,16 +6413,37 @@
" </read-ahead>\n"
"</query>"
msgstr ""
+"<query>\n"
+" <query-method>\n"
+" <method-name>findAll</method-name>\n"
+" </query-method>\n"
+" <jboss-ql><![CDATA[SELECT OBJECT(o) FROM A AS o ORDER BY o.id "
+"DESC]]></jboss-ql>\n"
+" <read-ahead>\n"
+" <strategy>on-find</strategy>\n"
+" <page-size>4</page-size>\n"
+" <eager-load-group>basic</eager-load-group>\n"
+" <left-join cmr-field=\"parent\" eager-load-group=\"basic\"/>\n"
+" <left-join cmr-field=\"b\" eager-load-group=\"basic\">\n"
+" <left-join cmr-field=\"c\" eager-load-group=\"basic\"/>\n"
+" </left-join>\n"
+" <left-join cmr-field=\"b2\" eager-load-group=\"basic\">\n"
+" <left-join cmr-field=\"c\" eager-load-group=\"basic\"/>\n"
+" </left-join>\n"
+" </read-ahead>\n"
+"</query>"
#. Tag: para
#: The_CMP_Engine.xml:1626
#, no-c-format
+#, fuzzy
msgid "The SQL query generated would be:"
-msgstr ""
+msgstr "生成的 SQL 将是:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1629
#, no-c-format
+#, fuzzy
msgid ""
"SELECT t0_o.id, t0_o.name,\n"
" t1_o_parent.id, t1_o_parent.name,\n"
@@ -5412,34 +6459,56 @@
" LEFT OUTER JOIN C t5_o_b2_c ON t4_o_b2.C_FK=t5_o_b2_c.id\n"
" ORDER BY t0_o.id DESC FOR UPDATE"
msgstr ""
+"SELECT t0_o.id, t0_o.name,\n"
+" t1_o_parent.id, t1_o_parent.name,\n"
+" t2_o_b.id, t2_o_b.name,\n"
+" t3_o_b_c.id, t3_o_b_c.name,\n"
+" t4_o_b2.id, t4_o_b2.name,\n"
+" t5_o_b2_c.id, t5_o_b2_c.name\n"
+" FROM A t0_o\n"
+" LEFT OUTER JOIN A t1_o_parent ON t0_o.PARENT=t1_o_parent.id\n"
+" LEFT OUTER JOIN B t2_o_b ON t0_o.B_FK=t2_o_b.id\n"
+" LEFT OUTER JOIN C t3_o_b_c ON t2_o_b.C_FK=t3_o_b_c.id\n"
+" LEFT OUTER JOIN B t4_o_b2 ON t0_o.B2_FK=t4_o_b2.id\n"
+" LEFT OUTER JOIN C t5_o_b2_c ON t4_o_b2.C_FK=t5_o_b2_c.id\n"
+" ORDER BY t0_o.id DESC FOR UPDATE"
#. Tag: para
#: The_CMP_Engine.xml:1630
#, no-c-format
+#, fuzzy
msgid ""
"With this configuration, you can navigate CMRs from any found instance of "
"<literal>A</literal> without an additional database load."
msgstr ""
+"使用这个配置,你可以从任何找到的 <literal>A</literal> 实例导航至 CMR 而不需要"
+"加载其他的数据库。"
#. Tag: title
#: The_CMP_Engine.xml:1636
#, no-c-format
+#, fuzzy
msgid "A#findMeParentGrandParent"
-msgstr ""
+msgstr "A#findMeParentGrandParent"
#. Tag: para
#: The_CMP_Engine.xml:1637
#, no-c-format
+#, fuzzy
msgid ""
"Here is another example of self-relation. Suppose, we want to write a method "
"that would preload an instance, its parent, grand-parent and its grand-grand-"
"parent in one query. To do this, we would used nested <literal>left-join</"
"literal> declaration."
msgstr ""
+"这是另外一个自有关系(self-relation)的例子。假设我们想编写一个方法,它在查询"
+"里预加载一个实例、其 parent、 grand-parent 和 grand-grand-parent。为了实现这"
+"一点,我们将使用嵌套的 <literal>left-join</literal> 声明。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1640
#, no-c-format
+#, fuzzy
msgid ""
"<query>\n"
" <query-method>\n"
@@ -5464,10 +6533,33 @@
" </read-ahead>\n"
"</query>"
msgstr ""
+"<query>\n"
+" <query-method>\n"
+" <method-name>findMeParentGrandParent</method-name>\n"
+" <method-params>\n"
+" <method-param>java.lang.Long</method-param>\n"
+" </method-params>\n"
+" </query-method>\n"
+" <jboss-ql><![CDATA[SELECT OBJECT(o) FROM A AS o WHERE o.id = ?"
+"1]]></jboss-ql>\n"
+" <read-ahead>\n"
+" <strategy>on-find</strategy>\n"
+" <page-size>4</page-size>\n"
+" <eager-load-group>*</eager-load-group>\n"
+" <left-join cmr-field=\"parent\" eager-load-group=\"basic\">\n"
+" <left-join cmr-field=\"parent\" eager-load-group=\"basic"
+"\">\n"
+" <left-join cmr-field=\"parent\" eager-load-group=\"basic"
+"\"/>\n"
+" </left-join>\n"
+" </left-join>\n"
+" </read-ahead>\n"
+"</query>"
#. Tag: programlisting
#: The_CMP_Engine.xml:1644
#, no-c-format
+#, fuzzy
msgid ""
"SELECT t0_o.id, t0_o.name, t0_o.secondName, t0_o.B_FK, t0_o.B2_FK, t0_o."
"PARENT,\n"
@@ -5482,30 +6574,48 @@
" ON t2_o_parent_parent.PARENT=t3_o_parent_parent_parent.id\n"
" WHERE (t0_o.id = ?) FOR UPDATE"
msgstr ""
+"SELECT t0_o.id, t0_o.name, t0_o.secondName, t0_o.B_FK, t0_o.B2_FK, t0_o."
+"PARENT,\n"
+" t1_o_parent.id, t1_o_parent.name,\n"
+" t2_o_parent_parent.id, t2_o_parent_parent.name,\n"
+" t3_o_parent_parent_parent.id, t3_o_parent_parent_parent.name\n"
+" FROM A t0_o\n"
+" LEFT OUTER JOIN A t1_o_parent ON t0_o.PARENT=t1_o_parent.id\n"
+" LEFT OUTER JOIN A t2_o_parent_parent ON t1_o_parent."
+"PARENT=t2_o_parent_parent.id\n"
+" LEFT OUTER JOIN A t3_o_parent_parent_parent \n"
+" ON t2_o_parent_parent.PARENT=t3_o_parent_parent_parent.id\n"
+" WHERE (t0_o.id = ?) FOR UPDATE"
#. Tag: para
#: The_CMP_Engine.xml:1645
#, no-c-format
+#, fuzzy
msgid "Note, if we remove <literal>left-join</literal> metadata we will have only"
-msgstr ""
+msgstr "请注意,如果我们删除了 <literal>left-join</literal> 元数据,我们将只有:"
#. Tag: programlisting
#: The_CMP_Engine.xml:1648
#, no-c-format
+#, fuzzy
msgid ""
"SELECT t0_o.id, t0_o.name, t0_o.secondName, t0_o.B2_FK, t0_o.PARENT FOR "
"UPDATE"
msgstr ""
+"SELECT t0_o.id, t0_o.name, t0_o.secondName, t0_o.B2_FK, t0_o.PARENT FOR "
+"UPDATE"
#. Tag: title
#: The_CMP_Engine.xml:1654
#, no-c-format
+#, fuzzy
msgid "on-load"
-msgstr ""
+msgstr "on-load"
#. Tag: para
#: The_CMP_Engine.xml:1655
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>on-load</literal> strategy block-loads additional data for "
"several entities when an entity is loaded, starting with the requested "
@@ -5518,6 +6628,10 @@
"cachemax</literal> element of the entity. This strategy is also used when "
"faulting in data not loaded in the <literal>on-find</literal> strategy."
msgstr ""
+"<literal>on-load</literal> 策略在某个 entity 被加载时为几个 entity 加载其他数据块,按顺序从被请求的 "
+"entity 开始,直到所选择的其他几个 entity。当查询被执行时,JBoss 把找到的 entity 的顺序保存在列表缓存里。之后,当其中一个 "
+"entity 被加载时,JBoss 使用这个列表来决定加载的 entity 块。该 entity 的 <literal>list-cachemax<"
+"/literal> 元素指定存储在缓存里的列表的个数。这个策略也用于 <literal>on-find</literal> 策略不加载的有问题的数据。"
#. Tag: para
#: The_CMP_Engine.xml:1658
@@ -5527,13 +6641,13 @@
"is declared in the <literal>read-ahead</literal> element. The <literal>on-"
"load</literal> configuration for this example is shown below."
msgstr ""
-"JAXP JAR是<literal>crimson.jar</literal>还是 <literal>xerces.jar</literal>依"
-"赖于<literal>Main</literal>入口的<literal>-j</literal>选项。缺省是"
-"<literal>crimson.jar</literal>。"
+"和 <literal>on-find</literal> 策略一样,<literal>on-load</literal> 也在 <literal>"
+"read-ahead</literal> 元素里声明。下面是一个 <literal>on-load</literal> 配置的例子。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1661
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -5560,25 +6674,55 @@
" </enterprise-beans>\n"
"</jbosscmp-jdbc>"
msgstr ""
+"<jbosscmp-jdbc>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>GangsterEJB</ejb-name>\n"
+" <!-- ... -->\n"
+" <query>\n"
+" <query-method>\n"
+" <method-name>findAll_onload</method-name>\n"
+" <method-params/>\n"
+" </query-method>\n"
+" <jboss-ql><![CDATA[\n"
+" SELECT OBJECT(g)\n"
+" FROM gangster g\n"
+" ORDER BY g.gangsterId\n"
+" ]]></jboss-ql>\n"
+" <read-ahead>\n"
+" <strategy>on-load</strategy>\n"
+" <page-size>4</page-size>\n"
+" <eager-load-group>basic</eager-load-group>\n"
+" </read-ahead>\n"
+" </query>\n"
+" </entity>\n"
+" </enterprise-beans>\n"
+"</jbosscmp-jdbc>"
#. Tag: para
#: The_CMP_Engine.xml:1662
#, no-c-format
+#, fuzzy
msgid "With this strategy, the query for the finder method in remains unchanged."
-msgstr ""
+msgstr "根据这个策略,使用 finder 方法的查询仍维持不变。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1665
#, no-c-format
+#, fuzzy
msgid ""
"SELECT t0_g.id\n"
" FROM gangster t0_g\n"
" ORDER BY t0_g.id ASC"
msgstr ""
+"SELECT t0_g.id\n"
+" FROM gangster t0_g\n"
+" ORDER BY t0_g.id ASC"
#. Tag: para
#: The_CMP_Engine.xml:1666
#, no-c-format
+#, fuzzy
msgid ""
"However, the data will be loaded differently as we iterate through the "
"result set. For a page size of four, JBoss will only need to execute the "
@@ -5586,10 +6730,13 @@
"<literal>nickName</literal> and <literal>badness</literal> fields for the "
"entities:"
msgstr ""
+"然而,在我们迭代结果集时数据的加载会有所不同。对于页面大小为 4 的结果集,JBoss 将只需要执行下面的两个查询来加载 <literal>name<"
+"/literal>、<literal>nickName</literal> 和 <literal>badness</literal> 字段。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1669
#, no-c-format
+#, fuzzy
msgid ""
"SELECT id, name, nick_name, badness\n"
" FROM gangster\n"
@@ -5598,28 +6745,38 @@
" FROM gangster\n"
" WHERE (id=4) OR (id=5) OR (id=6) OR (id=7)"
msgstr ""
+"SELECT id, name, nick_name, badness\n"
+" FROM gangster\n"
+" WHERE (id=0) OR (id=1) OR (id=2) OR (id=3)\n"
+"SELECT id, name, nick_name, badness\n"
+" FROM gangster\n"
+" WHERE (id=4) OR (id=5) OR (id=6) OR (id=7)"
#. Tag: para
#: The_CMP_Engine.xml:1670
#, no-c-format
+#, fuzzy
msgid "The following table shows the execution of these queries:"
-msgstr ""
+msgstr "下面的表展示了这些查询的执行情况:"
#. Tag: title
#: The_CMP_Engine.xml:1674
#, no-c-format
+#, fuzzy
msgid "on-load Optimized Query Execution"
-msgstr ""
+msgstr "执行用 on-load 策略优化的查询"
#. Tag: title
#: The_CMP_Engine.xml:1865
#, no-c-format
+#, fuzzy
msgid "none"
-msgstr ""
+msgstr "none 策略"
#. Tag: para
#: The_CMP_Engine.xml:1866
#, no-c-format
+#, fuzzy
msgid ""
"The <literal>none</literal> strategy is really an anti-strategy. This "
"strategy causes the system to fall back to the default lazy-load code, and "
@@ -5630,6 +6787,10 @@
"literal> element or <literal>eager-load-group</literal>, it is ignored. The "
"none strategy is declared the following example."
msgstr ""
+"<literal>none</literal> 策略实际上是一个反策略(anti-strategy)。这个策略使系统用回缺省的 lazy-load "
+"代码,尤其是不预读任何数据或记住找到的 entity 的顺序。其结果就时本章开始时显示的查询执行结果。none 策略用 read-ahead "
+"元素进行声明。如果 <literal>read-ahead</literal> 元素包含一个 <literal>page-size</literal> "
+"元素或 <literal>eager-load-group</literal>,它将被忽略。下面是一个声明 none 策略的例子。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1869
@@ -5658,39 +6819,39 @@
" </enterprise-beans>\n"
"</jbosscmp-jdbc>"
msgstr ""
-"<jboss> \n"
-" <enterprise-beans> \n"
-" <entity> \n"
-" <ejb-name>nextgen.EnterpriseEntity</ejb-"
-"name> \n"
-" <jndi-name>nextgen.EnterpriseEntity</jndi-"
-"name> \n"
-" <clustered>True</clustered> \n"
-" <cluster-config> \n"
-" <partition-name>DefaultPartition</partition-"
-"name> \n"
-" <home-load-balance-policy> \n"
-" org.jboss.ha.framework.interfaces."
-"RoundRobin \n"
-" </home-load-balance-policy> \n"
-" <bean-load-balance-policy> \n"
-" org.jboss.ha.framework.interfaces."
-"FirstAvailable \n"
-" </bean-load-balance-policy> \n"
-" </cluster-config> \n"
-" </entity> \n"
-" </enterprise-beans> \n"
-"</jboss>"
+"<jbosscmp-jdbc>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>GangsterEJB</ejb-name>\n"
+" <!-- ... -->\n"
+" <query>\n"
+" <query-method>\n"
+" <method-name>findAll_none</method-name>\n"
+" <method-params/>\n"
+" </query-method>\n"
+" <jboss-ql><![CDATA[\n"
+" SELECT OBJECT(g)\n"
+" FROM gangster g\n"
+" ORDER BY g.gangsterId\n"
+" ]]></jboss-ql>\n"
+" <read-ahead>\n"
+" <strategy>none</strategy>\n"
+" </read-ahead>\n"
+" </query>\n"
+" </entity>\n"
+" </enterprise-beans>\n"
+"</jbosscmp-jdbc>"
#. Tag: title
#: The_CMP_Engine.xml:1877
#, fuzzy, no-c-format
msgid "Loading Process"
-msgstr "负载平衡策略"
+msgstr "加载过程"
#. Tag: para
#: The_CMP_Engine.xml:1878
#, no-c-format
+#, fuzzy
msgid ""
"In the previous section several steps use the phrase \"when the entity is "
"loaded.\" This was intentionally left vague because the commit option "
@@ -5698,16 +6859,20 @@
"when an entity is loaded. The following section describes the commit options "
"and the loading processes."
msgstr ""
+"在前一节里,有几个步骤使用了短语 \"when the entity is loaded\"。这种模糊是故意留下的,因为为这个 entity "
+"指定的提交选项和事务的当前状态决定了 entity 的加载时机。下面的内容将描述提交选项和加载过程。"
#. Tag: title
#: The_CMP_Engine.xml:1882
#, no-c-format
+#, fuzzy
msgid "Commit Options"
-msgstr ""
+msgstr "提交选项"
#. Tag: para
#: The_CMP_Engine.xml:1883
#, no-c-format
+#, fuzzy
msgid ""
"Central to the loading process are the commit options, which control when "
"the data for an entity expires. JBoss supports four commit options "
@@ -5716,10 +6881,14 @@
"JavaBeans Specification, but the last one is specific to JBoss. A detailed "
"description of each commit option follows:"
msgstr ""
+"加载过程的中心是提交选项(commit option),它控制 entity 的数据的过期时间。JBoss 支持 4 种提交选项 <literal>A<"
+"/literal>、<literal>B</literal>、<literal>C</literal> 和 <literal>D</literal>"
+"。EJB 规格里描述了前面 3 种,最后一个是 JBoss 所特有的。下面是对每个提交选项的详细描述:"
#. Tag: para
#: The_CMP_Engine.xml:1888
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">A</emphasis>: JBoss assumes it is the sole user of "
"the database; therefore, JBoss can cache the current value of an entity "
@@ -5729,16 +6898,22 @@
"direct JDBC (even within JBoss) will result in an inconsistent database "
"state."
msgstr ""
+"<emphasis role=\"bold\">A</emphasis>:JBoss 假设它是数据库的唯一用户;因此,JBoss 可以缓存事务间的 "
+"entity 的当前值,这能够提升性能。利用这种假设,JBoss 管理的数据都不能在 JBoss 之外进行修改。例如,在另外一个程序里修改数据或直接使用 "
+"JDBC(即使在 JBoss 内部)都将导致不一致的数据库状态。"
#. Tag: para
#: The_CMP_Engine.xml:1893
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">B</emphasis>: JBoss assumes that there is more than "
"one user of the database but keeps the context information about entities "
"between transactions. This context information is used for optimizing "
"loading of the entity. This is the default commit option."
msgstr ""
+"<emphasis role=\"bold\">B</emphasis>: JBoss 假设有多个用户访问数据库,但也保留事务间的 entity "
+"的上下文信息。这些信息被用来优化 entity 的加载。它是缺省的提交选项。"
#. Tag: para
#: The_CMP_Engine.xml:1898
@@ -5746,36 +6921,45 @@
msgid ""
"<emphasis role=\"bold\">C</emphasis>: JBoss discards all entity context "
"information at the end of the transaction."
-msgstr "<emphasis role=\"bold\">name</emphasis>:这个元素包含操作的名字。"
+msgstr "<emphasis role=\"bold\">C</emphasis>: 在事务结束时,JBoss 丢弃所有 entity 的上下文的信息。"
#. Tag: para
#: The_CMP_Engine.xml:1903
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">D</emphasis>: This is a JBoss specific commit "
"option. This option is similar to commit option <literal>A</literal>, except "
"that the data only remains valid for a specified amount of time."
msgstr ""
+"<emphasis role=\"bold\">D</emphasis>:这是 JBoss 专有的提交选项。这个选项和 <literal>A<"
+"/literal> 相似,但其数据只在指定的时间内保持有效。"
#. Tag: para
#: The_CMP_Engine.xml:1908
#, no-c-format
+#, fuzzy
msgid ""
"The commit option is declared in the <literal>jboss.xml</literal> file. For "
"a detailed description of this file see <xref linkend=\"EJBs_on_JBoss\"/>. "
"The following example changes the commit option to <literal>A</literal> for "
"all entity beans in the application:"
msgstr ""
+"我们在 <literal>jboss.xml</literal> 文件里对提交选项进行声明。对于这个文件的详细描述,请参考 <xref "
+"linkend=\"EJBs_on_JBoss\"/>。下面的例子把应用程序里的所有 entity bean 的提交选项修改为 <literal>A<"
+"/literal>:"
#. Tag: title
#: The_CMP_Engine.xml:1911
#, no-c-format
+#, fuzzy
msgid "The jboss.xml Commit Option Declaration"
-msgstr ""
+msgstr "在 jboss.xml 里声明提交选项"
#. Tag: programlisting
#: The_CMP_Engine.xml:1912
#, no-c-format
+#, fuzzy
msgid ""
"<jboss>\n"
" <container-configurations>\n"
@@ -5787,16 +6971,27 @@
" </container-configurations>\n"
"</jboss>"
msgstr ""
+"<jboss>\n"
+" <container-configurations>\n"
+" <container-configuration>\n"
+" <container-name>Standard CMP 2.x EntityBean</container-"
+"name>\n"
+" <commit-option>A</commit-option>\n"
+" </container-configuration>\n"
+" </container-configurations>\n"
+"</jboss>"
#. Tag: title
#: The_CMP_Engine.xml:1917
#, no-c-format
+#, fuzzy
msgid "Eager-loading Process"
-msgstr ""
+msgstr "Eager 加载过程"
#. Tag: para
#: The_CMP_Engine.xml:1918
#, no-c-format
+#, fuzzy
msgid ""
"When an entity is loaded, JBoss must determine the fields that need to be "
"loaded. By default, JBoss will use the <literal>eager-load-group</literal> "
@@ -5807,6 +7002,11 @@
"the <literal>basic</literal> load group is set as the default <literal>eager-"
"load-group</literal> for the gangster entity bean:"
msgstr ""
+"当加载 entity 时,JBoss 必须决定需要加载的字段。在缺省情况下,JBoss 将使用选择这个 entity 的最后一个查询的 <literal>"
+"eager-load-group</literal>。如果没有查询选择这个 entity,或者最后的查询使用了 <literal>none<"
+"/literal> 预读策略,JBoss 将使用该 entity 的缺省的 <literal>eager-load-group</literal>"
+"。在下面的例子里,<literal>basic</literal> 加载组被设置为 gangster entity bean 的缺省 <literal>"
+"eager-load-group</literal>。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1921
@@ -5832,73 +7032,79 @@
" </enterprise-beans>\n"
"</jbosscmp-jdbc>"
msgstr ""
-"<jboss> \n"
-" <enterprise-beans> \n"
-" <session> \n"
-" <ejb-name>nextgen.StatelessSession</ejb-"
-"name> \n"
-" <jndi-name>nextgen.StatelessSession</jndi-"
-"name> \n"
-" <clustered>True</clustered> \n"
-" <cluster-config> \n"
-" <partition-name>DefaultPartition</partition-"
-"name> \n"
-" <home-load-balance-policy> \n"
-" org.jboss.ha.framework.interfaces.RoundRobin \n"
-" </home-load-balance-policy> \n"
-" <bean-load-balance-policy> \n"
-" org.jboss.ha.framework.interfaces.RoundRobin\n"
-" </bean-load-balance-policy>\n"
-" </cluster-config>\n"
-" </session>\n"
+"<jbosscmp-jdbc>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>GangsterEJB</ejb-name>\n"
+" <!-- ... -->\n"
+" <load-groups>\n"
+" <load-group>\n"
+" <load-group-name>most</load-group-name>\n"
+" <field-name>name</field-name>\n"
+" <field-name>nickName</field-name>\n"
+" <field-name>badness</field-name>\n"
+" <field-name>hangout</field-name>\n"
+" <field-name>organization</field-name>\n"
+" </load-group>\n"
+" </load-groups>\n"
+" <eager-load-group>most</eager-load-group>\n"
+" </entity>\n"
" </enterprise-beans>\n"
-"</jboss>"
+"</jbosscmp-jdbc>"
#. Tag: para
#: The_CMP_Engine.xml:1922
#, no-c-format
+#, fuzzy
msgid ""
"The eager loading process is initiated the first time a method is called on "
"an entity in a transaction. A detailed description of the load process "
"follows:"
-msgstr ""
+msgstr "当事务里的 entity 的某个方法第一次被调用时,Eager 加载过程被初始化。下面是对这个加载过程的详细描述:"
#. Tag: para
#: The_CMP_Engine.xml:1927
#, no-c-format
+#, fuzzy
msgid ""
"If the entity context is still valid, no loading is necessary, and therefore "
"the loading process is done. The entity context will be valid when using "
"commit option <literal>A</literal>, or when using commit option <literal>D</"
"literal>, and the data has not timed out."
msgstr ""
+"如果 entity 的上下文仍然有效,则无需进行加载,因此加载过程就结束了。在使用提交选项 <literal>A</literal> 或 <"
+"literal>D</literal> 且数据未超时时,entity 的上下文将保持有效。"
#. Tag: para
#: The_CMP_Engine.xml:1932
#, no-c-format
+#, fuzzy
msgid ""
"Any residual data in the entity context is flushed. This assures that old "
"data does not bleed into the new load."
-msgstr ""
+msgstr "Entity 上下文里的任何驻留数据都将被清除。这确保了旧的数据不会混在新的加载过程里。"
#. Tag: para
#: The_CMP_Engine.xml:1937
#, no-c-format
+#, fuzzy
msgid ""
"The primary key value is injected back into the primary key fields. The "
"primary key object is actually independent of the fields and needs to be "
"reloaded after the flush in step 2."
-msgstr ""
+msgstr "主键值被注入回主键字段里。主键对象实际上独立于这些字段,它需要在第二步的清除后重新进行加载。"
#. Tag: para
#: The_CMP_Engine.xml:1942 The_CMP_Engine.xml:1975
#, no-c-format
+#, fuzzy
msgid "All data in the preload cache for this entity is loaded into the fields."
-msgstr ""
+msgstr "预加载缓存里这个 entity 的任何数据都将加载到这些字段里。"
#. Tag: para
#: The_CMP_Engine.xml:1947
#, no-c-format
+#, fuzzy
msgid ""
"JBoss determines the additional fields that still need to be loaded. "
"Normally the fields to load are determined by the eager-load group of the "
@@ -5907,10 +7113,14 @@
"ahead strategy. If all of the fields have already been loaded, the load "
"process skips to step 7."
msgstr ""
+"JBoss 决定仍需要被加载的其他字段。通常这些字段由 entity 的 eager-load group 所决定,但如果该 entity "
+"通过查询或带有 <literal>on-find</literal> 或 <literal>on-load</literal> 预读策略的 CMR "
+"字段进行定位时,它们可以被覆盖。如果所有这些字段都已经加载,那么加载过程将跳至步骤 7。"
#. Tag: para
#: The_CMP_Engine.xml:1952
#, no-c-format
+#, fuzzy
msgid ""
"A query is executed to select the necessary column. If this entity is using "
"the <literal>on-load</literal> strategy, a page of data is loaded as "
@@ -5918,22 +7128,26 @@
"current entity is stored in the context and the data for the other entities "
"is stored in the preload cache."
msgstr ""
+"我们执行一个查询来选定所需的列。如果这个 entity 使用了 <literal>on-load</literal> 策略,那么如 <xref "
+"linkend=\"Read_ahead-on_load\"/> 所提及的,一页数据将被加载。当前 entity 的数据存储在上下文里,而其他 "
+"entity 的数据保存在预加载缓存中。"
#. Tag: para
#: The_CMP_Engine.xml:1957
#, fuzzy, no-c-format
msgid "The <literal>ejbLoad</literal> method of the entity is called."
-msgstr "<literal>attribute</literal>元素所支持的属性包括:"
+msgstr "调用该 entity 的 <literal>ejbLoad</literal> 方法。"
#. Tag: title
#: The_CMP_Engine.xml:1965
#, fuzzy, no-c-format
msgid "Lazy loading Process"
-msgstr "负载平衡策略"
+msgstr "Lazy 加载过程"
#. Tag: para
#: The_CMP_Engine.xml:1966
#, no-c-format
+#, fuzzy
msgid ""
"Lazy loading is the other half of eager loading. If a field is not eager "
"loaded, it must be lazy loaded. When an access to an unloaded field of a "
@@ -5942,10 +7156,14 @@
"removes any field that is already loaded. An example configuration is shown "
"below."
msgstr ""
+"Lazy 加载时 eager 加载的另外一半。如果某个字段没有进行 eager 加载,那么它必须进行 lazy 加载。当访问某个 bean "
+"的未加载字段时,JBoss 加载这个字段以及它所属的任何 <literal>lazy-load-group</literal> 里的字段。JBoss "
+"执行一系列 join 操作,然后删除任何已经加载的字段。下面是一个配置示例。"
#. Tag: programlisting
#: The_CMP_Engine.xml:1969
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -5976,10 +7194,39 @@
" </enterprise-beans>\n"
"</jbosscmp-jdbc>"
msgstr ""
+"<jbosscmp-jdbc>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>GangsterEJB</ejb-name>\n"
+" <!-- ... -->\n"
+" <load-groups>\n"
+" <load-group>\n"
+" <load-group-name>basic</load-group-name>\n"
+" <field-name>name</field-name>\n"
+" <field-name>nickName</field-name>\n"
+" <field-name>badness</field-name>\n"
+" </load-group>\n"
+" <load-group>\n"
+" <load-group-name>contact info</load-group-"
+"name>\n"
+" <field-name>nickName</field-name>\n"
+" <field-name>contactInfo</field-name>\n"
+" <field-name>hangout</field-name>\n"
+" </load-group>\n"
+" </load-groups>\n"
+" <!-- ... -->\n"
+" <lazy-load-groups>\n"
+" <load-group-name>basic</load-group-name>\n"
+" <load-group-name>contact info</load-group-name>\n"
+" </lazy-load-groups>\n"
+" </entity>\n"
+" </enterprise-beans>\n"
+"</jbosscmp-jdbc>"
#. Tag: para
#: The_CMP_Engine.xml:1970
#, no-c-format
+#, fuzzy
msgid ""
"When the bean provider calls <literal>getName()</literal> with this "
"configuration, JBoss loads <literal>name</literal>, <literal>nickName</"
@@ -5989,42 +7236,54 @@
"literal>, <literal>contactInfo</literal>, and <literal>hangout</literal> are "
"loaded. A detailed description of the lazy loading process follows:"
msgstr ""
+"当 bean 提供者调用 <literal>getName()</literal> 时,JBoss 加载 <literal>name</literal>"
+"、 <literal>nickName</literal> 和 <literal>badness</literal>,假定它们还没有被加载。当 bean "
+"提供者调用 <literal>getNickName()</literal> 时,<literal>name</literal>、<literal>"
+"nickName</literal>、 <literal>badness</literal>、<literal>contactInfo</literal>"
+" 和 <literal>hangout</literal> 将被加载。下面是对 lazy 加载过程的详细描述:"
#. Tag: para
#: The_CMP_Engine.xml:1980
#, no-c-format
+#, fuzzy
msgid ""
"If the field value was loaded by the preload cache the lazy load process is "
"finished."
-msgstr ""
+msgstr "如果字段值通过预加载缓存加载,那么 lazy 加载过程就结束了。"
#. Tag: para
#: The_CMP_Engine.xml:1985
#, no-c-format
+#, fuzzy
msgid ""
"JBoss finds all of the lazy load groups that contain this field, performs a "
"set join on the groups, and removes any field that has already been loaded."
-msgstr ""
+msgstr "JBoss 找到所有包含这个字段的 lazy 加载组,执行一系列 join 操作,并删除已经加载的任何字段。"
#. Tag: para
#: The_CMP_Engine.xml:1990
#, no-c-format
+#, fuzzy
msgid ""
"A query is executed to select the necessary columns. As in the basic load "
"process, JBoss may load a block of entities. The data for the current entity "
"is stored in the context and the data for the other entities is stored in "
"the preload cache."
msgstr ""
+"我们执行一个查询来选择所需的列。和基本的加载过程一样,JBoss 可以加载一个 entity 块。当前 entity 的数据保存在上下文里,而其他 "
+"entity 的数据则存储在预加载缓存里。"
#. Tag: title
#: The_CMP_Engine.xml:1996
#, no-c-format
+#, fuzzy
msgid "Relationships"
-msgstr ""
+msgstr "关系"
#. Tag: para
#: The_CMP_Engine.xml:1997
#, no-c-format
+#, fuzzy
msgid ""
"Relationships are a special case in lazy loading because a CMR field is both "
"a field and query. As a field it can be <literal>on-load</literal> block "
@@ -6033,25 +7292,31 @@
"field values of the related entity can be preloaded using <literal>on-find</"
"literal>."
msgstr ""
+"关系是 lazy 加载里的一个特例,因为 CMR 字段既是字段也是查询。作为字段,它可以进行 <literal>on-load</literal> "
+"块加载,这表示当前搜索的 entity 的值和下几个 entity 的 CMR 字段的值将被加载。而作为查询,相关的 entity 的字段值可以通过 <"
+"literal>on-find</literal> 进行预加载。"
#. Tag: para
#: The_CMP_Engine.xml:2000
#, no-c-format
+#, fuzzy
msgid ""
"Again, the easiest way to investigate the loading is to look at a usage "
"scenario. In this example, an HTML table is generated containing each "
"gangster and their hangout. The example code follows:"
-msgstr ""
+msgstr "熟悉加载过程最简单的方法是通过用例。在这个例子里,包含每个 gangster 及其 hangout 的 HTML 表将被生成。下面时示例代码:"
#. Tag: title
#: The_CMP_Engine.xml:2003
#, no-c-format
+#, fuzzy
msgid "Relationship Lazy Loading Example Code"
-msgstr ""
+msgstr "关系的 Lazy 加载的示例代码"
#. Tag: programlisting
#: The_CMP_Engine.xml:2004
#, no-c-format
+#, fuzzy
msgid ""
"public String createGangsterHangoutHtmlTable() \n"
" throws FinderException\n"
@@ -6082,26 +7347,60 @@
" table.append(\"</table>\");return table.toString();\n"
"}"
msgstr ""
+"public String createGangsterHangoutHtmlTable() \n"
+" throws FinderException\n"
+"{\n"
+" StringBuffer table = new StringBuffer();\n"
+" table.append(\"<table>\");\n"
+" Collection gangsters = gangsterHome.findAll_onfind();\n"
+" for (Iterator iter = gangsters.iterator(); iter.hasNext(); ) {\n"
+" Gangster gangster = (Gangster)iter.next();\n"
+"\n"
+" Location hangout = gangster.getHangout();\n"
+" table.append(\"<tr>\");\n"
+" table.append(\"<td>\").append(gangster.getName());\n"
+" table.append(\"</td>\");\n"
+" table.append(\"<td>\").append(gangster.getNickName());\n"
+" table.append(\"</td>\");\n"
+" table.append(\"<td>\").append(gangster.getBadness());\n"
+" table.append(\"</td>\");\n"
+" table.append(\"<td>\").append(hangout.getCity());\n"
+" table.append(\"</td>\");\n"
+" table.append(\"<td>\").append(hangout.getState());\n"
+" table.append(\"</td>\");\n"
+" table.append(\"<td>\").append(hangout.getZipCode());\n"
+" table.append(\"</td>\");\n"
+" table.append(\"</tr>\");\n"
+" }\n"
+"\n"
+" table.append(\"</table>\");return table.toString();\n"
+"}"
#. Tag: para
#: The_CMP_Engine.xml:2005
#, no-c-format
+#, fuzzy
msgid ""
"For this example, the configuration of the gangster's "
"<literal>findAll_onfind</literal> query is unchanged from the <literal>on-"
"find</literal> section. The configuration of the <literal>Location</literal> "
"entity and <literal>Gangster-Hangout</literal> relationship follows:"
msgstr ""
+"对于这个例子,<literal>on-find</literal> 部分没有修改 gangster 的 <literal>findAll_onfind<"
+"/literal> 查询的配置。下面是 <literal>Location</literal> entity 和 <literal>"
+"Gangster-Hangout</literal> 关系的配置:"
#. Tag: title
#: The_CMP_Engine.xml:2008
#, no-c-format
+#, fuzzy
msgid "The jbosscmp-jdbc.xml Relationship Lazy Loading Configuration"
-msgstr ""
+msgstr "jbosscmp-jdbc.xml 里关于关系的 Lazy 加载的配置"
#. Tag: programlisting
#: The_CMP_Engine.xml:2009
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -6151,34 +7450,90 @@
" </relationships>\n"
"</jbosscmp-jdbc>"
msgstr ""
+"<jbosscmp-jdbc>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>LocationEJB</ejb-name>\n"
+" <load-groups>\n"
+" <load-group>\n"
+" <load-group-name>quick info</load-group-"
+"name>\n"
+" <field-name>city</field-name>\n"
+" <field-name>state</field-name>\n"
+" <field-name>zipCode</field-name>\n"
+" </load-group>\n"
+" </load-groups>\n"
+" <eager-load-group/>\n"
+" </entity>\n"
+" </enterprise-beans>\n"
+" <relationships>\n"
+" <ejb-relation>\n"
+" <ejb-relation-name>Gangster-Hangout</ejb-relation-"
+"name>\n"
+" <foreign-key-mapping/>\n"
+" <ejb-relationship-role>\n"
+" <ejb-relationship-role-name>\n"
+" gangster-has-a-hangout\n"
+" </ejb-relationship-role-name>\n"
+" <key-fields/>\n"
+" <read-ahead>\n"
+" <strategy>on-find</strategy>\n"
+" <page-size>4</page-size>\n"
+" <eager-load-group>quick info</eager-load-"
+"group>\n"
+" </read-ahead>\n"
+" </ejb-relationship-role>\n"
+" <ejb-relationship-role>\n"
+" <ejb-relationship-role-name>\n"
+" hangout-for-a-gangster\n"
+" </ejb-relationship-role-name>\n"
+" <key-fields>\n"
+" <key-field>\n"
+" <field-name>locationID</field-name>\n"
+" <column-name>hangout</column-name>\n"
+" </key-field>\n"
+" </key-filaelds>\n"
+" </ejb-relationship-role>\n"
+" </ejb-relation>\n"
+" </relationships>\n"
+"</jbosscmp-jdbc>"
#. Tag: para
#: The_CMP_Engine.xml:2010
#, no-c-format
+#, fuzzy
msgid "JBoss will execute the following query for the finder:"
-msgstr ""
+msgstr "JBoss 将为该 finder 执行下列查询:"
#. Tag: programlisting
#: The_CMP_Engine.xml:2013
#, no-c-format
+#, fuzzy
msgid ""
"SELECT t0_g.id, t0_g.name, t0_g.nick_name, t0_g.badness\n"
" FROM gangster t0_g\n"
" ORDER BY t0_g.id ASC"
msgstr ""
+"SELECT t0_g.id, t0_g.name, t0_g.nick_name, t0_g.badness\n"
+" FROM gangster t0_g\n"
+" ORDER BY t0_g.id ASC"
#. Tag: para
#: The_CMP_Engine.xml:2014
#, no-c-format
+#, fuzzy
msgid ""
"Then when the hangout is accessed, JBoss executes the following two queries "
"to load the <literal>city</literal>, <literal>state</literal>, and "
"<literal>zip</literal> fields of the hangout:"
msgstr ""
+"然后,当 hangout 被访问时,JBoss 将执行下面的两个查询来加载 hangout 的 <literal>city</literal>、 <"
+"literal>state</literal> 和 <literal>zip</literal> 字段。"
#. Tag: programlisting
#: The_CMP_Engine.xml:2017
#, no-c-format
+#, fuzzy
msgid ""
"SELECT gangster.id, gangster.hangout,\n"
" location.city, location.st, location.zip\n"
@@ -6193,117 +7548,146 @@
" ((gangster.id=4) OR (gangster.id=5) OR\n"
" (gangster.id=6) OR (gangster.id=7))"
msgstr ""
+"SELECT gangster.id, gangster.hangout,\n"
+" location.city, location.st, location.zip\n"
+" FROM gangster, location\n"
+" WHERE (gangster.hangout=location.id) AND\n"
+" ((gangster.id=0) OR (gangster.id=1) OR\n"
+" (gangster.id=2) OR (gangster.id=3))\n"
+"SELECT gangster.id, gangster.hangout,\n"
+" location.city, location.st, location.zip\n"
+" FROM gangster, location\n"
+" WHERE (gangster.hangout=location.id) AND\n"
+" ((gangster.id=4) OR (gangster.id=5) OR\n"
+" (gangster.id=6) OR (gangster.id=7))"
#. Tag: title
#: The_CMP_Engine.xml:2022
#, no-c-format
+#, fuzzy
msgid "on-find Optimized Relationship Query Execution"
-msgstr ""
+msgstr "执行通过 on-find 优化的关系查询"
#. Tag: entry
#: The_CMP_Engine.xml:2053
#, fuzzy, no-c-format
msgid "city"
-msgstr "client"
+msgstr "city"
#. Tag: entry
#: The_CMP_Engine.xml:2056
#, no-c-format
+#, fuzzy
msgid "<entry>st</entry>"
-msgstr ""
+msgstr "<entry>st</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:2059
#, no-c-format
+#, fuzzy
msgid "<entry>zip</entry>"
-msgstr ""
+msgstr "<entry>zip</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:2084 The_CMP_Engine.xml:2113 The_CMP_Engine.xml:2142
#: The_CMP_Engine.xml:2171 The_CMP_Engine.xml:2200
#, no-c-format
+#, fuzzy
msgid "San Fran"
-msgstr ""
+msgstr "San Fran"
#. Tag: entry
#: The_CMP_Engine.xml:2087 The_CMP_Engine.xml:2116 The_CMP_Engine.xml:2145
#: The_CMP_Engine.xml:2174 The_CMP_Engine.xml:2203
#, no-c-format
+#, fuzzy
msgid "<entry>CA</entry>"
-msgstr ""
+msgstr "<entry>CA</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:2090
#, no-c-format
+#, fuzzy
msgid "94108"
-msgstr ""
+msgstr "94108"
#. Tag: entry
#: The_CMP_Engine.xml:2119 The_CMP_Engine.xml:2148 The_CMP_Engine.xml:2177
#: The_CMP_Engine.xml:2206
#, no-c-format
+#, fuzzy
msgid "94133"
-msgstr ""
+msgstr "94133"
#. Tag: entry
#: The_CMP_Engine.xml:2229
#, no-c-format
+#, fuzzy
msgid "New York"
-msgstr ""
+msgstr "New York"
#. Tag: entry
#: The_CMP_Engine.xml:2232
#, no-c-format
+#, fuzzy
msgid "<entry>NY</entry>"
-msgstr ""
+msgstr "<entry>NY</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:2235
#, no-c-format
+#, fuzzy
msgid "10017"
-msgstr ""
+msgstr "10017"
#. Tag: entry
#: The_CMP_Engine.xml:2258
#, no-c-format
+#, fuzzy
msgid "Chicago"
-msgstr ""
+msgstr "Chicago"
#. Tag: entry
#: The_CMP_Engine.xml:2261
#, no-c-format
+#, fuzzy
msgid "<entry>IL</entry>"
-msgstr ""
+msgstr "<entry>IL</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:2264
#, no-c-format
+#, fuzzy
msgid "60661"
-msgstr ""
+msgstr "60661"
#. Tag: entry
#: The_CMP_Engine.xml:2287
#, no-c-format
+#, fuzzy
msgid "Las Vegas"
-msgstr ""
+msgstr "Las Vegas"
#. Tag: entry
#: The_CMP_Engine.xml:2290
#, no-c-format
+#, fuzzy
msgid "<entry>NV</entry>"
-msgstr ""
+msgstr "<entry>NV</entry>"
#. Tag: entry
#: The_CMP_Engine.xml:2293
#, no-c-format
+#, fuzzy
msgid "89109"
-msgstr ""
+msgstr "89109"
#. Tag: title
#: The_CMP_Engine.xml:2305
#, no-c-format
+#, fuzzy
msgid "Lazy loading result sets"
-msgstr ""
+msgstr "Lazy 加载的结果集"
#. Tag: para
#: The_CMP_Engine.xml:2306
@@ -6322,6 +7706,7 @@
#. Tag: programlisting
#: The_CMP_Engine.xml:2309
#, no-c-format
+#, fuzzy
msgid ""
"<query>\n"
" <query-method>\n"
@@ -6333,6 +7718,15 @@
"resultset-loading></emphasis>\n"
"</query>"
msgstr ""
+"<query>\n"
+" <query-method>\n"
+" <method-name>findAll</method-name>\n"
+" </query-method>\n"
+" <jboss-ql><![CDATA[select object(o) from A o]]></jboss-"
+"ql>\n"
+" <emphasis role=\"bold\"><lazy-resultset-loading>true</lazy-"
+"resultset-loading></emphasis>\n"
+"</query>"
#. Tag: para
#: The_CMP_Engine.xml:2310
@@ -6354,7 +7748,7 @@
#: The_CMP_Engine.xml:2318
#, fuzzy, no-c-format
msgid "Transactions"
-msgstr "The Operations"
+msgstr "transactional"
#. Tag: para
#: The_CMP_Engine.xml:2319
@@ -6380,6 +7774,7 @@
#. Tag: programlisting
#: The_CMP_Engine.xml:2325
#, no-c-format
+#, fuzzy
msgid ""
"public String createGangsterHtmlTable_no_tx() throws FinderException\n"
"{\n"
@@ -6403,6 +7798,27 @@
" return table.toString();\n"
"}"
msgstr ""
+"public String createGangsterHtmlTable_no_tx() throws FinderException\n"
+"{\n"
+" StringBuffer table = new StringBuffer();\n"
+" table.append(\"<table>\");\n"
+"\n"
+" Collection gangsters = gangsterHome.findFour();\n"
+" for(Iterator iter = gangsters.iterator(); iter.hasNext(); ) {\n"
+" Gangster gangster = (Gangster)iter.next();\n"
+" table.append(\"<tr>\");\n"
+" table.append(\"<td>\").append(gangster.getName());\n"
+" table.append(\"</td>\");\n"
+" table.append(\"<td>\").append(gangster.getNickName());\n"
+" table.append(\"</td>\");\n"
+" table.append(\"<td>\").append(gangster.getBadness());\n"
+" table.append(\"</td>\");\n"
+" table.append(\"</tr>\");\n"
+" }\n"
+" \n"
+" table.append(\"</table>\");\n"
+" return table.toString();\n"
+"}"
#. Tag: para
#: The_CMP_Engine.xml:2326
@@ -6413,12 +7829,17 @@
#. Tag: programlisting
#: The_CMP_Engine.xml:2329
#, no-c-format
+#, fuzzy
msgid ""
"SELECT t0_g.id, t0_g.name, t0_g.nick_name, t0_g.badness\n"
" FROM gangster t0_g\n"
" WHERE t0_g.id < 4\n"
" ORDER BY t0_g.id ASC"
msgstr ""
+"SELECT t0_g.id, t0_g.name, t0_g.nick_name, t0_g.badness\n"
+" FROM gangster t0_g\n"
+" WHERE t0_g.id < 4\n"
+" ORDER BY t0_g.id ASC"
#. Tag: para
#: The_CMP_Engine.xml:2330
@@ -6433,6 +7854,7 @@
#. Tag: programlisting
#: The_CMP_Engine.xml:2333
#, no-c-format
+#, fuzzy
msgid ""
"SELECT id, name, nick_name, badness\n"
" FROM gangster\n"
@@ -6447,6 +7869,18 @@
" FROM gangster\n"
" WHERE (id=3)"
msgstr ""
+"SELECT id, name, nick_name, badness\n"
+" FROM gangster\n"
+" WHERE (id=0) OR (id=1) OR (id=2) OR (id=3)\n"
+"SELECT id, name, nick_name, badness\n"
+" FROM gangster\n"
+" WHERE (id=1) OR (id=2) OR (id=3)\n"
+"SELECT id, name, nick_name, badness\n"
+" FROM gangster\n"
+" WHERE (id=2) OR (id=3)\n"
+"SELECT name, nick_name, badness\n"
+" FROM gangster\n"
+" WHERE (id=3)"
#. Tag: para
#: The_CMP_Engine.xml:2334
@@ -6472,11 +7906,12 @@
#. Tag: para
#: The_CMP_Engine.xml:2348
#, no-c-format
+#, fuzzy
msgid ""
"This performance is much worse than read ahead none because of the amount of "
"data loaded from the database. The number of rows loaded is determined by "
"the following equation:"
-msgstr ""
+msgstr "none 策略:"
#. Tag: para
#: The_CMP_Engine.xml:2356
@@ -6496,6 +7931,7 @@
#. Tag: programlisting
#: The_CMP_Engine.xml:2359
#, no-c-format
+#, fuzzy
msgid ""
"public String createGangsterHtmlTable_with_tx()\n"
" throws FinderException\n"
@@ -6529,16 +7965,49 @@
" }\n"
"}"
msgstr ""
+"public String createGangsterHtmlTable_with_tx()\n"
+" throws FinderException\n"
+"{\n"
+" UserTransaction tx = null;\n"
+" try {\n"
+" InitialContext ctx = new InitialContext();\n"
+" tx = (UserTransaction) ctx.lookup(\"UserTransaction\");\n"
+" tx.begin();\n"
+"\n"
+" String table = createGangsterHtmlTable_no_tx();\n"
+" \n"
+" if (tx.getStatus() == Status.STATUS_ACTIVE) {\n"
+" tx.commit();\n"
+" }\n"
+" return table;\n"
+" } catch (Exception e) {\n"
+" try {\n"
+" if (tx != null) tx.rollback();\n"
+" } catch (SystemException unused) {\n"
+" // eat the exception we are exceptioning out anyway\n"
+" }\n"
+" if (e instanceof FinderException) {\n"
+" throw (FinderException) e;\n"
+" }\n"
+" if (e instanceof RuntimeException) {\n"
+" throw (RuntimeException) e;\n"
+" }\n"
+"\n"
+" throw new EJBException(e);\n"
+" }\n"
+"}"
#. Tag: title
#: The_CMP_Engine.xml:2363
#, no-c-format
+#, fuzzy
msgid "Optimistic Locking"
-msgstr ""
+msgstr "乐观锁定(Optimistic Locking)"
#. Tag: para
#: The_CMP_Engine.xml:2364
#, no-c-format
+#, fuzzy
msgid ""
"JBoss has supports for optimistic locking of entity beans. Optimistic "
"locking allows multiple instances of the same entity bean to be active "
@@ -6550,10 +8019,16 @@
"current transaction was started. This is done using a <literal>select for "
"UPDATE WHERE ...</literal> statement that contains the value assertions."
msgstr ""
+"JBoss 支持 entity bean 的乐观锁定。乐观锁定允许相同的 entity bean 的多个实例"
+"同时处于活动状态。对于乐观锁定策略而言,一致性是强制的。乐观锁定策略选择定义"
+"了用在提交阶段把有改动的数据写入数据库时使用的字段。乐观一致性检查判断选定字"
+"段的值是否和在当前事务开始时就存在于数据库里的值相同。这是通过包含值判断的 "
+"<literal>select for UPDATE WHERE ...</literal> 语句来完成的。"
#. Tag: para
#: The_CMP_Engine.xml:2367
#, no-c-format
+#, fuzzy
msgid ""
"You specify the optimistic locking policy choice using an "
"<literal>optimistic-locking</literal> element in the <literal>jbosscmp-jdbc."
@@ -6561,16 +8036,20 @@
"locking</literal> element is shown below and the description of the elements "
"follows."
msgstr ""
+"你可以在 <literal>jbosscmp-jdbc.xml</literal> 描述符里通过 "
+"<literal>optimistic-locking</literal> 元素指定乐观锁定策略选择。下面是 "
+"<literal>optimistic-locking</literal> 元素的内容模型及其描述。"
#. Tag: title
#: The_CMP_Engine.xml:2371
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc optimistic-locking element content model"
-msgstr "The XMBean notification element and content model"
+msgstr "jbosscmp-jdbc 文件里的 optimistic-locking 元素的内容模型"
#. Tag: para
#: The_CMP_Engine.xml:2380
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">group-name</emphasis>: This element specifies that "
"optimistic locking is based on the fields of a <literal>load-group</"
@@ -6578,30 +8057,40 @@
"<literal>load-group-name</literal>. The fields in this group will be used "
"for optimistic locking."
msgstr ""
+"<emphasis role=\"bold\">group-name</emphasis>:这个元素指定优化锁定基于 "
+"<literal>load-group</literal> 的字段。这个元素的值必须匹配 entity 的 "
+"<literal>load-group-name</literal> 中的一个。这个组里的字段将用于优化锁定。"
#. Tag: para
#: The_CMP_Engine.xml:2385
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">modified-strategy</emphasis>: This element specifies "
"that optimistic locking is based on the modified fields. This strategy "
"implies that the fields that were modified during transaction will be used "
"for optimistic locking."
msgstr ""
+"<emphasis role=\"bold\">modified-strategy</emphasis>:这个元素指定优化锁定基"
+"于被修改的字段。这个策略暗示这在事务中被修改的字段将被用于乐观锁定。"
#. Tag: para
#: The_CMP_Engine.xml:2390
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">read-strategy</emphasis>: This element specifies "
"that optimistic locking is based on the fields read. This strategy implies "
"that the fields that were read/changed in the transaction will be used for "
"optimistic locking."
msgstr ""
+"<emphasis role=\"bold\">read-strategy</emphasis>:这个元素指定用户锁定基于字"
+"段的读取。这个策略表示在事务中被读/修改的字段将被用于乐观锁定。"
#. Tag: para
#: The_CMP_Engine.xml:2395
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">version-column</emphasis>: This element specifies "
"that optimistic locking is based on a version column strategy. Specifying "
@@ -6612,10 +8101,16 @@
"while the <literal>column-name</literal> element allows for the "
"specification of the corresponding table column."
msgstr ""
+"<emphasis role=\"bold\">version-column</emphasis>:这个元素指定优化锁定基于 "
+"version 列的策略。指定这个元素将在 entity bean 里添加一个额外的 version 字"
+"段,其类型为 <literal>java.lang.Long</literal>。每次对 entity 的更新都使这个"
+"字段的值增加。<literal>field-name</literal> 元素允许指定 CMP 字段的名字,而 "
+"<literal>column-name</literal> 元素则允许指定对应的表的列的名称。"
#. Tag: para
#: The_CMP_Engine.xml:2400
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">timestamp-column</emphasis>: This element specifies "
"that optimistic locking is based on a timestamp column strategy. Specifying "
@@ -6626,10 +8121,16 @@
"name of the CMP field while the <literal>column-name</literal> element "
"allows for the specification of the corresponding table column."
msgstr ""
+"<emphasis role=\"bold\">timestamp-column</emphasis>:这个元素指定优化锁定基"
+"于 timestamp 列的策略。指定这个元素将在 entity bean 里添加一个额外的 version "
+"字段,其类型为 <literal>java.lang.Date</literal>。每次对 entity 的更新都使这"
+"个字段的值增加。<literal>field-name</literal> 元素允许指定 CMP 字段的名字,"
+"而 <literal>column-name</literal> 元素则允许指定对应的表的列的名称。"
#. Tag: para
#: The_CMP_Engine.xml:2405
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">key-generator-factory</emphasis>: This element "
"specifies that optimistic locking is based on key generation. The value of "
@@ -6643,18 +8144,29 @@
"name of the CMP field while the <literal>column-name</literal> element "
"allows for the specification of the corresponding table column."
msgstr ""
+"<emphasis role=\"bold\">key-generator-factory</emphasis>:这个元素指定用户锁"
+"定基于键的生成。这个元素的值是 <literal>org.jboss.ejb.plugins.keygenerator."
+"KeyGeneratorFactory</literal> 实现的 JNDI 名字。指定这个元素将在 entity bean "
+"里添加一个额外的 version 字段。这个字段的类型必须通过 <literal>field-type</"
+"literal> 元素来指定。每次对 entity 的更新都使这个字段的值增加。"
+"<literal>field-name</literal> 元素允许指定 CMP 字段的名字,而 "
+"<literal>column-name</literal> 元素则允许指定对应的表的列的名称。"
#. Tag: para
#: The_CMP_Engine.xml:2410
#, no-c-format
+#, fuzzy
msgid ""
"A sample <literal>jbosscmp-jdbc.xml</literal> descriptor illustrating all of "
"the optimistic locking strategies is given below."
msgstr ""
+"下面的 <literal>jbosscmp-jdbc.xml</literal> 描述符示例演示了所有的用户锁定策"
+"略。"
#. Tag: programlisting
#: The_CMP_Engine.xml:2413
#, no-c-format
+#, fuzzy
msgid ""
"<!DOCTYPE jbosscmp-jdbc PUBLIC \n"
" \"-//JBoss//DTD JBOSSCMP-JDBC 3.2//EN\"\n"
@@ -6801,16 +8313,162 @@
" </enterprise-beans>\n"
"</jbosscmp-jdbc>"
msgstr ""
+"<!DOCTYPE jbosscmp-jdbc PUBLIC \n"
+" \"-//JBoss//DTD JBOSSCMP-JDBC 3.2//EN\"\n"
+" \"http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_2.dtd\">\n"
+"<jbosscmp-jdbc>\n"
+" <defaults>\n"
+" <datasource>java:/DefaultDS</datasource>\n"
+" <datasource-mapping>Hypersonic SQL</datasource-mapping>\n"
+" </defaults>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>EntityGroupLocking</ejb-name>\n"
+" <create-table>true</create-table>\n"
+" <remove-table>true</remove-table>\n"
+" <table-name>entitygrouplocking</table-name>\n"
+" <cmp-field>\n"
+" <field-name>dateField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>integerField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>stringField</field-name>\n"
+" </cmp-field>\n"
+" <load-groups>\n"
+" <load-group>\n"
+" <load-group-name>string</load-group-name>\n"
+" <field-name>stringField</field-name>\n"
+" </load-group>\n"
+" <load-group>\n"
+" <load-group-name>all</load-group-name>\n"
+" <field-name>stringField</field-name>\n"
+" <field-name>dateField</field-name>\n"
+" </load-group>\n"
+" </load-groups>\n"
+" <optimistic-locking>\n"
+" <group-name>string</group-name>\n"
+" </optimistic-locking>\n"
+" </entity>\n"
+" <entity>\n"
+" <ejb-name>EntityModifiedLocking</ejb-name>\n"
+" <create-table>true</create-table>\n"
+" <remove-table>true</remove-table>\n"
+" <table-name>entitymodifiedlocking</table-name>\n"
+" <cmp-field>\n"
+" <field-name>dateField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>integerField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>stringField</field-name>\n"
+" </cmp-field>\n"
+" <optimistic-locking>\n"
+" <modified-strategy/>\n"
+" </optimistic-locking>\n"
+" </entity>\n"
+" <entity>\n"
+" <ejb-name>EntityReadLocking</ejb-name>\n"
+" <create-table>true</create-table>\n"
+" <remove-table>true</remove-table>\n"
+" <table-name>entityreadlocking</table-name>\n"
+" <cmp-field>\n"
+" <field-name>dateField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>integerField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>stringField</field-name>\n"
+" </cmp-field>\n"
+" <optimistic-locking>\n"
+" <read-strategy/>\n"
+" </optimistic-locking>\n"
+" </entity>\n"
+" <entity>\n"
+" <ejb-name>EntityVersionLocking</ejb-name>\n"
+" <create-table>true</create-table>\n"
+" <remove-table>true</remove-table>\n"
+" <table-name>entityversionlocking</table-name>\n"
+" <cmp-field>\n"
+" <field-name>dateField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>integerField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>stringField</field-name>\n"
+" </cmp-field>\n"
+" <optimistic-locking>\n"
+" <version-column/>\n"
+" <field-name>versionField</field-name>\n"
+" <column-name>ol_version</column-name>\n"
+" <jdbc-type>INTEGER</jdbc-type>\n"
+" <sql-type>INTEGER(5)</sql-type>\n"
+" </optimistic-locking>\n"
+" </entity>\n"
+" <entity>\n"
+" <ejb-name>EntityTimestampLocking</ejb-name>\n"
+" <create-table>true</create-table>\n"
+" <remove-table>true</remove-table>\n"
+" <table-name>entitytimestamplocking</table-name>\n"
+" <cmp-field>\n"
+" <field-name>dateField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>integerField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>stringField</field-name>\n"
+" </cmp-field>\n"
+" <optimistic-locking>\n"
+" <timestamp-column/>\n"
+" <field-name>versionField</field-name>\n"
+" <column-name>ol_timestamp</column-name>\n"
+" <jdbc-type>TIMESTAMP</jdbc-type>\n"
+" <sql-type>DATETIME</sql-type>\n"
+" </optimistic-locking>\n"
+" </entity>\n"
+" <entity>\n"
+" <ejb-name>EntityKeyGeneratorLocking</ejb-name>\n"
+" <create-table>true</create-table>\n"
+" <remove-table>true</remove-table>\n"
+" <table-name>entitykeygenlocking</table-name>\n"
+" <cmp-field>\n"
+" <field-name>dateField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>integerField</field-name>\n"
+" </cmp-field>\n"
+" <cmp-field>\n"
+" <field-name>stringField</field-name>\n"
+" </cmp-field>\n"
+" <optimistic-locking>\n"
+" <key-generator-factory>UUIDKeyGeneratorFactory</key-"
+"generator-factory>\n"
+" <field-type>java.lang.String</field-type>\n"
+" <field-name>uuidField</field-name>\n"
+" <column-name>ol_uuid</column-name>\n"
+" <jdbc-type>VARCHAR</jdbc-type>\n"
+" <sql-type>VARCHAR(32)</sql-type>\n"
+" </optimistic-locking>\n"
+" </entity>\n"
+" </enterprise-beans>\n"
+"</jbosscmp-jdbc>"
#. Tag: title
#: The_CMP_Engine.xml:2417
#, no-c-format
+#, fuzzy
msgid "Entity Commands and Primary Key Generation"
-msgstr ""
+msgstr "Entity 命令和主键生成"
#. Tag: para
#: The_CMP_Engine.xml:2418
#, no-c-format
+#, fuzzy
msgid ""
"Support for primary key generation outside of the entity bean is available "
"through custom implementations of the entity creation command objects used "
@@ -6823,16 +8481,25 @@
"content model of the <literal>entity-commands</literal> and child elements "
"is given below."
msgstr ""
+"支持 entity bean 外的主键生成可通过自定义 entity 的 creation 命令来实现,这个"
+"命令被用来把 entity 插入到持久性存储里。<literal>jbosscmp-jdbc.xml</literal> "
+"描述符里的 entity-commands 元素指定了可用的命令。缺省的 <literal>entity-"
+"command</literal> 可以在 <literal>jbosscmp-jdbc.xml</literal> 的 defaults 元"
+"素里指定。每个 entity 元素都可以通过指定自己的 <literal>entity-command</"
+"literal> 覆盖缺省的 <literal>entity-command</literal>。下面是 "
+"<literal>entity-commands</literal> 及其子元素的内容模型。"
#. Tag: title
#: The_CMP_Engine.xml:2422
#, no-c-format
+#, fuzzy
msgid "The jbosscmp-jdbc.xml entity-commands element model"
-msgstr ""
+msgstr "jbosscmp-jdbc.xml 里的 entity-commands 元素的内容模型"
#. Tag: para
#: The_CMP_Engine.xml:2429
#, no-c-format
+#, fuzzy
msgid ""
"Each <literal>entity-command</literal> element specifies an entity "
"generation implementation. The <literal>name</literal> attribute specifies a "
@@ -6848,10 +8515,21 @@
"JDBCInsertPKCreateCommand</literal> if the command must insert the generated "
"key."
msgstr ""
+"每个 <literal>entity-command</literal> 元素都指定了一个 entity 生成实现。"
+"<literal>name</literal> 属性指定的名称可以允许在 defaults 和 entity 元素里引"
+"用 <literal>entity-commands</literal> 部分定义的命令。<literal>class</"
+"literal> 属性指定支持键生成的 <literal>org.jboss.ejb.plugins.cmp.jdbc</"
+"literal>.<literal>JDBCCreateEntityCommand</literal> 的实现。如果数据库把生成"
+"主键当作插入的附属动作的话,数据库供应商专有的命令通常作为 <literal>org."
+"jboss.ejb.plugins.cmp.jdbc</literal>."
+"<literal>JDBCIdentityColumnCreateCommand</literal> 的子类,而如果命令必须插入"
+"生成的键时,它会作为 <literal>org.jboss.ejb.plugins.cmp.jdbc."
+"JDBCInsertPKCreateCommand</literal> 的子类。"
#. Tag: para
#: The_CMP_Engine.xml:2432
#, no-c-format
+#, fuzzy
msgid ""
"The optional <literal>attribute</literal> element(s) allows for the "
"specification of arbitrary name/value property pairs that will be available "
@@ -6862,6 +8540,11 @@
"<literal>org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCEntityCommandMetaData."
"getAttribute</literal>(String) method."
msgstr ""
+"可选的 <literal>attribute</literal> 元素允许指定任意的 name/value 属性对来为 "
+"entity 命令实现所用。<literal>attribute</literal> 元素具有一个必需的指定名称"
+"的 <literal>name</literal> 属性且 <literal>attribute</literal> 元素的内容是这"
+"个属性的值。这个属性值可通过<literal>org.jboss.ejb.plugins.cmp.jdbc.metadata."
+"JDBCEntityCommandMetaData.getAttribute</literal>(String) 方法来访问。"
#. Tag: title
#: The_CMP_Engine.xml:2436
@@ -6893,6 +8576,7 @@
#. Tag: para
#: The_CMP_Engine.xml:2447
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">no-select-before-insert</emphasis>: (<literal>org."
"jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand</literal>) This is a "
@@ -6902,7 +8586,7 @@
"literal> service. The <literal>SQLExceptionProcessor</literal> service "
"provides a <literal>boolean isDuplicateKey(SQLException e)</literal> "
"operation that allows a for determination of any unique constraint violation."
-msgstr ""
+msgstr "<emphasis role=\"bold\"></emphasis><literal></literal><literal></literal><literal> 名字</literal><literal></literal><literal></literal><literal></literal>."
#. Tag: para
#: The_CMP_Engine.xml:2452
@@ -6931,6 +8615,7 @@
#. Tag: para
#: The_CMP_Engine.xml:2462
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">oracle-sequence</emphasis>: (<literal>org.jboss.ejb."
"plugins.cmp.jdbc.keygen.JDBCOracleCreateCommand</literal>) The "
@@ -6939,7 +8624,7 @@
"literal> clause to generate keys in a single statement. It has a required "
"<literal>sequence</literal> element that specifies the name of the sequence "
"column."
-msgstr ""
+msgstr "<emphasis role=\"bold\"></emphasis><literal></literal><literal></literal><literal></literal><literal></literal> 名字."
#. Tag: para
#: The_CMP_Engine.xml:2467
@@ -6990,6 +8675,7 @@
#. Tag: para
#: The_CMP_Engine.xml:2487
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">postgresql-fetch-seq</emphasis>: (<literal>org.jboss."
"ejb.plugins.cmp.jdbc.keygen.JDBCPostgreSQLCreateCommand</literal>) The "
@@ -6997,11 +8683,12 @@
"the current value of the sequence. The optional <literal>sequence</literal> "
"attribute can be used to change the name of the sequence, with the default "
"being <literal>table_pkColumn_seq</literal>."
-msgstr ""
+msgstr "<emphasis role=\"bold\"></emphasis><literal></literal><literal></literal><literal></literal> 名字<literal></literal>."
#. Tag: para
#: The_CMP_Engine.xml:2492
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">key-generator</emphasis>: (<literal>org.jboss.ejb."
"plugins.cmp.jdbc.keygen.JDBCKeyGeneratorCreateCommand</literal>) The "
@@ -7011,7 +8698,7 @@
"The <literal>key-generator-factory</literal> attribute must provide the name "
"of a JNDI binding of the <literal>org.jboss.ejb.plugins.keygenerator."
"KeyGeneratorFactory</literal> implementation."
-msgstr ""
+msgstr "<emphasis role=\"bold\"></emphasis><literal></literal><literal></literal><literal></literal><literal></literal><literal></literal> 名字<literal></literal>."
#. Tag: para
#: The_CMP_Engine.xml:2497
@@ -7040,6 +8727,7 @@
#. Tag: programlisting
#: The_CMP_Engine.xml:2505
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <enterprise-beans>\n"
@@ -7060,6 +8748,24 @@
" </enterprise-beans>\n"
"</jbosscmp-jdbc>"
msgstr ""
+"<jbosscmp-jdbc>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>LocationEJB</ejb-name>\n"
+" <pk-constraint>false</pk-constraint>\n"
+" <table-name>location</table-name>\n"
+" \n"
+" <cmp-field>\n"
+" <field-name>locationID</field-name>\n"
+" <column-name>id</column-name>\n"
+" <auto-increment/>\n"
+" </cmp-field>\n"
+" <!-- ... -->\n"
+" <entity-command name=\"hsqldb-fetch-key\"/>\n"
+" \n"
+" </entity>\n"
+" </enterprise-beans>\n"
+"</jbosscmp-jdbc>"
#. Tag: para
#: The_CMP_Engine.xml:2506
@@ -7094,27 +8800,26 @@
" </enterprise-beans>\n"
"</jbosscmp-jdbc>"
msgstr ""
-"<jboss> \n"
-" <enterprise-beans> \n"
-" <session> \n"
-" <ejb-name>nextgen.StatelessSession</ejb-"
-"name> \n"
-" <jndi-name>nextgen.StatelessSession</jndi-"
-"name> \n"
-" <clustered>True</clustered> \n"
-" <cluster-config> \n"
-" <partition-name>DefaultPartition</partition-"
-"name> \n"
-" <home-load-balance-policy> \n"
-" org.jboss.ha.framework.interfaces.RoundRobin \n"
-" </home-load-balance-policy> \n"
-" <bean-load-balance-policy> \n"
-" org.jboss.ha.framework.interfaces.RoundRobin\n"
-" </bean-load-balance-policy>\n"
-" </cluster-config>\n"
-" </session>\n"
+"<jbosscmp-jdbc>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>LocationEJB</ejb-name>\n"
+" <pk-constraint>false</pk-constraint>\n"
+" <table-name>location</table-name>\n"
+" <unknown-pk>\n"
+" <unknown-pk-class>java.lang.Integer</unknown-pk-"
+"class>\n"
+" <field-name>locationID</field-name>\n"
+" <column-name>id</column-name>\n"
+" <jdbc-type>INTEGER</jdbc-type>\n"
+" <sql-type>INTEGER</sql-type>\n"
+" <auto-increment/>\n"
+" </unknown-pk>\n"
+" <!--...-->\n"
+" <entity-command name=\"hsqldb-fetch-key\"/>\n"
+" </entity>\n"
" </enterprise-beans>\n"
-"</jboss>"
+"</jbosscmp-jdbc>"
#. Tag: title
#: The_CMP_Engine.xml:2515
@@ -7125,6 +8830,7 @@
#. Tag: para
#: The_CMP_Engine.xml:2516
#, no-c-format
+#, fuzzy
msgid ""
"JBoss global defaults are defined in the <literal>standardjbosscmp-jdbc.xml</"
"literal> file of the <literal>server/<server-name>/conf/</literal> "
@@ -7132,7 +8838,7 @@
"<literal>jbosscmp-jdbc.xml</literal> file. The default options are contained "
"in a defaults element of the configuration file, and the content model is "
"shown below."
-msgstr ""
+msgstr "<literal></literal><literal>< 名字></literal><literal></literal>."
#. Tag: title
#: The_CMP_Engine.xml:2520
@@ -7149,6 +8855,7 @@
#. Tag: programlisting
#: The_CMP_Engine.xml:2530
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <defaults>\n"
@@ -7172,6 +8879,27 @@
" </defaults>\n"
"</jbosscmp-jdbc>"
msgstr ""
+"<jbosscmp-jdbc>\n"
+" <defaults>\n"
+" <datasource>java:/DefaultDS</datasource>\n"
+" <datasource-mapping>Hypersonic SQL</datasource-mapping>\n"
+" <create-table>true</create-table>\n"
+" <remove-table>false</remove-table>\n"
+" <read-only>false</read-only>\n"
+" <read-time-out>300000</read-time-out>\n"
+" <pk-constraint>true</pk-constraint>\n"
+" <fk-constraint>false</fk-constraint>\n"
+" <row-locking>false</row-locking>\n"
+" <preferred-relation-mapping>foreign-key</preferred-relation-"
+"mapping>\n"
+" <read-ahead>\n"
+" <strategy>on-load</strategy>\n"
+" <page-size>1000</page-size>\n"
+" <eager-load-group>*</eager-load-group>\n"
+" </read-ahead>\n"
+" <list-cache-max>1000</list-cache-max>\n"
+" </defaults>\n"
+"</jbosscmp-jdbc>"
#. Tag: title
#: The_CMP_Engine.xml:2532
@@ -7191,6 +8919,7 @@
#. Tag: para
#: The_CMP_Engine.xml:2538
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">datasource</emphasis>: This optional element is the "
"<literal>jndi-name</literal> used to look up the datasource. All database "
@@ -7198,18 +8927,19 @@
"obtained from the datasource. Having different datasources for entities is "
"not recommended, as it vastly constrains the domain over which finders and "
"ejbSelects can query."
-msgstr ""
+msgstr "<emphasis role=\"bold\"></emphasis><literal> 名字</literal><literal></literal>."
#. Tag: para
#: The_CMP_Engine.xml:2543
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">datasource-mapping</emphasis>: This optional element "
"specifies the name of the <literal>type-mapping</literal>, which determines "
"how Java types are mapped to SQL types, and how EJB-QL functions are mapped "
"to database specific functions. Type mappings are discussed in <xref linkend="
"\"Datasource_Customization-Mapping\"/>."
-msgstr ""
+msgstr "<emphasis role=\"bold\"></emphasis> 名字<literal></literal><xref linkend=\"Datasource_Customization-Mapping\"/>."
#. Tag: para
#: The_CMP_Engine.xml:2548
@@ -7303,21 +9033,28 @@
#. Tag: para
#: The_CMP_Engine.xml:2605
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">read-ahead</emphasis>: This optional element "
"controls caching of query results and CMR fields for the entity. This option "
"is discussed in <xref linkend=\"Optimized_Loading-Read_ahead\"/>."
msgstr ""
+"<emphasis role=\"bold\">PartitionConfig</emphasis> 是一个用来为这个群集(参"
+"看 <xref linkend=\"jbosscache-jgroups\"/>)指定 JGroup 配置选项的元素"
+"(element)。"
#. Tag: para
#: The_CMP_Engine.xml:2610
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">list-cache-max</emphasis>: This optional element "
"specifies the number of <literal>read-lists</literal> that can be tracked by "
"this entity. This option is discussed in <xref linkend=\"Read_ahead-on_load"
"\"/>. The default is 1000."
msgstr ""
+"<emphasis role=\"bold\">description</emphasis>:这个元素指定操作的易读的描"
+"述。"
#. Tag: para
#: The_CMP_Engine.xml:2620
@@ -7342,22 +9079,30 @@
#. Tag: para
#: The_CMP_Engine.xml:2630
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">entity-command</emphasis>: This optional element "
"allows one to define the default command for entity creation. This is "
"described in detail in <xref linkend=\"The_CMP_Engine-"
"Entity_Commands_and_Primary_Key_Generation\"/>."
msgstr ""
+"<emphasis role=\"bold\">PartitionConfig</emphasis> 是一个用来为这个群集(参"
+"看 <xref linkend=\"jbosscache-jgroups\"/>)指定 JGroup 配置选项的元素"
+"(element)。"
#. Tag: para
#: The_CMP_Engine.xml:2635
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">ql-compiler</emphasis>: This optional elements "
"allows a replacement query compiler to be specified. Alternate query "
"compilers were discussed in <xref linkend=\"Queries-"
"EJBQL_2.1_and_SQL92_queries\"/>."
msgstr ""
+"<emphasis role=\"bold\">PartitionConfig</emphasis> 是一个用来为这个群集(参"
+"看 <xref linkend=\"jbosscache-jgroups\"/>)指定 JGroup 配置选项的元素"
+"(element)。"
#. Tag: para
#: The_CMP_Engine.xml:2640
@@ -7392,8 +9137,9 @@
#. Tag: title
#: The_CMP_Engine.xml:2655
#, no-c-format
+#, fuzzy
msgid "Type Mapping"
-msgstr ""
+msgstr "XML 映射"
#. Tag: para
#: The_CMP_Engine.xml:2656
@@ -7420,12 +9166,13 @@
#. Tag: para
#: The_CMP_Engine.xml:2674
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">name</emphasis>: This required element provides the "
"name identifying the database customization. It is used to refer to the "
"mapping by the <literal>datasource-mapping</literal> elements found in "
"defaults and entity."
-msgstr ""
+msgstr "<emphasis role=\"bold\"> 名字</emphasis> 名字<literal></literal>."
#. Tag: para
#: The_CMP_Engine.xml:2679
@@ -7440,8 +9187,9 @@
#. Tag: para
#: The_CMP_Engine.xml:2684
#, no-c-format
+#, fuzzy
msgid "the select clause"
-msgstr ""
+msgstr "select 子句"
#. Tag: para
#: The_CMP_Engine.xml:2689
@@ -7452,8 +9200,9 @@
#. Tag: para
#: The_CMP_Engine.xml:2694
#, no-c-format
+#, fuzzy
msgid "the where clause"
-msgstr ""
+msgstr "where 子句"
#. Tag: para
#: The_CMP_Engine.xml:2699
@@ -7477,10 +9226,11 @@
#. Tag: para
#: The_CMP_Engine.xml:2709
#, no-c-format
+#, fuzzy
msgid ""
"Primary key constraint name; which is always <literal>pk_{table-name}</"
"literal>"
-msgstr ""
+msgstr "名字<literal> 名字</literal>"
#. Tag: para
#: The_CMP_Engine.xml:2714
@@ -7511,16 +9261,18 @@
#. Tag: para
#: The_CMP_Engine.xml:2729
#, no-c-format
+#, fuzzy
msgid "Table name"
-msgstr ""
+msgstr "名字"
#. Tag: para
#: The_CMP_Engine.xml:2734
#, no-c-format
+#, fuzzy
msgid ""
"Foreign key constraint name; which is always <literal>fk_{table-name}_{cmr-"
"field-name}</literal>"
-msgstr ""
+msgstr "名字<literal> 名字 名字</literal>"
#. Tag: para
#: The_CMP_Engine.xml:2739
@@ -7531,8 +9283,9 @@
#. Tag: para
#: The_CMP_Engine.xml:2744
#, no-c-format
+#, fuzzy
msgid "References table name"
-msgstr ""
+msgstr "名字"
#. Tag: para
#: The_CMP_Engine.xml:2749
@@ -7571,20 +9324,23 @@
#. Tag: para
#: The_CMP_Engine.xml:2769 The_CMP_Engine.xml:2791 The_CMP_Engine.xml:2813
#, no-c-format
+#, fuzzy
msgid "the table name"
-msgstr ""
+msgstr "名字"
#. Tag: para
#: The_CMP_Engine.xml:2774 The_CMP_Engine.xml:2796 The_CMP_Engine.xml:2818
#, no-c-format
+#, fuzzy
msgid "the column name"
-msgstr ""
+msgstr "SQL 字段类型"
#. Tag: para
#: The_CMP_Engine.xml:2779 The_CMP_Engine.xml:2801
#, no-c-format
+#, fuzzy
msgid "the column type"
-msgstr ""
+msgstr "SQL 字段类型"
#. Tag: para
#: The_CMP_Engine.xml:2786
@@ -7609,6 +9365,7 @@
#. Tag: para
#: The_CMP_Engine.xml:2825
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">alias-header-prefix</emphasis>: This required "
"element gives the prefix used in creating the alias header. An alias header "
@@ -7617,7 +9374,7 @@
"prefix + int_counter + alias-header-suffix. An example alias header would be "
"<literal>t0_</literal> for an alias-header-prefix of \"<literal>t</literal>"
"\" and an alias-header-suffix of \"<literal>_</literal>\"."
-msgstr ""
+msgstr "<emphasis role=\"bold\"></emphasis> 名字<literal></literal><literal></literal><literal></literal>."
#. Tag: para
#: The_CMP_Engine.xml:2830
@@ -7657,9 +9414,8 @@
"include <literal>TRUE</literal>, <literal>1</literal>, and <literal>(1=1)</"
"literal>."
msgstr ""
-"<emphasis role=\"bold\">CacheMode</emphasis> 指定怎么在节点间使缓存同步。可能"
-"的值是 <literal>LOCAL</literal>,<literal>REPL_SYNC</literal> 或 "
-"<literal>REPL_ASYNC</literal>。"
+"<emphasis role=\"strong\">例如:</emphasis>建议的取值为 <literal>4</"
+"literal>,<literal>8</literal>,和 <literal>16</literal>"
#. Tag: para
#: The_CMP_Engine.xml:2850
@@ -7670,9 +9426,8 @@
"include <literal>FALSE</literal>, <literal>0</literal>, and <literal>(1=0)</"
"literal>."
msgstr ""
-"<emphasis role=\"bold\">CacheMode</emphasis> 指定怎么在节点间使缓存同步。可能"
-"的值是 <literal>LOCAL</literal>,<literal>REPL_SYNC</literal> 或 "
-"<literal>REPL_ASYNC</literal>。"
+"<emphasis role=\"strong\">例如:</emphasis>建议的取值为 <literal>4</"
+"literal>,<literal>8</literal>,和 <literal>16</literal>"
#. Tag: para
#: The_CMP_Engine.xml:2855
@@ -7696,8 +9451,9 @@
#. Tag: title
#: The_CMP_Engine.xml:2868
#, no-c-format
+#, fuzzy
msgid "Function Mapping"
-msgstr ""
+msgstr "集合类(Collections)映射"
#. Tag: para
#: The_CMP_Engine.xml:2869
@@ -7743,12 +9499,14 @@
#. Tag: title
#: The_CMP_Engine.xml:2898
#, no-c-format
+#, fuzzy
msgid "Mapping"
-msgstr ""
+msgstr "映射"
#. Tag: para
#: The_CMP_Engine.xml:2899
#, no-c-format
+#, fuzzy
msgid ""
"A <literal>type-mapping</literal> is simply a set of mappings between Java "
"class types and database types. A set of type mappings is defined by a set "
@@ -7756,35 +9514,47 @@
"in <xref linkend=\"Mapping-The_jbosscmp_jdbc_mapping_element_content_model."
"\"/>."
msgstr ""
+"<literal>type-mapping</literal> 是一系列从 Java 类的类型到数据库类型的映射。"
+"这些映射通过 <literal>mapping</literal> 元素进行定义,<xref linkend="
+"\"Mapping-The_jbosscmp_jdbc_mapping_element_content_model.\"/> 展示了它的内容"
+"格式。"
#. Tag: title
#: The_CMP_Engine.xml:2903
#, fuzzy, no-c-format
msgid "The jbosscmp-jdbc mapping element content model."
-msgstr "The descriptors element content model"
+msgstr "jbosscmp-jdbc 文件的 mapping 元素的内容格式。"
#. Tag: para
#: The_CMP_Engine.xml:2910
#, no-c-format
+#, fuzzy
msgid ""
"If JBoss cannot find a mapping for a type, it will serialize the object and "
"use the <literal>java.lang.Object</literal> mapping. The following describes "
"the three child elements of the mapping element:"
msgstr ""
+"如果 JBoss 不能找到某个类型的映射,它将序列化这个对象并使用 <literal>java."
+"lang.Object</literal> 映射。下面描述了 mapping 元素的 3 个子元素:"
#. Tag: para
#: The_CMP_Engine.xml:2915
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">java-type</emphasis>: This required element gives "
"the fully qualified name of the Java class to be mapped. If the class is a "
"primitive wrapper class such as <literal>java.lang.Short</literal>, the "
"mapping also applies to the primitive type."
msgstr ""
+"<emphasis role=\"bold\">java-type</emphasis>:这是一个必需元素,它指定被映射"
+"的 Java 类的全限定名。如果这个类是一个原始 wrapper 类,如 <literal>java.lang."
+"Short</literal>,那么该映射也适用于原始类型。"
#. Tag: para
#: The_CMP_Engine.xml:2920
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">jdbc-type</emphasis>: This required element gives "
"the JDBC type that is used when setting parameters in a JDBC "
@@ -7792,15 +9562,22 @@
"<literal>ResultSet</literal>. The valid types are defined in <literal>java."
"sql.Types</literal>."
msgstr ""
+"<emphasis role=\"bold\">jdbc-type</emphasis>:这个必需的元素指定在 JDBC "
+"<literal>PreparedStatement</literal> 里设置参数或从 JDBC <literal>ResultSet</"
+"literal> 载入数据时使用的 JDBC 类型。有效的类型在 <literal>java.sql.Types</"
+"literal> 里进行定义。"
#. Tag: para
#: The_CMP_Engine.xml:2925
#, no-c-format
+#, fuzzy
msgid ""
"<emphasis role=\"bold\">sql-type</emphasis>: This required element gives the "
"SQL type that is used in create table statements. Valid types are only "
"limited by your database vendor."
msgstr ""
+"<emphasis role=\"bold\">sql-type</emphasis>:这个必需的元素指定了在 create "
+"table 语句里使用的 SQL 类型。有效的类型取决于不同的数据库供应商。"
#. Tag: para
#: The_CMP_Engine.xml:2930
@@ -7810,8 +9587,8 @@
"specifies the fully qualified name of the <literal>JDBCParameterSetter</"
"literal> implementation for this mapping."
msgstr ""
-"<emphasis role=\"bold\">CacheLoaderClass</emphasis> 指定了 "
-"<literal>CacheLoader</literal> 实现的完整类名。"
+"<emphasis role=\"bold\">param-setter</emphasis>:这个可选元素指定这个映射的 "
+"<literal>JDBCParameterSetter</literal> 实现的全限定名。"
#. Tag: para
#: The_CMP_Engine.xml:2935
@@ -7821,18 +9598,20 @@
"specifies the fully qualified name of the <literal>JDBCResultSetReader</"
"literal> implementation for this mapping."
msgstr ""
-"<emphasis role=\"bold\">CacheLoaderClass</emphasis> 指定了 "
-"<literal>CacheLoader</literal> 实现的完整类名。"
+"<emphasis role=\"bold\">result-reader</emphasis>:这个可选元素指定该映射的 "
+"<literal>JDBCResultSetReader</literal> 实现的全限定名。"
#. Tag: para
#: The_CMP_Engine.xml:2940
#, no-c-format
+#, fuzzy
msgid "An example mapping element for a short in Oracle9i is shown below."
-msgstr ""
+msgstr "下面是一个关于 Oracle9i 的 Short 类型的 mapping 元素定义。"
#. Tag: programlisting
#: The_CMP_Engine.xml:2943
#, no-c-format
+#, fuzzy
msgid ""
"<jbosscmp-jdbc>\n"
" <type-mappings>\n"
@@ -7848,25 +9627,44 @@
" </type-mappings>\n"
"</jbosscmp-jdbc>"
msgstr ""
+"<jbosscmp-jdbc>\n"
+" <type-mappings>\n"
+" <type-mapping>\n"
+" <name>Oracle9i</name>\n"
+" <!--...-->\n"
+" <mapping>\n"
+" <java-type>java.lang.Short</java-type>\n"
+" <jdbc-type>NUMERIC</jdbc-type>\n"
+" <sql-type>NUMBER(5)</sql-type>\n"
+" </mapping>\n"
+" </type-mapping>\n"
+" </type-mappings>\n"
+"</jbosscmp-jdbc>"
#. Tag: title
#: The_CMP_Engine.xml:2947
#, no-c-format
+#, fuzzy
msgid "User Type Mappings"
-msgstr ""
+msgstr "用户类型映射"
#. Tag: para
#: The_CMP_Engine.xml:2948
#, no-c-format
+#, fuzzy
msgid ""
"User type mappings allow one to map from JDBC column types to custom CMP "
"fields types by specifying an instance of <literal>org.jboss.ejb.plugins.cmp."
"jdbc.Mapper</literal> interface, the definition of which is shown below."
msgstr ""
+"用户类型映射允许你通过一个 <literal>org.jboss.ejb.plugins.cmp.jdbc.Mapper</"
+"literal> 接口的实例把 JDBC 列的类型映射到自定义的 CMP 字段类型,下面给出了它"
+"的定义。"
#. Tag: programlisting
#: The_CMP_Engine.xml:2951
#, no-c-format
+#, fuzzy
msgid ""
"public interface Mapper\n"
"{\n"
@@ -7885,10 +9683,27 @@
" Object toFieldValue(Object columnValue);\n"
"}"
msgstr ""
+"public interface Mapper\n"
+"{\n"
+" /**\n"
+" * This method is called when CMP field is stored.\n"
+" * @param fieldValue - CMP field value\n"
+" * @return column value.\n"
+" */\n"
+" Object toColumnValue(Object fieldValue); \n"
+"\n"
+" /** \n"
+" * This method is called when CMP field is loaded.\n"
+" * @param columnValue - loaded column value.\n"
+" * @return CMP field value.\n"
+" */\n"
+" Object toFieldValue(Object columnValue);\n"
+"}"
#. Tag: para
#: The_CMP_Engine.xml:2952
#, no-c-format
+#, fuzzy
msgid ""
"A prototypical use case is the mapping of an integer type to its type-safe "
"Java enumeration instance. The content model of the <literal>user-type-"
@@ -7896,12 +9711,16 @@
"mapping</literal> elements, the content model of which is shown in <xref "
"linkend=\"User_Type_Mappings-The_user_type_mapping_content_model_\"/>."
msgstr ""
+"从整型映射到类型安全的 Java enumeration 实例是一个原型用例。<literal>user-"
+"type-mappings</literal> 元素的内容由一个或多个 <literal>user-type-mapping</"
+"literal> 元素组成, <xref linkend=\"User_Type_Mappings-"
+"The_user_type_mapping_content_model_\"/> 展示了其内容格式。"
#. Tag: title
#: The_CMP_Engine.xml:2957
#, fuzzy, no-c-format
msgid "The user-type-mapping content model >"
-msgstr "The descriptors element content model"
+msgstr "user-type-mapping 的内容格式 >"
#. Tag: para
#: The_CMP_Engine.xml:2967
@@ -7909,7 +9728,9 @@
msgid ""
"<emphasis role=\"bold\">java-type</emphasis>: the fully qualified name of "
"the CMP field type in the mapping."
-msgstr "<emphasis role=\"bold\">type</emphasis>:attribute类型的类全名。"
+msgstr ""
+"<emphasis role=\"bold\">java-type</emphasis>:该映射里的 CMP 字段类型的全限定"
+"名。"
#. Tag: para
#: The_CMP_Engine.xml:2972
@@ -7917,7 +9738,9 @@
msgid ""
"<emphasis role=\"bold\">mapped-type</emphasis>: the fully qualified name of "
"the database type in the mapping."
-msgstr "<emphasis role=\"bold\">type</emphasis>:attribute类型的类全名。"
+msgstr ""
+"<emphasis role=\"bold\">mapped-type</emphasis>:该映射里的数据库类型的全限定"
+"名。"
#. Tag: para
#: The_CMP_Engine.xml:2977
@@ -7928,7 +9751,7 @@
"conversion between the <literal>java-type</literal> and <literal>mapped-"
"type</literal>."
msgstr ""
-"<emphasis role=\"bold\">className</emphasis>:这是 <literal>org.apache."
-"catalina.Host</literal> 接口实现的类的全名。它的缺省值是 <literal>org.apache."
-"catalina.core.StandardHost</literal>。"
+"<emphasis role=\"bold\">mapper</emphasis>:处理 <literal>java-type</literal> "
+"和 <literal>mapped-type</literal> 之间的转换的 <literal>Mapper</literal> 接口"
+"实现的全限定名。"
Modified: projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Web_Services.po
===================================================================
--- projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Web_Services.po 2009-07-16 03:39:41 UTC (rev 91326)
+++ projects/docs/enterprise/4.3.3/Server_Configuration_Guide/zh-CN/Web_Services.po 2009-07-16 03:41:10 UTC (rev 91327)
@@ -9,7 +9,7 @@
"Project-Id-Version: Web_Services\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-20 02:37+0000\n"
-"PO-Revision-Date: 2009-05-26 12:14+1000\n"
+"PO-Revision-Date: 2009-07-16 10:46+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -20,8 +20,9 @@
#. Tag: title
#: Web_Services.xml:5
#, no-c-format
+#, fuzzy
msgid "Web Services"
-msgstr "Web Services"
+msgstr "Web 服务"
#. Tag: para
#: Web_Services.xml:6
@@ -34,12 +35,14 @@
#. Tag: title
#: Web_Services.xml:10
#, no-c-format
+#, fuzzy
msgid "Document/Literal"
msgstr "Document/Literal"
#. Tag: para
#: Web_Services.xml:11
#, no-c-format
+#, fuzzy
msgid ""
"With document style web services two business partners agree on the exchange "
"of complex business documents that are well defined in XML schema. For "
@@ -49,7 +52,12 @@
"names and their associated parameters. The payload of the SOAP message is an "
"XML document that can be validated against XML schema. Document is defined "
"by the style attribute on the SOAP binding."
-msgstr "document 风格的 web services 表示两个商业伙伴同意交换以 XML 模式定义的复杂的商业文档。例如,一方发送描述定购单的文档,而另一方则以描述定购单状态的文档回复(马上或之后)。底层细节如操作名称和相关参数是不需要约定的。SOAP 消息的有效负载是可以用 XML 模式检验的 XML 文档。SOAP 绑定的 style 属性定义了文档。"
+msgstr ""
+"对于文档类型的 Web 服务而言,两个商业伙伴同意交换以 XML 模式定义的复杂商业文"
+"档。例如,一方发送描述采购订单的文档,而另一方以描述订单状态的文档进行响应"
+"(立即或以后)。它们都不需要对底层的细节达成协议,如操作名称和相关的参数。"
+"SOAP 消息是一个可以根据 XML 模式进行校验的 XML 文档。文档通过 SOAP 绑定的 "
+"style 属性来定义。"
#. Tag: programlisting
#: Web_Services.xml:15
@@ -88,10 +96,13 @@
#. Tag: para
#: Web_Services.xml:17
#, no-c-format
+#, fuzzy
msgid ""
"With document style web services the payload of every message is defined by "
"a complex type in XML schema."
-msgstr "对于文档风格的 Web service 而言,每条消息的有效负载是由 XML 模式里的 complexType 来定义的。"
+msgstr ""
+"对于文档类型的 Web 服务而言,每条消息的负荷根据 XML 模式里的一个复杂类型来定"
+"义。"
#. Tag: programlisting
#: Web_Services.xml:19
@@ -140,18 +151,23 @@
#. Tag: title
#: Web_Services.xml:24
#, no-c-format
+#, fuzzy
msgid "Document/Literal (Bare)"
msgstr "Document/Literal (Bare)"
#. Tag: para
#: Web_Services.xml:25
#, no-c-format
+#, fuzzy
msgid ""
"Bare is an implementation detail from the Java domain. Neither in the "
"abstract contract (i.e. wsdl+schema) nor at the SOAP message level is a bare "
"endpoint recognizable. A bare endpoint or client uses a Java bean that "
"represents the entire document payload."
msgstr ""
+"Bare 是基于 Java 域的实现细节。Bare endpoint 既不识别 abstract contract(也就"
+"是 wsdl+schema)也不识别 SOAP 消息。Bare endpoint 或客户使用代表整个文档负荷"
+"的 Java Bean。"
#. Tag: programlisting
#: Web_Services.xml:27
@@ -182,10 +198,11 @@
#. Tag: para
#: Web_Services.xml:29
#, no-c-format
+#, fuzzy
msgid ""
"The trick is that the Java beans representing the payload contain JAXB "
"annotations that define how the payload is represented on the wire."
-msgstr ""
+msgstr "通常代表负荷的 Java bean 包含 JAXB 注解,定义如何表示这种负荷。"
#. Tag: programlisting
#: Web_Services.xml:31
@@ -220,8 +237,9 @@
#. Tag: title
#: Web_Services.xml:36
#, no-c-format
+#, fuzzy
msgid "Document/Literal (Wrapped)"
-msgstr ""
+msgstr "Document/Literal (Wrapped)"
#. Tag: para
#: Web_Services.xml:37
@@ -252,8 +270,9 @@
#. Tag: title
#: Web_Services.xml:45
#, no-c-format
+#, fuzzy
msgid "RPC/Literal"
-msgstr ""
+msgstr "RPC/Literal"
#. Tag: para
#: Web_Services.xml:46
@@ -387,8 +406,9 @@
#. Tag: title
#: Web_Services.xml:72
#, no-c-format
+#, fuzzy
msgid "RPC/Encoded"
-msgstr ""
+msgstr "RPC/Encoded"
#. Tag: para
#: Web_Services.xml:73
@@ -410,8 +430,9 @@
#. Tag: para
#: Web_Services.xml:76
#, no-c-format
+#, fuzzy
msgid "element references"
-msgstr ""
+msgstr "服务架构"
#. Tag: para
#: Web_Services.xml:81
@@ -422,8 +443,9 @@
#. Tag: title
#: Web_Services.xml:90
#, no-c-format
+#, fuzzy
msgid "Web Service Endpoints"
-msgstr ""
+msgstr "代理服务"
#. Tag: para
#: Web_Services.xml:91
@@ -728,6 +750,7 @@
#. Tag: programlisting
#: Web_Services.xml:171
#, no-c-format
+#, fuzzy
msgid ""
"@WebServiceProvider\n"
"@ServiceMode(value = Service.Mode.PAYLOAD)\n"
@@ -738,42 +761,35 @@
"// Access the entire request PAYLOAD and return the response PAYLOAD\n"
" }\n"
"}"
-msgstr ""
-"@WebServiceProvider\n"
-"@ServiceMode(value = Service.Mode.PAYLOAD)\n"
-"public class ProviderBeanPayload implements Provider<Source>\n"
-"{\n"
-"public Source invoke(Source req)\n"
-"{\n"
-"// Access the entire request PAYLOAD and return the response PAYLOAD\n"
-" }\n"
-"}"
+msgstr "服务<>\n"
#. Tag: para
#: Web_Services.xml:172
#, no-c-format
+#, fuzzy
msgid ""
"Note, Service.Mode.PAYLOAD is the default and does not have to be declared "
"explicitly. You can also use Service.Mode.MESSAGE to access the entire SOAP "
"message (i.e. with MESSAGE the Provider can also see SOAP Headers)"
-msgstr ""
+msgstr "服务 服务"
#. Tag: title
#: Web_Services.xml:178
#, fuzzy, no-c-format
msgid "WebServiceContext"
-msgstr "处理静态内容"
+msgstr "WebServiceContext"
#. Tag: para
#: Web_Services.xml:179
#, no-c-format
+#, fuzzy
msgid ""
"The WebServiceContext is treated as an injectable resource that can be set "
"at the time an endpoint is initialized. The WebServiceContext object will "
"then use thread-local information to return the correct information "
"regardless of how many threads are concurrently being used to serve requests "
"addressed to the same endpoint object."
-msgstr ""
+msgstr "WebServiceContext WebServiceContext."
#. Tag: programlisting
#: Web_Services.xml:182
@@ -838,24 +854,27 @@
#. Tag: title
#: Web_Services.xml:186
#, no-c-format
+#, fuzzy
msgid "Web Service Clients"
-msgstr "Web Service 的客户端"
+msgstr "代理服务"
#. Tag: title
#: Web_Services.xml:188
#, no-c-format
+#, fuzzy
msgid "Service"
msgstr "服务"
#. Tag: para
#: Web_Services.xml:189
#, no-c-format
+#, fuzzy
msgid ""
"<literal>Service</literal> is an abstraction that represents a WSDL service. "
"A WSDL service is a collection of related ports, each of which consists of a "
"port type bound to a particular protocol and available at a particular "
"endpoint address."
-msgstr "<literal>Service</literal> 是代表 WSDL 服务的抽象层。WSDL 服务是相关端口的集合,每个端口组成绑定到特定协议上的端口类型,且可用于特定终端的地址。"
+msgstr "<literal> 服务</literal>."
#. Tag: para
#: Web_Services.xml:192
@@ -869,8 +888,9 @@
#. Tag: title
#: Web_Services.xml:196
#, no-c-format
+#, fuzzy
msgid "Service Usage"
-msgstr "服务用法"
+msgstr "代理服务"
#. Tag: emphasis
#: Web_Services.xml:198
@@ -919,6 +939,7 @@
#. Tag: programlisting
#: Web_Services.xml:212
#, no-c-format
+#, fuzzy
msgid ""
"// Generated Service Class\n"
" \n"
@@ -941,26 +962,10 @@
"...\n"
"}"
msgstr ""
-"// Generated Service Class\n"
-" \n"
-" @WebServiceClient(name="StockQuoteService", targetNamespace=""
-"http://example.com/stocks", wsdlLocation="http://example.com/"
-"stocks.wsdl")\n"
-"public class StockQuoteService extends javax.xml.ws.Service \n"
-"{\n"
-"public StockQuoteService() \n"
-"{\n"
-"super(new URL("http://example.com/stocks.wsdl"), new QName(""
-"http://example.com/stocks", "StockQuoteService"));\n"
-"}\n"
-" \n"
-"public StockQuoteService(String wsdlLocation, QName serviceName) \n"
-"{\n"
-"super(wsdlLocation, serviceName);\n"
-"}\n"
-" \n"
-"...\n"
-"}"
+"服务\n"
+"\n"
+""""http://example.com/stocks""http://example.com/stocks.wsdl" 服务"http://example.com/stocks.wsdl""http://example.com/stocks"""\n"
+"\n"
#. Tag: para
#: Web_Services.xml:213
@@ -986,25 +991,23 @@
#. Tag: para
#: Web_Services.xml:219
#, no-c-format
+#, fuzzy
msgid ""
"In the dynamic case, when nothing is generated, a web service client uses "
"<literal>Service.create</literal> to create Service instances, the following "
"code illustrates this process."
-msgstr "在动态情况下不会生成任何东西,Web service 的客户端使用 <literal>Service.create</literal> 来创建 Service 实例,下面的代码解释了这个过程。"
+msgstr "<literal> 服务</literal> 服务."
#. Tag: programlisting
#: Web_Services.xml:222
#, no-c-format
+#, fuzzy
msgid ""
"URL wsdlLocation = new URL("http://example.org/my.wsdl");\n"
"QName serviceName = new QName("http://example.org/sample", ""
"MyService");\n"
"Service service = Service.create(wsdlLocation, serviceName);"
-msgstr ""
-"URL wsdlLocation = new URL("http://example.org/my.wsdl");\n"
-"QName serviceName = new QName("http://example.org/sample", ""
-"MyService");\n"
-"Service service = Service.create(wsdlLocation, serviceName);"
+msgstr ""http://example.org/my.wsdl""http://example.org/sample""" 服务"
#. Tag: para
#: Web_Services.xml:223
@@ -1023,6 +1026,7 @@
#. Tag: para
#: Web_Services.xml:230
#, no-c-format
+#, fuzzy
msgid ""
"JAX-WS provides a flexible plug-in framework for message processing modules, "
"known as handlers, that may be used to extend the capabilities of a JAX-WS "
@@ -1032,18 +1036,19 @@
"access to a HandlerResolver via a pair of getHandlerResolver/"
"setHandlerResolver methods that may be used to configure a set of handlers "
"on a per-service, per-port or per-protocol binding basis."
-msgstr ""
+msgstr "<ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-WS_User_Guide#Handler_Framework\"></ulink> 服务."
#. Tag: para
#: Web_Services.xml:233
#, no-c-format
+#, fuzzy
msgid ""
"When a Service instance is used to create a proxy or a Dispatch instance "
"then the handler resolver currently registered with the service is used to "
"create the required handler chain. Subsequent changes to the handler "
"resolver configured for a Service instance do not affect the handlers on "
"previously created proxies, or Dispatch instances."
-msgstr ""
+msgstr "服务 服务."
#. Tag: title
#: Web_Services.xml:239
@@ -1054,13 +1059,14 @@
#. Tag: para
#: Web_Services.xml:240
#, no-c-format
+#, fuzzy
msgid ""
"Service instances can be configured with a java.util.concurrent.Executor. "
"The executor will then be used to invoke any asynchronous callbacks "
"requested by the application. The setExecutor and getExecutor methods of "
"Service can be used to modify and retrieve the executor configured for a "
"service."
-msgstr ""
+msgstr "服务 服务."
#. Tag: title
#: Web_Services.xml:248
@@ -1071,11 +1077,12 @@
#. Tag: para
#: Web_Services.xml:249
#, no-c-format
+#, fuzzy
msgid ""
"You can create an instance of a client proxy using one of getPort methods on "
"the <ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-"
"WS_User_Guide#Service\">#Service</ulink>."
-msgstr ""
+msgstr "<ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-WS_User_Guide#Service\"> 服务</ulink>."
#. Tag: programlisting
#: Web_Services.xml:252
@@ -1150,16 +1157,18 @@
#. Tag: para
#: Web_Services.xml:256
#, no-c-format
+#, fuzzy
msgid ""
"A generated static <ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?"
"title=JAX-WS_User_Guide#Service\">#Service</ulink> usually also offers typed "
"methods to get ports. These methods also return dynamic proxies that "
"implement the SEI."
-msgstr ""
+msgstr "<ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-WS_User_Guide#Service\"> 服务</ulink>."
#. Tag: programlisting
#: Web_Services.xml:259
#, no-c-format
+#, fuzzy
msgid ""
"@WebServiceClient(name = "TestEndpointService", targetNamespace = "
""http://org.jboss.ws/wsref", \n"
@@ -1182,47 +1191,46 @@
" }\n"
" }"
msgstr ""
-"@WebServiceClient(name = "TestEndpointService", targetNamespace = "
-""http://org.jboss.ws/wsref", \n"
-" wsdlLocation = "http://localhost.localdomain:8080/jaxws-samples-"
-"webserviceref?wsdl")\n"
-" \n"
-" public class TestEndpointService extends Service\n"
-" {\n"
-" ...\n"
-" \n"
-" public TestEndpointService(URL wsdlLocation, QName serviceName) {\n"
-" super(wsdlLocation, serviceName);\n"
-" }\n"
-" \n"
-" @WebEndpoint(name = "TestEndpointPort")\n"
-" public TestEndpoint getTestEndpointPort() \n"
-" {\n"
-" return (TestEndpoint)super.getPort(TESTENDPOINTPORT, TestEndpoint."
-"class);\n"
-" }\n"
-" }"
+""""http://org.jboss.ws/wsref"\n"
+""http://localhost.localdomain"\n"
+"\n"
+" 服务\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"""\n"
+"\n"
+"\n"
+"\n"
+"\n"
#. Tag: title
#: Web_Services.xml:263
#, no-c-format
+#, fuzzy
msgid "WebServiceRef"
-msgstr ""
+msgstr "代理服务"
#. Tag: para
#: Web_Services.xml:264
#, no-c-format
+#, fuzzy
msgid ""
"The WebServiceRef annotation is used to declare a reference to a Web "
"service. It follows the resource pattern exemplified by the javax.annotation."
"Resource annotation in JSR-250 [5]"
-msgstr ""
+msgstr "代理服务"
#. Tag: para
#: Web_Services.xml:267
#, no-c-format
+#, fuzzy
msgid "There are two uses to the WebServiceRef annotation:"
-msgstr ""
+msgstr "代理服务:"
#. Tag: para
#: Web_Services.xml:272
@@ -1240,6 +1248,7 @@
#. Tag: para
#: Web_Services.xml:277
#, no-c-format
+#, fuzzy
msgid ""
"To define a reference whose type is a SEI. In this case, the type element "
"MAY be present with its default value if the type of the reference can be "
@@ -1248,11 +1257,12 @@
"subtype of javax.xml.ws.Service). The wsdlLocation element, if present, "
"overrides theWSDL location information specified in the WebService "
"annotation of the referenced generated service class."
-msgstr ""
+msgstr "服务."
#. Tag: programlisting
#: Web_Services.xml:282
#, no-c-format
+#, fuzzy
msgid ""
"public class EJB3Client implements EJB3Remote\n"
"{\n"
@@ -1262,20 +1272,27 @@
" @WebServiceRef\n"
" public TestEndpoint port3;"
msgstr ""
+"\n"
+" 代理服务\n"
+"\n"
+"\n"
+" 代理服务\n"
#. Tag: emphasis
#: Web_Services.xml:284
#, no-c-format
+#, fuzzy
msgid "WebServiceRef Customization"
-msgstr ""
+msgstr "代理服务"
#. Tag: para
#: Web_Services.xml:286
#, no-c-format
+#, fuzzy
msgid ""
"In jboss-5.0.x we offer a number of overrides and extensions to the "
"WebServiceRef annotation. These include"
-msgstr ""
+msgstr "代理服务"
#. Tag: para
#: Web_Services.xml:291
@@ -1406,10 +1423,11 @@
#. Tag: para
#: Web_Services.xml:320
#, no-c-format
+#, fuzzy
msgid ""
"Dispatch supports two usage modes, identified by the constants javax.xml.ws."
"Service.Mode.MESSAGE and javax.xml.ws.Service.Mode.PAYLOAD respectively:"
-msgstr ""
+msgstr "服务 服务:"
#. Tag: para
#: Web_Services.xml:323
@@ -1445,6 +1463,7 @@
#. Tag: programlisting
#: Web_Services.xml:332
#, no-c-format
+#, fuzzy
msgid ""
"Service service = Service.create(wsdlURL, serviceName);\n"
"Dispatch dispatch = service.createDispatch(portName, StreamSource.class, "
@@ -1459,18 +1478,9 @@
"Source retObj = (Source)dispatch.invoke(new StreamSource(new StringReader"
"(payload)));"
msgstr ""
-"Service service = Service.create(wsdlURL, serviceName);\n"
-"Dispatch dispatch = service.createDispatch(portName, StreamSource.class, "
-"Mode.PAYLOAD);\n"
-" \n"
-"String payload = "<ns1:ping xmlns:ns1='http://oneway.samples."
-"jaxws.ws.test.jboss.org/'/>";\n"
-"dispatch.invokeOneWay(new StreamSource(new StringReader(payload)));\n"
-" \n"
-"payload = "<ns1:feedback xmlns:ns1='http://oneway.samples.jaxws."
-"ws.test.jboss.org/'/>";\n"
-"Source retObj = (Source)dispatch.invoke(new StreamSource(new StringReader"
-"(payload)));"
+"服务 服务\n"
+""<'http://oneway.samples.jaxws.ws.test.jboss.org/'>"\n"
+""<'http://oneway.samples.jaxws.ws.test.jboss.org/'>""
#. Tag: title
#: Web_Services.xml:336
@@ -1501,6 +1511,7 @@
#. Tag: programlisting
#: Web_Services.xml:343
#, no-c-format
+#, fuzzy
msgid ""
"public void testInvokeAsync() throws Exception\n"
"{\n"
@@ -1517,20 +1528,9 @@
"assertEquals("Async", retStr);\n"
"}"
msgstr ""
-"public void testInvokeAsync() throws Exception\n"
-"{\n"
-"URL wsdlURL = new URL("http://" + getServerHost() + ":8080/"
-"jaxws-samples-asynchronous?wsdl");\n"
-"QName serviceName = new QName(targetNS, "TestEndpointService");\n"
-"Service service = Service.create(wsdlURL, serviceName);\n"
-"TestEndpoint port = service.getPort(TestEndpoint.class);\n"
-" \n"
-"Response response = port.echoAsync("Async");\n"
-" \n"
-"// access future\n"
-"String retStr = (String) response.get();\n"
-"assertEquals("Async", retStr);\n"
-"}"
+""""""" 服务\n"
+"""\n"
+""""
#. Tag: title
#: Web_Services.xml:347
@@ -1604,13 +1604,14 @@
#. Tag: para
#: Web_Services.xml:358
#, no-c-format
+#, fuzzy
msgid ""
"This sections describes concepts that apply equally to <ulink url=\"http://"
"jbws.dyndns.org/mediawiki/index.php?title=JAX-"
"WS_User_Guide#Web_Service_Endpoints\">#Web Service Endpoints</ulink> and "
"<ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-"
"WS_User_Guide#Web_Service_Clients\">#Web Service Clients</ulink>"
-msgstr ""
+msgstr "<ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-WS_User_Guide#Web_Service_Endpoints\"> 服务</ulink><ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-WS_User_Guide#Web_Service_Clients\"> 服务</ulink>"
#. Tag: title
#: Web_Services.xml:362
@@ -1687,8 +1688,9 @@
#. Tag: title
#: Web_Services.xml:387
#, no-c-format
+#, fuzzy
msgid "Service endpoint handlers"
-msgstr ""
+msgstr "服务"
#. Tag: para
#: Web_Services.xml:388
@@ -1737,7 +1739,7 @@
#: Web_Services.xml:404
#, fuzzy, no-c-format
msgid "Service client handlers"
-msgstr "服务架构"
+msgstr "服务"
#. Tag: para
#: Web_Services.xml:405
@@ -1750,6 +1752,7 @@
#. Tag: programlisting
#: Web_Services.xml:408
#, no-c-format
+#, fuzzy
msgid ""
"Service service = Service.create(wsdlURL, serviceName);\n"
"Endpoint port = (Endpoint)service.getPort(Endpoint.class);\n"
@@ -1761,15 +1764,8 @@
"handlerChain.add(new RoutingHandler());\n"
"bindingProvider.getBinding().setHandlerChain(handlerChain); // important!"
msgstr ""
-"Service service = Service.create(wsdlURL, serviceName);\n"
-"Endpoint port = (Endpoint)service.getPort(Endpoint.class);\n"
-" \n"
-"BindingProvider bindingProvider = (BindingProvider)port;\n"
-"List<Handler> handlerChain = new ArrayList<Handler>();\n"
-"handlerChain.add(new LogHandler());\n"
-"handlerChain.add(new AuthorizationHandler());\n"
-"handlerChain.add(new RoutingHandler());\n"
-"bindingProvider.getBinding().setHandlerChain(handlerChain); // important!"
+"服务 服务\n"
+"<><>!"
#. Tag: title
#: Web_Services.xml:414
@@ -2163,6 +2159,7 @@
#. Tag: programlisting
#: Web_Services.xml:606
#, no-c-format
+#, fuzzy
msgid ""
"[...]\n"
"Service service = Service.create(wsdlURL, serviceName);\n"
@@ -2171,14 +2168,7 @@
"// enable MTOM\n"
"binding = (SOAPBinding)((BindingProvider)port).getBinding();\n"
"binding.setMTOMEnabled(true);"
-msgstr ""
-"[...]\n"
-"Service service = Service.create(wsdlURL, serviceName);\n"
-"port = service.getPort(MTOMEndpoint.class);\n"
-" \n"
-"// enable MTOM\n"
-"binding = (SOAPBinding)((BindingProvider)port).getBinding();\n"
-"binding.setMTOMEnabled(true);"
+msgstr "服务\n"
#. Tag: para
#: Web_Services.xml:610
@@ -2406,6 +2396,7 @@
#. Tag: para
#: Web_Services.xml:660
#, no-c-format
+#, fuzzy
msgid ""
"The JAX-WS tools provided by JBossWS can be used in a variety of ways. First "
"we will look at server-side development strategies, and then proceed to the "
@@ -2417,7 +2408,7 @@
"a service up and running. However, if you are developing a service with an "
"already defined contract, it is far simpler to use the top-down approach, "
"since the provided tool will generate the annotated code for you."
-msgstr ""
+msgstr "服务."
#. Tag: para
#: Web_Services.xml:663
@@ -2428,8 +2419,9 @@
#. Tag: para
#: Web_Services.xml:668
#, no-c-format
+#, fuzzy
msgid "Exposing an already existing EJB3 bean as a Web Service"
-msgstr ""
+msgstr "服务"
#. Tag: para
#: Web_Services.xml:673
@@ -2446,10 +2438,11 @@
#. Tag: para
#: Web_Services.xml:683
#, no-c-format
+#, fuzzy
msgid ""
"Replacing the implementation of an existing Web Service, and you can't "
"break compatibility with older clients"
-msgstr ""
+msgstr "服务'"
#. Tag: para
#: Web_Services.xml:688
@@ -2853,7 +2846,7 @@
#: Web_Services.xml:850
#, fuzzy, no-c-format
msgid "Service Endpoint Interface"
-msgstr "服务生命周期接口"
+msgstr "服务"
#. Tag: para
#: Web_Services.xml:857
@@ -2923,7 +2916,7 @@
"Examining the Service Endpoint Interface reveals annotations that are more "
"explicit than in the class written by hand in the bottom-up example, "
"however, these evaluate to the same contract:"
-msgstr "检查 Service Endpoint 接口可以显示注解, "
+msgstr "服务:"
#. Tag: programlisting
#: Web_Services.xml:920
@@ -3002,6 +2995,7 @@
#. Tag: para
#: Web_Services.xml:929
#, no-c-format
+#, fuzzy
msgid ""
"Before going to detail on the client-side it is important to understand the "
"decoupling concept that is central to Web Services. Web Services are not the "
@@ -3019,7 +3013,7 @@
"\"><emphasis>recommended methodology for developing a client is</emphasis></"
"emphasis> to follow <emphasis role=\"bold\"><emphasis>the top-down approach</"
"emphasis></emphasis> , even if the client is running on the same server."
-msgstr ""
+msgstr "服务<emphasis role=\"bold\"><emphasis></emphasis></emphasis><emphasis role=\"bold\"><emphasis></emphasis></emphasis>."
#. Tag: para
#: Web_Services.xml:932
@@ -3117,6 +3111,7 @@
#. Tag: programlisting
#: Web_Services.xml:950
#, no-c-format
+#, fuzzy
msgid ""
"@WebServiceClient(name = "EchoService", targetNamespace = ""
"http://echo/", wsdlLocation = "http://localhost:8080/echo/Echo?"
@@ -3151,42 +3146,16 @@
"}\n"
"}"
msgstr ""
-"@WebServiceClient(name = "EchoService", targetNamespace = ""
-"http://echo/", wsdlLocation = "http://localhost:8080/echo/Echo?"
-"wsdl")\n"
-"public class EchoService extends Service\n"
-"{\n"
-"private final static URL ECHOSERVICE_WSDL_LOCATION;\n"
-" \n"
-"static {\n"
-"URL url = null;\n"
-"try {\n"
-"url = new URL("http://localhost:8080/echo/Echo?wsdl");\n"
-"} catch (MalformedURLException e) {\n"
-"e.printStackTrace();\n"
-"}\n"
-"ECHOSERVICE_WSDL_LOCATION = url;\n"
-"}\n"
-" \n"
-"public EchoService(URL wsdlLocation, QName serviceName) {\n"
-"super(wsdlLocation, serviceName);\n"
-"}\n"
-" \n"
-"public EchoService() {\n"
-"super(ECHOSERVICE_WSDL_LOCATION, new QName("http://echo/", ""
-"EchoService"));\n"
-"}\n"
-" \n"
-"@WebEndpoint(name = "EchoPort")\n"
-"public Echo getEchoPort() {\n"
-"return (Echo)super.getPort(new QName("http://echo/", ""
-"EchoPort"), Echo.class);\n"
-"}\n"
-"}"
+""""http://echo/""http://localhost" 服务\n"
+""http://localhost"\n"
+"\n"
+""http://echo/"""\n"
+""""http://echo/""""
#. Tag: para
#: Web_Services.xml:951
#, no-c-format
+#, fuzzy
msgid ""
"As you can see, this generated class extends the main client entry point in "
"JAX-WS, javax.xml.ws.Service. While you can use Service directly, this is "
@@ -3194,17 +3163,18 @@
"method we really care about is the getEchoPort() method, which returns an "
"instance of our Service Endpoint Interface. Any WS operation can then be "
"called by just invoking a method on the returned interface."
-msgstr ""
+msgstr "服务 服务 服务."
#. Tag: para
#: Web_Services.xml:957
#, no-c-format
+#, fuzzy
msgid ""
"It's not recommended to refer to a remote WSDL URL in a production "
"application. This causes network I/O every time you instantiate the Service "
"Object. Instead, use the tool on a saved local copy, or use the URL version "
"of the constructor to provide a new WSDL location."
-msgstr ""
+msgstr "' 服务."
#. Tag: para
#: Web_Services.xml:962
@@ -3324,8 +3294,9 @@
#. Tag: ulink
#: Web_Services.xml:986
#, no-c-format
+#, fuzzy
msgid "wsprovide reference page"
-msgstr ""
+msgstr "服务架构"
#. Tag: ulink
#: Web_Services.xml:991
@@ -3366,8 +3337,9 @@
#. Tag: title
#: Web_Services.xml:1024
#, no-c-format
+#, fuzzy
msgid "Web Service Extensions"
-msgstr ""
+msgstr "代理服务"
#. Tag: title
#: Web_Services.xml:1026
@@ -3562,6 +3534,7 @@
#. Tag: programlisting
#: Web_Services.xml:1075
#, no-c-format
+#, fuzzy
msgid ""
"Service service = Service.create(wsdlURL, serviceName);\n"
"port1 = (StatefulEndpoint)service.getPort(StatefulEndpoint.class);\n"
@@ -3572,14 +3545,8 @@
"customHandlerChain.add(new WSAddressingClientHandler());\n"
"bindingProvider.getBinding().setHandlerChain(customHandlerChain);"
msgstr ""
-"Service service = Service.create(wsdlURL, serviceName);\n"
-"port1 = (StatefulEndpoint)service.getPort(StatefulEndpoint.class);\n"
-"BindingProvider bindingProvider = (BindingProvider)port1;\n"
-" \n"
-"List<Handler> customHandlerChain = new ArrayList<Handler>();\n"
-"customHandlerChain.add(new ClientHandler());\n"
-"customHandlerChain.add(new WSAddressingClientHandler());\n"
-"bindingProvider.getBinding().setHandlerChain(customHandlerChain);"
+"服务 服务\n"
+"<><>"
#. Tag: para
#: Web_Services.xml:1076
@@ -3935,8 +3902,9 @@
#. Tag: para
#: Web_Services.xml:1165
#, no-c-format
+#, fuzzy
msgid "The relevant steps are:"
-msgstr "相关的步骤是:"
+msgstr "子元素是:"
#. Tag: para
#: Web_Services.xml:1170
@@ -5018,12 +4986,13 @@
#. Tag: para
#: Web_Services.xml:1528
#, no-c-format
+#, fuzzy
msgid ""
"Configuration of the jUDDI registry happens via an MBean Service that is "
"deployed in the juddi-service.sar archive in the \"all\" configuration. The "
"configuration of this service can be done in the jboss-service.xml of the "
"META-INF directory in the juddi-service.sar"
-msgstr "jUDDI 注册表的配置通过 MBean 服务进行,它部署在 \"all\" 配置里的 juddi-service.sar 归档文件里。这个服务的配置可以在 juddi-service.sar 的 META-INF 目录下的 jboss-service.xml 里完成。"
+msgstr "服务"
#. Tag: para
#: Web_Services.xml:1531
@@ -5254,6 +5223,7 @@
#. Tag: para
#: Web_Services.xml:1594
#, no-c-format
+#, fuzzy
msgid ""
"<ulink url=\"http://java.sun.com/j2ee/1.4/docs/api/javax/xml/registry/"
"BusinessLifeCycleManager.html\">javax.xml.registry.BusinessLifeCycleManager</"
@@ -5262,23 +5232,19 @@
"management functionality of the Registry as part of a business level API. "
"Note that there is no authentication information provided, because the "
"Connection interface keeps that state and context on behalf of the client.\""
-msgstr ""
-"J2EE 1.4 JavaDoc 里的 <ulink url=\"http://java.sun.com/j2ee/1.4/docs/api/javax/xml/registry/"
-"BusinessLifeCycleManager.html\">javax.xml.registry.BusinessLifeCycleManager</"
-"ulink>:注册表服务(Registry Service)开放的 BusinessLifeCycleManager 接口,作为商业级 API 的一部分,实现了注册表的生命周期管理功能。请注意,这里没有提供验证信息,因为 Connection 接口会替客户保持状态和上下文。"
+msgstr "<ulink url=\"http://java.sun.com/j2ee/1.4/docs/api/javax/xml/registry/BusinessLifeCycleManager.html\"></ulink> 服务"
#. Tag: para
#: Web_Services.xml:1599
#, no-c-format
+#, fuzzy
msgid ""
"<ulink url=\"http://java.sun.com/j2ee/1.4/docs/api/javax/xml/registry/"
"BusinessQueryManager.html\">javax.xml.registry.BusinessQueryManager</ulink> "
"From J2EE 1.4 JavaDoc: \"The BusinessQueryManager interface, which is "
"exposed by the Registry Service, implements the business style query "
"interface. It is also referred to as the focused query interface.\""
-msgstr ""
-"J2EE 1.4 JavaDoc 里的 <ulink url=\"http://java.sun.com/j2ee/1.4/docs/api/javax/xml/registry/"
-"BusinessQueryManager.html\">javax.xml.registry.BusinessQueryManager</ulink>:注册表服务开放的 BusinessQueryManager 接口,实现了商业风格的查询接口。它也被称为 focused query 接口。"
+msgstr "<ulink url=\"http://java.sun.com/j2ee/1.4/docs/api/javax/xml/registry/BusinessQueryManager.html\"></ulink> 服务"
#. Tag: para
#: Web_Services.xml:1604
@@ -5387,6 +5353,7 @@
#. Tag: programlisting
#: Web_Services.xml:1618
#, no-c-format
+#, fuzzy
msgid ""
"/**\n"
"* Creates a Jaxr Organization with 1 or more services\n"
@@ -5455,72 +5422,12 @@
"return org;\n"
"}"
msgstr ""
-"/**\n"
-"* Creates a Jaxr Organization with 1 or more services\n"
-"*/\n"
-"protected Organization createOrganization(String orgname) throws "
-"JAXRException\n"
-"{\n"
-"Organization org = blm.createOrganization(getIString(orgname));\n"
-"org.setDescription(getIString("JBoss Inc"));\n"
-"Service service = blm.createService(getIString("JBOSS JAXR "
-"Service"));\n"
-"service.setDescription(getIString("Services of XML Registry"));\n"
-"//Create serviceBinding\n"
-"ServiceBinding serviceBinding = blm.createServiceBinding();\n"
-"serviceBinding.setDescription(blm.createInternationalString("Test "
-"Service Binding"));\n"
-" \n"
-"//Turn validation of URI off\n"
-"serviceBinding.setValidateURI(false);\n"
-"serviceBinding.setAccessURI("http://testjboss.org");\n"
-".. \n"
-"// Add the serviceBinding to the service\n"
-"service.addServiceBinding(serviceBinding);\n"
-" \n"
-"User user = blm.createUser();\n"
-"org.setPrimaryContact(user);\n"
-"PersonName personName = blm.createPersonName("Anil S");\n"
-"TelephoneNumber telephoneNumber = blm.createTelephoneNumber();\n"
-"telephoneNumber.setNumber("111-111-7777");\n"
-"telephoneNumber.setType(null);\n"
-"PostalAddress address = blm.createPostalAddress("111", "My "
-"Drive", "BuckHead", "GA", "USA", "
-""1111-111", "");\n"
-"Collection postalAddresses = new ArrayList();\n"
-"postalAddresses.add(address);\n"
-"Collection emailAddresses = new ArrayList();\n"
-"EmailAddress emailAddress = blm.createEmailAddress("anil at apache."
-"org");\n"
-"emailAddresses.add(emailAddress);\n"
-" \n"
-"Collection numbers = new ArrayList();\n"
-"numbers.add(telephoneNumber);\n"
-"user.setPersonName(personName);\n"
-"user.setPostalAddresses(postalAddresses);\n"
-"user.setEmailAddresses(emailAddresses);\n"
-"user.setTelephoneNumbers(numbers);\n"
-" \n"
-"ClassificationScheme cScheme = getClassificationScheme("ntis-gov:"
-"naics", "");\n"
-"Key cKey = blm.createKey("uuid:C0B9FE13-324F-413D-5A5B-"
-"2004DB8E5CC2");\n"
-"cScheme.setKey(cKey);\n"
-"Classification classification = blm.createClassification(cScheme, \n"
-" "Computer Systems Design and Related "
-"Services", "5415");\n"
-"org.addClassification(classification);\n"
-"ClassificationScheme cScheme1 = getClassificationScheme("D-U-N-S", "
-""");\n"
-"Key cKey1 = blm.createKey("uuid:3367C81E-FF1F-4D5A-B202-"
-"3EB13AD02423");\n"
-"cScheme1.setKey(cKey1);\n"
-"ExternalIdentifier ei = blm.createExternalIdentifier(cScheme1, "D-U-N-S "
-"number", "08-146-6849");\n"
-"org.addExternalIdentifier(ei);\n"
-"org.addService(service);\n"
-"return org;\n"
-"}"
+"""" 服务"""" 服务"\n"
+""http://testjboss.org"\n"
+""""""""""""""""""""anil at apache.org"\n"
+"\n"
+"""""""\n"
+""""""""""""""""
#. Tag: para
#: Web_Services.xml:1619
@@ -5730,10 +5637,11 @@
#. Tag: para
#: Web_Services.xml:1679
#, no-c-format
+#, fuzzy
msgid ""
"The Web Services Policy Framework (WS-Policy) provides a general purpose "
"model and corresponding syntax to describe the policies of a Web Service."
-msgstr "Web Services Policy Framework (WS-Policy) 提供了一个描述 Web Service 的策略的通用模型以及对应的语法。"
+msgstr "服务."
#. Tag: para
#: Web_Services.xml:1682
More information about the jboss-cvs-commits
mailing list