Мое приложение отправляет много и много данных в SAP. Для этого он создает объект таблицы SAP и отправляет его поверх. Я получаю эту ошибку несколько регулярно, но не достоверно:
System exception thrown while marshaling .NET type 20081219 to RFCTYPE_BCD
at SAP.Connector.Rfc.RfcMarshal.NetFieldToRfcField(Object src, RFCTYPE type, Encoding encoding, Byte[] dest, Int32 offset, Int32 len, Int32 charSize, Int32 decimals)
at SAP.Connector.Rfc.RfcStructureUtil.ToRfcStructure(Object obj, Byte[] dest, Type t, Encoding encoding, Boolean isUnicode, PropertyInfo[] propinfos, RfcStructInfo structInfo)
at SAP.Connector.Rfc.RfcStructureUtil.GetITabFromList(SAPConnection conn, Object list, Type t, RfcStructInfo structInfo, Int32 itab)
at SAP.Connector.Rfc.RfcClient.PrepareClientParameters(Type classType, MethodInfo m, Boolean isTQRfc, Object[] MethodParamsIn, RFC_PARAMETER[]& paramsIn, RFC_PARAMETER[]& paramsOut, RFC_TABLE[]& tables, ParameterMap[]& paramMaps)
at SAP.Connector.Rfc.RfcClient.RfcInvoke(SAPClient proxy, String method, Object[] methodParamsIn)
at SAP.Connector.SAPClient.SAPInvoke(String method, Object[] methodParamsIn)
Странно то, что это происходит не каждый раз. Кроме того, тип .NET, на который он жалуется, «20081219» - это данные , которые я передаю (дата), а не тип. Я думаю, что тип этого поля RFCTYPE.RFCTYPE_TIME
.
Есть предложения о том, как устранить эту временную ошибку? Есть ли какое-то состояние, которое я должен очищать между вызовами в SAP RFC?
Обновление:
По запросу, вот код, который вызывает SAP:
Using sapConnection As New MySapProxy(ConnectionString)
sapConnection.Connection.Open()
sapConnection.TheSapRfcICall(SapOpCode, Nothing, Nothing, sapTable, ResultTable)
End Using
Я думаю, что, может быть, несколько потоков используют одно и то же соединение. Использование SAP.Connector.GetNewConnection
вместо этого ничего не изменило.
Обновление:
Кажется, эта проблема возникает, даже когда я запускаю один поток! В чем дело ??
Есть ли способ отключить пул соединений, чтобы посмотреть, исправляет ли это?
Обновление:
@ Ответ Игала Сербана, похоже, работает на меня. Завтра утром я проверю логи и (надеюсь) награжу щедростью! Большое спасибо.
Обновление:
По запросу моя версия librfc32.dll: 6403.3.78.4732.