Мы использовали UniObjects.NET без проблем, пока не начали использовать его с BizTalk, который является многопоточным продуктом.Проблема заключается в ошибке ниже.Эта ошибка возникает только во 2-м потоке (и, возможно, в 3-м, 4-м и т. Д.).1-й поток подключается и может получать данные из UniData очень хорошо.Ошибка не говорит о многом, и поиск возвращает только один результат, не имеющий отношения к нашей конкретной проблеме.У кого-нибудь есть ответчик или он может указать мне правильное направление?Эта ошибка не включает пул подключений, и мы не используем пул подключений, поскольку это приводит к возникновению других ошибок.
Еще одна вещь, на которую следует обратить внимание, это то, что во время отладки мы написали некоторый код, который каждый поток записывал бы в отдельный поток.подайте некоторую отладочную информацию.Сам процесс записи отладочной информации в файл заставил оба потока работать правильно.Я не верю, что это проблема синхронизации соединения (то есть одновременное открытие UniSession), так как он завершается неудачно только в момент одновременного доступа к файлу UniData (при условии, что в то же время).
Документ UniObjects.NET для используемой нами версии файла 2.2.3.7377 (май 2010 г.) UniObjects.NET.Версия UniData - 7.2.
ОБНОВЛЕНИЕ: Также пытались с UniObjects.NET версии 2.2.5.7463, и это все еще вызывает то же исключение.
Inner exception: GetX - Error with file 'MYFILEX'. [IBM U2][UODOTNET - UNIRPC][ErrorCode=81004] An argument was requested from the RPC that was of an invalid type
Exception type: Exception
Source: MyBusinessObjects
Target Site: System.Collections.Generic.List`1[MyBusinessObjects.XResponse] GetX(System.Collections.Generic.List`1[MyBusinessObjects.Lookup])
The following is a stack trace that identifies the location where the exception occured
at MyBusinessObjects.Lookups.GetX(List`1 Lookups)
at MyBusinessObjects.Integration.GetXResponses(XmlDocument xml, String header, String gheader)
at Orchestrations.XProcess.segment1(StopConditions stopOn)
at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)
ОБНОВЛЕНИЕ: Та же ошибка при чтении списков.
Inner exception: [IBM U2][UODOTNET - UNIRPC][ErrorCode=81004] An argument was requested from the RPC that was of an invalid type
Exception type: UniRPCPacketException
Source:
UniRPCPacket Class
Target Site: Byte[] ReadByteArray(Int32)
The following is a stack trace that identifies the location where the exception occured
at IBMU2.UODOTNET.UniRPCPMessage.ReadByteArray(Int32 anIndex)
at IBMU2.UODOTNET.UniSelectList.ReadList()
at IBMU2.UODOTNET.UniSelectList.ReadListAsStringArray()
at MyBusinessObjects.Lookups.GetY()
at MyBusinessObjects.Integration.GetResponses(XmlDocument xml, String header, String gsheader)
at Orchestrations.Process.segment1(StopConditions stopOn)
at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)