私はこれについて適切なドキュメントを見つけることができませんでした。JCOcom.sap.conn.jco.JCoDestinationとcom.sap.conn.jco.JCoDestinationManagerにクラスがあります。それらについての私の質問:
- それらはスレッドセーフですか?
- そうでない場合、作成するのに費用がかかりますか?
私はこれについて適切なドキュメントを見つけることができませんでした。JCOcom.sap.conn.jco.JCoDestinationとcom.sap.conn.jco.JCoDestinationManagerにクラスがあります。それらについての私の質問:
やっと見つけたと思います。http://help.sap.com/saphelp_nwpi711/helpdata/en/48/6437ccbdbc51eee10000000a421937/content.htm
注意マルチスレッド環境では、異なるスレッド間でのオブジェクト(JCoTableオブジェクトなど)の分散を慎重に実装する必要があります。同じ直接接続に対して複数の同時SAP呼び出しを行うことはできないことに注意してください。
したがって、スレッドセーフではありません
JCoフレームワーク全体について、スレッドセーフであるかどうかを言うことはできません。使用するクラスとインスタンスによって異なります。
、、、などJCoFunction
のJCoのデータコンテナインスタンスはスレッドセーフではありません。幸いなことに、通常は異なるスレッドから同時にアクセスされないため、これらのインスタンスを自動的に同期しないとパフォーマンスが向上します。JCoTable
JCoStructure
JCoRecord
ただし、JCoではクラスと静的メソッドはスレッドセーフです。JCoDestinationManager
たとえば、への呼び出しを同期する必要はありません。
そしてJCoDestination
それは特別な場合です。通常、このインスタンスへの呼び出しを同期する必要はありません。これは、セッションごとに個別のRFCクライアント接続オブジェクトを内部的に作成して使用するためです。JCoのデフォルトの実装では、すべてのスレッドが個別のセッションとして扱われるため、ここでスレッドセーフに問題が発生することはありません。インフラストラクチャ環境がJCoランタイムで独自SessionReferenceProvider
に登録し、同じセッションIDを同時に複数のスレッドに割り当てる場合にのみ、同じ宛先へのステートフルRFC呼び出しでスレッドセーフの競合が発生する可能性があります。この場合、JCoはそのようなエラー状況を検出し、withエラーグループをスローします。JCoException
JCO_ERROR_CONCURRENT_CALL
コネクタのドキュメントを読みましたか?
https://websmp105.sap-ag.de/~sapidb/011000358700000730362009D/SAPJCo_Doku_3.0_EN.pdf
私はあなたの質問を理解していません、あなたはRFCを呼び出そうとしました、そしてあなたは達成しませんでしたか?