“ORA-03135: connexion perdu le contact” lors de l'insertion de fichiers volumineux

Je suis en train de faire un insert avec potentiellement une grande quantité de données binaires dans une distance Oracle (11g) de la base de données à l'aide de Entity Framework (ODP.Net). Il fonctionne très bien pour les très petits fichiers (<5 KO), mais pour les plus grands (par exemple, 44 KO) j'obtiens une erreur: "ORA-03135: connexion perdu le contact".

Je ne pense pas que c'est le timing, l'exception se produit en moins d'une seconde de l'exécution de la commande.

J'ai essayé d'installer les deux de la suite dans ma chaîne de connexion, mais en vain:

  • Validate Connection=true
  • Pooling=false

J'ai aussi regardé dans le listener.log fichier sur la machine distante. Il montre les connexions en cours, mais aucun signe d'exceptions ou de connexions interrompues.

Je suis pour les suggestions de corrections ou de méthodes de résolution des problèmes.

Edit:

Les mêmes opérations SQL de travail lors de l'accès à une instance Oracle sur le réseau local.

Peut-être bien que ce n'est pas que, mais j'ai eu la "ORA-03135: connexion perdu le contact" sur des trucs bizarres quand la connexion n'a pas été perdue il ne s'imposait que l'Oracle n'était plus capable d'avaler l'instruction SQL soumis. Je l'ai eu sur d'énormes requêtes (>2000 ligne de code). Peut-être que je suis de vous envoyer sur la bonne voie, mais je pensais que au bout de 4 heures pas de réponse, j'ai au moins pu vous dire que la pièce de ma propre expérience. Pour moi, il semblait que le message s'affiche toujours lorsque l'analyseur de la commande SQL s'est écrasé dans le fond.
Peut-être la peine de vérifier le journal des alertes sur la machine distante pour voir si cela a signalé une erreur. Si pas, il peut-être des points pour le problème du client, et non sur le serveur. Aussi, existe-il des pare-feux dans le chemin, ou quoi que ce soit d'autre au niveau du réseau qui pourrait avoir des bûches vous pouvez le vérifier?
Un réseau de journal serait utile. Le pare-feu n'est pas allumé, et c'est un serveur Windows machine hébergeant Oracle. Je ne suis pas sûr de l'endroit où le trafic TCP est connecté sur une machine Windows, mais j'ai peut-être le savoir.
Nous utilisons ODP.Net pour les insertions op binaires de plus de 100 MO et pour gigaoctets par jour, donc il peut travailler. Veuillez inclure votre code C# comme un exemple.

OriginalL'auteur Ishmael Smyrnow | 2012-08-28