SAP Pool容量和峰值限制-Mule esb

SAP Pool capacity and peak limit-Mule esb

您好,我有一个 SAP 连接器,SAP 正在并行发送 10,000 个 idoc,我可以在池容量和峰值限制中给出的好数字,现在我分别给出了 2000 和 1000 的任何建议以获得更好的性能

<sap:connector name="SAP" jcoAsHost="${saphost}" jcoUser="${sapuser}" jcoPasswd="${sappassword}" jcoSysnr="${sapsystemnumber}" jcoClient="${sapclient}" jcoLang="${saploginlanguage}" validateConnections="true" doc:name="SAP" jcoPeakLimit="1000" jcoPoolCapacity="2000"/> 

在处理大量 IDocs 时,我建议提高性能的第一件事是配置 SAP 系统以 批次[=34] 发送 IDocs =] 而不是单独发送它们。也就是说,IDoc 以 X 为一组发送,您在 SAPGUI 的合作伙伴资料部分定义了批量大小。在其他设置中,您必须将 "Pack. Size" 和 select "Collect IDocs" 设置为输出模式。

If you are not familiar with SAPGUI, request your SAP Admin to configure it for you.

此外,要从 SAP 连接器中提取最大的 连接池 ,我建议您使用 SAP 客户端扩展属性 充分利用 JCo 附加连接参数。这些扩展属性在 Spring Bean 中定义,并在连接器或端点级别的 jcoClientExtendedProperties 中设置。看看下面的例子:

<spring:beans>
<spring:bean name="sapClientProperties" class="java.util.HashMap">
      <spring:constructor-arg>
          <spring:map>
              <!-- Maximum number of active connections that can be created for a destination simultaneously -->
              <spring:entry key="jco.destination.peak_limit" value="15"/>
              <!-- Maximum number of idle connections kept open by the destination. A value of 0 has the effect that there is no connection pooling, i.e. connections will be closed after each request.  -->
              <spring:entry key="jco.destination.pool_capacity" value="10"/>
              <!-- Time in ms after that the connections hold by the internal pool can be closed -->
              <spring:entry key="jco.destination.expiration_time" value="300000"/>
              <!-- Interval in ms with which the timeout checker thread checks the connections in the pool for expiration -->
              <spring:entry key="jco.destination.expiration_check_period" value="60000"/>
              <!-- Max time in ms to wait for a connection, if the max allowed number of connections is allocated by the application -->
              <spring:entry key="jco.destination.max_get_client_time" value="30000"/>
          </spring:map>
      </spring:constructor-arg>
  </spring:bean>
</spring:beans>

<sap:connector  name="SAP" 
        jcoAsHost="${sap.jcoAsHost}" 
        jcoUser="${sap.jcoUser}" 
        jcoPasswd="${sap.jcoPasswd}" 
        jcoSysnr="${sap.jcoSysnr}" 
        jcoClient="${sap.jcoClient}" 
        ...
        jcoClientExtendedProperties-ref="sapClientProperties" />         

重要提示: 要启用池,您必须另外设置 jcoExpirationTime 峰值限制和池容量。

更多详细信息,请参阅SAP Connector Advanced Features文档。