![[z/OS]](../images/ngzos.gif)
调整 SOAP
了解如何调整与 Web Service 配合使用的 SOAP 消息。
关于此任务
过程
- 在 servant.jvm.options 中指定 noLocalCopies (-Dcom.ibm.CORBA.iiop.noLocalCopies=1)。 这将允许通过引用(而不是通过值)来传递参数。 仅当您要将企业 bean 公开为 Web 服务时,此项才适用。 要了解更多信息,请参阅对象请求代理程序服务设置信息。
- 除非您主动对问题进行调试,否则请务必禁用所有跟踪。
- 为应用程序定义事务策略时,请指定 TX_NOT_SUPPORTED 并选择局部事务。 局部事务的执行效率高于全局事务,因为不需要 WebSphere® 即可在多个资源管理器之间协调落实作用域。
- 避免在 SOAP 消息中传递空属性或空元素。 请勿在 SOAP 消息中包含无关或不需要的数据。 如果您可以使用文档/文字样式 Web Service 调用将请求批处理到单个 SOAP 消息中,那么发送多个独立的 SOAP 消息更合适。 当 SOAP 消息越小(包含的 XML 元素越少,尤其是包含的 XML 属性越少),SOAP 应用程序的执行效果越佳。 SOAP 消息的内容必须进行序列化和解析。 这些操作的成本很高,应该尽量减少。 换句话说,发送 1 个 10KB 消息比发送 10 个 1KB 消息更合适。 但是,当消息特别大(例如,超过 200KB)时,可能会影响诸如内存等系统资源。
- 您可能需要增加缺省 Java™ 堆大小。 SOAP 和 XML (DOM) 会耗用大量存储空间,并且较小的堆大小可以导致过度的 Java 垃圾回收。 在实验室中,我们发现 256M 的堆大小(缺省值)是大部分测试用例的最佳值。 您可以使用 verbose:gc Java 伪指令来监视垃圾回收。
- 确保 TCP/IP 发送/接收缓冲区的大小足以存放即将发送的成批 XML 消息。
- 请考虑使用文档模型,而不使用 RPC 模型。 它对 XML 的格式提供完全控制,但需要其他编程工作。
- 使用 RPC 样式的消息时,请尽量尝试发送字符串。
- 对于“针对基于 XML 的 RPC 的 Java API”(JAX-RPC) Web Service,请考虑编写您自己的序列化器和反序列化器,以避免反射。