
使用聚集时的性能注意事项
使用聚集时,您需要了解一些性能注意事项。
聚集模式通常要求根据单一输入请求来构建多个请求,并要求将多个响应合并为单一响应。您可以通过使用 BOMapper 调解原语来构建这些响应,如其他“聚集”主题中的示例所示。如果这些变换中不需要复杂的操作,并且数据是直接从消息的一个部分移到另一个部分,那么使用“业务对象映射”将显著提高性能。这可以使用“BO 映射器”调解原语或“映射”调解原语(此调解原语设置为使用“业务对象映射”引擎)来实现。性能提高还与较大的消息相关。如果有复杂的操作,请使用“映射”调解原语,此调解原语设置为使用 XSLT 1.0 或 XSLT 2.0 引擎。数据变换部分更详细地讨论了这些调解原语。
批处理注意事项
在批处理场景中,考虑处理大型批请求对同一服务器上托管的其他应用程序的可能影响至关重要。处理包含大量重复元素(例如大量销售订单)的请求可能会耗用大量系统内存,并且,对这些内存的耗用将一直持续到所有处理完成为止。根据在聚集块中调用的服务的响应时间不同,这些处理可能会长时间降低系统资源的速度。如果用于处理批请求的服务器还用于托管需要对请求迅速作出响应的应用程序,那么您会发现服务性能在批请求处理期间有所下降。要解决此问题,可以在另一台服务器上处理大型批请求或者在系统使用率较低的时间段处理这些请求。
由于上面描述的原因,最大程度地减少大型批请求消息处理期间的内存耗用量至关重要。使用批处理模式时,由于“扇出”调解原语将重复元素的当前实例存储在“扇出”上下文中,因此在聚集块中很少需要使用原始请求消息的消息体。在本示例中,这是正在处理的销售订单。在聚集块结束时,响应数据存放在共享上下文中,并用于构建新的响应消息体。对于大型请求而言, 通过在“扇出”调解原语中处理完消息体之后立即使用“消息元素设置器”调解原语来删除此消息体(如图 1 所示),可以大大降低内存耗用量并缩短处理时间。