2011-09-20 1 views
0

J'ai une application multi-thread basée sur PHP que j'essaye de travailler avec le plugin HandlerSocket pour MySql.HandlerSocket donnant une erreur 167 - qu'est-ce que cela signifie?

Lors de l'exécution en tant que processus unique, cela fonctionne correctement. Quand je commence à le multi-thread, je reçois une erreur lors de l'insertion - il dit juste "167".

J'ai parfois obtenu "121" - ce que j'ai compris signifie erreur de clé en double.

Des indices?

Merci!

+0

Pour toute personne venant d'autre sur cette erreur avec prise de gestionnaire - il a été causée par des processus d'écriture ayant plus que concurrentes le nombre de threads traitant de la prise de gestionnaire écrit dans mysql. On dirait qu'il y a un bug avec les conditions de course dans la socket du gestionnaire pour obtenir des valeurs d'incrémentation automatique. Soit le nombre de threads d'écriture dans my.conf, moins d'écritures simultanées (peut-être implémenter votre propre pool de verrouillage/connexion), soit attendre que le bug soit corrigé. –

Répondre

1

Apparemment ...

MySQL error code 167: Failed to set row auto increment value