[ Resolu ] Ma requete ne fonctionne qu'à moité ! Avez-vous une idée ?

Ma requete ne fonctionne qu'à moité ! Avez-vous une idée ? [ Resolu ] - C#/.NET managed - Programmation

Marsh Posté le 17-12-2008 à 13:28:04    

Bonjour,
 
Je travaille sur une base Oracle ! Je n'ai pas de problème pour récupèrer les données. En ce qui concerne l'insertion, la mise à jour, j'ai quelques soucis !
 
Démarche ==>  j'arrive à insérer les données. Je supprime les données manuellement et je refais l'action. Quand je veux réinsérer ces mêmes données, ça ne fonctionne pas et j'ai un message d'erreur, au bout de quelques secondes !
 
Voici mon erreur :
 

Le CLR n'a pas pu effectuer de transition du contexte COM 0x10df448 au contexte COM 0x10df5b8 pendant 60 secondes. Le thread qui possède le contexte/cloisonnement de destination est probablement en train d'attendre ou de traiter une opération très longue sans pompage des messages Windows. Cette situation a généralement des effets négatifs sur les performances et peut parfois entraîner le blocage de l'application ou une utilisation ininterrompue de la mémoire. Pour éviter ce problème, tous les threads STA (Single Threaded Apartment) doivent utiliser des primitives d'attente de pompage (par exemple CoWaitForMultipleHandles) et pomper de manière régulière les messages lors des opérations qui sont longues à s'exécuter.


 
et voici mon code :
 

Code :
  1. Dim oradb As String = "Data Source=(DESCRIPTION=(ADDRESS_LIST=" _
  2.                               + "(ADDRESS=(PROTOCOL=TCP)(HOST=172.30.32.92)(PORT=1521)))" _
  3.                               + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" _
  4.                               + "User Id=xxxxx;Password=xxxxx;"
  5.    Dim conn As New OracleConnection(Me.oradb)
  6.    Dim myOracleTransaction As OracleTransaction = conn.BeginTransaction()
  7.    Dim myOracleCommand As OracleCommand = conn.CreateCommand()
  8.    myOracleCommand.CommandText = "INSERT INTO CATEGORIES (CODE_CATEGORIE,NOM_CATEGORIE,DESCRIPTION) VALUES(10,'toto','titi')"
  9.    myOracleCommand.ExecuteNonQuery()
  10.    myOracleTransaction.Commit()
  11.    conn.Close()


 
 
Avez-vous une idée de l'origine de l'erreur, svp ?
 
D'avance merci pour les réponses
Cvb
 
ps: je travaille sous Visual Studio 2008 (Framework 3.5)


Message édité par cvb le 31-12-2008 à 21:52:27
Reply

Marsh Posté le 17-12-2008 à 13:28:04   

Reply

Marsh Posté le 17-12-2008 à 16:16:35    

J'ai du nouveau. Plusieurs choses se produise au niveau de la base de donnée.  
 
 
1- Quand j'exécute la première fois le code, les données sont écrites dans la base dans aucun problème, le commit s'exécute bien....
 
2- Une fois que je supprime les données à la main à partir de "Oracle SQL Devellopper" et que je réexecute le code afin de renvoyer la requête INSERT, c'est à ce moment là que mon soucis intervient ! Il faut que j'execute le Commit depuis "Oracle SQL Devellopper" pour que les données envoyé depuis le programme apparaissent !
 
Si je n'execut pas se COMMIT, le programme 30 secondes plutard !  
 

Le CLR n'a pas pu effectuer de transition du contexte COM 0x10df448 au contexte COM 0x10df5b8 pendant 60 secondes. Le thread qui possède le contexte/cloisonnement de destination est probablement en train d'attendre ou de traiter une opération très longue sans pompage des messages Windows. Cette situation a généralement des effets négatifs sur les performances et peut parfois entraîner le blocage de l'application ou une utilisation ininterrompue de la mémoire. Pour éviter ce problème, tous les threads STA (Single Threaded Apartment) doivent utiliser des primitives d'attente de pompage (par exemple CoWaitForMultipleHandles) et pomper de manière régulière les messages lors des opérations qui sont longues à s'exécuter.


 
Je me pose la question de savoir s'il n'y a pas une histoire de Buffer, ou quelques chose comme cela ! je ne comprends pas le problème. Je travaille sous Oracle 10g. Avez-vous des idées ?
 
 

Reply

Marsh Posté le 17-12-2008 à 17:30:05    

Bonsoir,
 
J'ai trouvé l'erreur ! En fait j'avais "Sql Devellopper" d'ouvert en même temps que j'executé mon code ! Il s'avère (pour une raison inconnue) que le logiciel prenait le pas sur mon programme ! Il est vrai que je m'authentifier deux fois sur la base avec des identifiants identiques...
 
En fermant "Sql Devellopper", tout est rentré dans l'ordre, je peux insérer les données....:)  
 
D'avance merci de vous être penché sur mon soucis :)
Bonne soirée :)
++

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed