Pravděpodobně jste narazili na tuto chybu v MySQL Connector/NET .
Co spouští tuto chybu:
- Kód volá pro provedení dotazu A
- Je zahájena transakce 1 pro dotaz A
- Dotaz A se provede a způsobí chybu v MySQL
- Transakce 1 NENÍ vrácena zpět
- Volání kódu pro provedení dotazu B
- Je zahájena transakce 2 pro dotaz B
- MySQL Connector/NET vyvolá výjimku
Chyba je v bodě 4:transakce 1 zůstane po chybě otevřená (nebo je alespoň konektor stále přesvědčen, že zůstal otevřený). Kvůli sdružování připojení může volání kódu pro dotaz A a dotaz B zcela nesouviset. Také pokud je čas mezi body 4 a 5 dostatečně dlouhý, transakce je vráceno zpět, proto ta vzácnost a náhodnost.
Bohužel zatím není žádná oprava pomocí MySQL. Jediné řešení, o kterém vím, je stažení zdrojového kódu Connector/NET a jeho oprava/sestavení sami.