SAP からの同期呼び出しの処理時に遅延がないように、アダプター上のリスナーの数とメッセージ・フローの追加インスタンスの数を構成して、パフォーマンスを改善できます。
SAP インバウンド・アダプターは、SAP から同期呼び出しを受け取ります。 このアダプターは、「リスナーの数」というプロパティーを持っています。このプロパティーは、SAP プログラム ID を listen する特定の数のスレッドを持つようにアダプターを構成することにより、同時呼び出しの最大数を制御します。 リスナーはこれらの呼び出しの入力パラメーターを処理のために SAPInput ノードに送信し、出力パラメーターは SAPReply ノードに送信されます。
リスナーは、SAP から呼び出しを受け取ると、SAPInput ノードを含むメッセージ・フロー・インスタンスが使用可能になるまで処理をブロックします。 メッセージ・フロー・インスタンスが使用可能になり、インポート・パラメーターの処理を開始すると、エクスポート・パラメーターを含むメッセージが SAPReply ノードに伝搬されるまで、リスナーは処理を再度ブロックします。
SAPInput ノードがメッセージを送信してから SAPReply ノードが応答メッセージを受け取るまでの間の経過時間の長さは、メッセージ・フロー上の追加のインスタンス・プロパティーの影響を受ける可能性があります。 処理が遅延しないようにするには、リスナーの最大数と、SAPInput および SAPReply ノードを含むメッセージ・フローの追加インスタンスの数を調整してください。 メッセージ・フロー・レベルまたは SAPInput ノード自体で、追加のインスタンス数を構成できます。
リスナーの数は、SAP の構成によって制限されます。 SAP トランザクション SMQS では、RFC 宛先ごとに最大接続数プロパティーを表示したり変更したりできます。 構成するリスナーの数が接続の最大数より多い場合、無効になります。
メッセージ・フローのインスタンスを追加するごとに、フロー内のノードのタイプに応じて、フロー内の各ノードによって余分のリソースが使用されます。
このシナリオは、データの整合性に関して望ましくない影響を及ぼす可能性があります。 SAPReply ノードの後で例外が発生すると、メッセージ・フローによって更新されるリソース (データベース表や WebSphere® MQ キューなど) は、ロールバックされる可能性があります。 しかし、応答は既に SAP に送り返されているので、ロールバックできません。この動作が適切でない場合は、SAPReply ノードが確実にメッセージ・フロー内の最終ノードになるようにして、データの整合性を改善できます。
SAP アダプターを調整する方法の詳細は、スケーラビリティーとパフォーマンスのための SAP アダプターの調整を参照してください。