使用此页面来配置 Java™ 对象请求代理(ORB)服务。
要查看此管理控制台页面,请单击服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name > 容器服务 > ORB 服务。
几个设置可用于控制内部对象请求代理(ORB)处理。在应用程序包含企业 bean 的情况下,您可以使用这些设置来提高应用程序性能。您可以为缺省服务器或管理域中配置的任何应用程序服务器更改这些设置。
指定请求消息超时之前要等待的秒数。
如果您使用命令行脚本编制,那么此系统属性的全名是 com.ibm.CORBA.RequestTimeout。
数据类型 | int |
单元 | 秒 |
缺省值 | 180 |
范围 | 0 至 Java 可识别的最大整数 |
指定服务器发生故障时 ORB 尝试发送请求的次数。通过进行重试,有时能从瞬态网络故障中恢复。对于 z/OS®,将忽略此字段。
如果您使用命令行脚本编制,那么此系统属性的全名是 com.ibm.CORBA.requestRetriesCount。
数据类型 | int |
缺省值 | 1 |
范围 | 1 到 10 |
指定请求重试之间的毫秒数。对于 z/OS,将忽略此字段。
如果您使用命令行脚本编制,那么此系统属性的全名是 com.ibm.CORBA.requestRetriesDelay。
数据类型 | int |
单元 | 毫秒 |
缺省值 | 0 |
范围 | 0 到 60,000 |
指定可以占用 ORB 连接高速缓存的最大条目数,达到此数目后,ORB 就会开始从高速缓存中除去不活动的连接。对于 z/OS,将忽略此字段。
高速缓存中的活动连接数可能会暂时地超出此阈值。在有必要的时候,只要有资源可用,ORB 就会一直添加连接。
为了在命令行脚本编制中使用,此系统属性的全名为 com.ibm.CORBA.MaxOpenConnections。
数据类型 | 整型 |
单元 | 连接 |
缺省值 | 240 |
范围 | 10 至 Java 可识别的最大整数 |
指定 ORB 连接高速缓存中的最小条目数。对于 z/OS,将忽略此字段。
当条目数低于此值时,ORB 不会除去不活动的连接。
要在命令行脚本编制中使用,此系统属性的全名为 com.ibm.CORBA.MinOpenConnections。
数据类型 | 整型 |
单元 | 连接 |
缺省值 | 100 |
范围 | 任何比“连接高速缓存最大值”属性指定的值至少小 5 的整数。 |
启用跟踪 ORB 通用 ORB 间协议(GIOP)消息。
此设置影响两个系统属性:com.ibm.CORBA.Debug 和 com.ibm.CORBA.CommTrace。 如果您通过命令行脚本编制设置这些属性,那么必须将这两个属性都设置为 true 以启用跟踪 GIOP 消息。
数据类型 | 布尔值 |
缺省值 | 未启用(false) |
指定 LocateRequest 消息超时之前要等待的秒数。对于 z/OS,将忽略此字段。
如果您使用命令行脚本编制,那么此系统属性的全名是 com.ibm.CORBA.LocateRequestTimeout。
数据类型 | int |
单元 | 秒 |
缺省值 | 180 |
范围 | 0 到 300 |
控制客户机 ORB 如何尝试使用 HTTP 隧道传送。对于 z/OS,将忽略此字段。
如果您使用命令行脚本编制,那么此系统属性的全名是 com.ibm.CORBA.ForceTunnel。
数据类型 | 字符串 |
缺省值 | NEVER |
范围 | 有效值为 ALWAYS、NEVER 或 WHENREQUIRED。 |
指定用于支持 HTTP 隧道传送的 servlet 的 Web 地址。在 z/OS 平台上,将忽略此字段。
此 Web 地址必须是正确的格式:
http://w3.mycorp.com:81/servlet/com.ibm.CORBA.services.IIOPTunnelServlet
对于 applet:http://applethost:port/servlet/com.ibm.CORBA.services.IIOPTunnelServlet。
如果设置了 HTTP 隧道传送,那么此字段是必需的。如果您使用命令行脚本编制,那么此系统属性的全名是 com.ibm.CORBA.TunnelAgentURL。
指定 ORB 如何传递参数。如果启用此项,那么 ORB 按引用(而不是按值)来传递参数,这可避免建立对象副本。如果未启用“按引用传递”选项,就会传递参数副本而不是传递参数对象本身。由于 ORB 必须首先复制每个参数对象,所以成本会比较高。
仅当 Enterprise JavaBeans™(EJB)客户机与 EJB 在同一个类装入器中时,才能使用此选项。此项要求意味着必须将 EJB 客户机和 EJB 部署在同一个 EAR 文件中。
如果 Enterprise JavaBeans(EJB)客户机和服务器安装在同一实例或产品中,并且该客户机和服务器使用远程接口,那么启用“按引用传递”选项可以将性能提高 50%。仅在非主对象类型作为参数传递时,按引用传递选项才能帮助提高性能。因此,无论调用模型是什么,总是复制整型和浮点型。
如果您使用命令行脚本编制,那么此系统属性的全名是 com.ibm.CORBA.iiop.noLocalCopies。
数据类型 | 布尔值 |
缺省值 | 未启用(false) |
将此选项用于使用远程接口的企业 bean 会违反 Enterprise JavaBeans(EJB)规范 V2.0(请参阅 5.4 部分)。传递到 Enterprise JavaBeans(EJB)方法或 EJB home 方法的对象引用不被复制,但是可能遭到毁坏。
Iterator iterator = collection.iterator(); MyPrimaryKey pk = new MyPrimaryKey(); while (iterator.hasNext()) { pk.id = (String) iterator.next(); MyEJB myEJB = myEJBHome.findByPrimaryKey(pk); }
在此示例中,对同一 MyPrimaryKey 对象的引用每次传递到具有不同标识值的产品中。在启用按引用传递的情况下运行此代码会导致应用程序服务器发生问题,这是因为多个企业 bean 正在引用同一 MyPrimaryKey 对象。要避免此问题,当启用按引用传递选项时,将 com.ibm.websphere.ejbcontainer.allowPrimaryKeyMutation 系统属性设置为 true。将按引用传递选项设置为 true 会导致 EJB 容器制作 PrimaryKey 对象的本地副本。但是,结果丢失了设置按引用传递选项的一小部分性能优势。
作为一般规则,必须仔细检查将对象引用作为参数传递给企业 bean 方法或 EJB home 方法的任何应用程序代码,以确定传递该对象引用是否导致丢失数据完整性或导致其他问题。
在检查您的代码之后,您可以通过将 com.ibm.CORBA.iiop.noLocalCopies 系统属性设置为 true 来启用按引用传递选项。您还可以在管理控制台中启用按引用传递选项。单击服务器 > 服务器类型 > 应用程序服务器 > server_name > 容器服务 > ORB 服务,并选择按引用传递。