マルチスレッド製品である BizTalk で UniObjects.NET を使い始めるまでは、問題なく UniObjects.NET を使用していました。問題は以下のエラーです。このエラーは、2 番目のスレッド (およびおそらく 3 番目、4 番目などのスレッド) でのみ発生します。最初のスレッドが接続され、UniData からデータを正常に取得できます。エラーはあまり意味がなく、検索では特定の問題を扱っていない結果が 1 つしか返されません。誰かがアンサーを持っているか、私を正しい方向に向けることができますか? このエラーは、接続プールが有効になっていない場合に発生します。接続プールは他のエラーをスローするため、使用していません。
注意すべきもう 1 つの点は、デバッグ中に、各スレッドが個別のファイルにデバッグ情報を書き込むコードを記述したことです。デバッグ情報をファイルに書き込むだけで、両方のスレッドが正しく動作しました。これは接続タイミングの問題 (つまり、同時に UniSession を開く) ではないと思います。これは、UniData ファイルに同時にアクセスする時点でのみ失敗するためです (同時に仮定すると)。
使用している UniObjects.NET の 2.2.3.7377 (2010 年 5 月) ファイル バージョンの UniObjects.NETドキュメント。UniData のバージョンは 7.2 です。
更新: UniObjects.NET バージョン 2.2.5.7463 でも試してみましたが、それでも同じ例外がスローされます。
内部例外: GetX - ファイル 'MYFILEX' のエラー。[IBM U2][UODOTNET - UNIRPC][ErrorCode=81004] 無効なタイプの引数が RPC から要求されました 例外の種類: 例外 ソース: MyBusinessObjects ターゲット サイト: System.Collections.Generic.List`1[MyBusinessObjects.XResponse] GetX(System.Collections.Generic.List`1[MyBusinessObjects.Lookup]) 以下は、例外が発生した場所を特定するスタック トレースです。 MyBusinessObjects.Lookups.GetX (List`1 Lookups) で MyBusinessObjects.Integration.GetXResponses (XmlDocument xml、文字列ヘッダー、文字列 gheader) で Orchestrations.XProcess.segment1 (StopConditions stopOn) で Microsoft.XLANGs.Core.SegmentScheduler.RunASegment (セグメント s、StopConditions stopCond、Exception& exp) で
更新:読書リストを扱う同じエラー。
内部例外: [IBM U2][UODOTNET - UNIRPC][ErrorCode=81004] 無効なタイプの引数が RPC から要求されました 例外の種類: UniRPCPacketException ソース: UniRPCPacket クラス ターゲット サイト: Byte[] ReadByteArray(Int32) 以下は、例外が発生した場所を特定するスタック トレースです。 IBMU2.UODOTNET.UniRPCPMessage.ReadByteArray(Int32 anIndex) で IBMU2.UODOTNET.UniSelectList.ReadList() で IBMU2.UODOTNET.UniSelectList.ReadListAsStringArray() で MyBusinessObjects.Lookups.GetY() で MyBusinessObjects.Integration.GetResponses (XmlDocument xml、文字列ヘッダー、文字列 gsheader) で Orchestrations.Process.segment1 (StopConditions stopOn) で Microsoft.XLANGs.Core.SegmentScheduler.RunASegment (セグメント s、StopConditions stopCond、Exception& exp) で