yanis7518
Messages postés283Date d'inscriptionmercredi 7 décembre 2005StatutMembreDernière intervention 9 juillet 2010
-
3 mars 2006 à 13:34
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
1 mars 2008 à 17:57
Salut a tous
J'ai une application qui se connecte a ma base MYSQL pour y faire soit des insertion soit des mise a jour.
Je met a jour 2 table differentes avec des données qui se trouve a des emplacement different
J'ai donc utiliser 2 thread pour ke le traitement se fasse simultanement
Le pb est que au bout d'un court moment l'appli s'arrete de tourner. Dans l'observateur d'evenement de windows j'ai des erreur du type system.io exception ou sytem. nullreference (un truc ds le genre)
Avant mon appli tournai sur une base access et j'avai pa de pb.
De plus ce pb n'existe pa lorsque je lance les thread l'un apres l'autre.
Quelqu'un saurait-il d'ou vien le pb??? et comment le resoudre svp merci
gyzmo222
Messages postés66Date d'inscriptionlundi 27 juin 2005StatutMembreDernière intervention 2 juin 20061 4 mars 2006 à 00:22
Tu dis qu'avant tu travaillais en bases accès, on dirait de part ton erreur que tu devrais chercher coté droits sur la base de données. System.io pourrait venir du fait qu'il ne sache pas ouvrir le fichier et nullreference c'est qu'il n'existe pas ou est innaccessible. On ne sait pas dire beaucoup plus avec peu de détails, quelques try catch s'imposent pour que tu es plus d'infos sur les erreurs.
cs_Pierre42
Messages postés19Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention22 novembre 2008 1 mars 2008 à 15:31
La réponse est malheuresement beaucoup plus simple, mysql n'accepte pas des connections utilisant les threads. Ca plante rapidement. Il faut créer une liste d'attente.
Laurent Rigaldies
France Progiciels Distribution
www.franceprogiciels.com
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 1 mars 2008 à 17:19
Hu ?
Je ne connais pas plus MySQL que ça, mais il doit gérer sans problème les accès concurents vu l'utilisation massive qui en est faite dans des architectures "web".
Ensuite c'est sur qu'il ne faut pas utiliser une seule instance de MySqlConnection (ou je ne sais le nom que ça porte pour le provider ADO.NET MySQL) pour tous les threads etc, mais bien une par thread.
cs_Pierre42
Messages postés19Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention22 novembre 2008 1 mars 2008 à 17:32
MySQL gère les accès concurrents sans problème, mais la dll
windows du driver ne permet pas d'être appelé simultanément par les threads. Le
fait de créer plusieurs instances de MySqlConnection ne changera rien à la
surcharge de la dll.
Il faut nécessairement passer par une file d'attente dans le programme
principal. J'avais espéré que cette limitation soit levé avec la version 5, ce
n'est pas le cas.
Laurent Rigaldies
France Progiciels Distribution
www.franceprogiciels.com