ODP.net géré pilote jette ORA-12570: Session Réseau: paquet Inattendu erreur de lecture

Dans l'un de nos produits, nous extraire des données de la base de données Oracle à l'aide de procédures stockées à l'aide de la ODP.net géré pilote.

Chaque maintenant et puis (environ tous les 1000 requêtes) nous obtenons l'exception suivante:

(ORA-12570: Network Session: Unexpected packet read error)
---> Oracle.ManagedDataAccess.Client.OracleException: ORA-12570: Network Session: Unexpected packet read error
---> OracleInternal.Network.NetworkException: ORA-12570: Network Session: Unexpected packet read error
---> System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: size
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode)
at OracleInternal.Network.ReaderStream.ReadIt(OraBuf OB, Int32 len)
--- End of inner exception stack trace ---
at OracleInternal.Network.ReaderStream.ReadIt(OraBuf OB, Int32 len)
at OracleInternal.Network.ReaderStream.WaitForReset()
at OracleInternal.Network.OracleCommunication.Reset()
at OracleInternal.TTC.TTCExecuteSql.ReceiveExecuteResponse(Accessor[]& defineAccessors, Accessor[] bindAccessors, Boolean bHasReturningParams, SQLMetaData& sqlMetaData, SqlStatementType statementType, Int64 noOfRowsFetchedLastTime, Int32 noOfRowsToFetch, Int32& noOfRowsFetched, Int64& queryId, Int32 longFetchSize, Int32 initialLOBFetchSize, Int64[] scnFromExecution, Boolean& bAllPureInputBinds, DataUnmarshaller& dataUnmarshaller, MarshalBindParameterValueHelper& marshalBindParamsHelper, Boolean bDefineDone, Boolean& bMoreThanOneRowAffectedByDmlWithRetClause)
--- End of inner exception stack trace ---
at Oracle.ManagedDataAccess.Client.OracleException.HandleError(OracleTraceLevel level, OracleTraceTag tag, Exception ex)
at OracleInternal.TTC.TTCExecuteSql.ReceiveExecuteResponse(Accessor[]& defineAccessors, Accessor[] bindAccessors, Boolean bHasReturningParams, SQLMetaData& sqlMetaData, SqlStatementType statementType, Int64 noOfRowsFetchedLastTime, Int32 noOfRowsToFetch, Int32& noOfRowsFetched, Int64& queryId, Int32 longFetchSize, Int32 initialLOBFetchSize, Int64[] scnFromExecution, Boolean& bAllPureInputBinds, DataUnmarshaller& dataUnmarshaller, MarshalBindParameterValueHelper& marshalBindParamsHelper, Boolean bDefineDone, Boolean& bMoreThanOneRowAffectedByDmlWithRetClause)
at OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(String commandText, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, Int32 longFetchSize, Int32 lobPrefetchSize, OracleDependencyImpl orclDependencyImpl, Int64[]& scnFromExecution, OracleParameterCollection& bindByPositionParamColl, Boolean& bBindParamPresent, Boolean isFromEF)
at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery()

Il semble que ODP.net appelle Système.Net.Les Sockets.Socket.Recevoir avec un invalide paramètre de taille (<=0 ou supérieure à la longueur de la mémoire tampon, moins la valeur du paramètre de décalage).

L'exception ne peut être reproduit à la main et n'est jamais soulevée lors de l'exécution des procédures différentes, avec des paramètres différents (ie c'est de l'aléatoire).

De Configuration:
ODP.net géré version du pilote: 4.121.1.0
.net framework 4.5
Version du serveur Oracle: Oracle Database 11g Enterprise Edition Version 11.2.0.4.0 (Linux)

Quelqu'un a déjà rencontré ce problème? Existe-il des correctifs disponibles?

Merci d'avance!

jamais eu ce @vc_74
Ce n'est pas votre situation, mais la même erreur se produira lorsque vous essayez d'utiliser l'Oracle pur géré pilote lors de la connexion au serveur qui nécessite de chiffrement avancé (stackoverflow.com/a/34227815/12597)
Salut, avez-vous géré comment résoudre ce problème? Merci
Oui, mais il a fallu un certain temps... (voir la réponse ci-dessous)
Voir la réponse ci-dessous

OriginalL'auteur vc 74 | 2014-11-25