MySQL thread probléma

Sziasztok!

Munkatársam megkért, hogy ide is rakjam fel a kérdését hátha van ötletek.

-----------

Van egy 5.1.50-es verziószámú MySQL Community server. A max connections 200-ra van állítva, mégis úgy kb. 103-105 csatlakozás után az utánna következő csatlakozásoknál már a következő hibaüzenetet küldi: Can't create a new thread (errno 12)

Ilyenkor általában addig kell várni, amíg valamelyik csatlakozás meg nem szűnik, és utánna már beengedi a következőt, aztán az utánna következőt, már megint nem.

Bár gondolom, hogy sokan Linux alatt használják a MySQL-t, , itt egy 32 bit-es Wndows 2003 Server-en fut, rajtam kívülálló okok miatt.

Kérem, hogy ha van valakinek ötlete, hogy miért lehet ez, akkor írjon, mert már az egész netet átnéztem, de mindenhol csak találgatnak, és konkrét megoldást nem találtam.

Ja. A MySQL.-hez egy Delphi-ben megírt program kapcsolódik, ODBC -n keresztül. A szerverben 4GB RAM van, amelyből a hibaüzenet kiírásakor általában még kb. 5-600 MB szabadon elérhető.

Hozzászólások

Mindegyik megnyitott kapcsolat lezár rendesen a tranzakció végén? Nincsenek esetleg beragadt csatornák, amelyek elfogyasztják a szabad sávokat?
--
Coding for fun. ;)

Mit jelentenek a sávok?

Kimondottan tranzakciókezelés nincs a programban. Van egy TADOQuery komponens, amelynek van egy open és egy close tulajdonsága. Az open-el lefuttatju az komponensbe előzőleg feltöltött SQL utasítást, a close-al pedig bezárjuk. Érhetőbben modva, ha open-el megnyitom, akkor egy grid-ben látom az adatok, ha close-al lezárom, akkor meg nem látom. Tehát lezárja. Ez minden egyes esetben így van. Általában 450 körüli szál szokott lenni 95 kapcsolódásra, tehát az 450/95~4.7 , a thread cache pedig 8-ra van állítva, tehát még jócskán bellül vagyunk.

Elvileg a problema onnan ered hogy windows alatt max 2048 nyitott file lehet (posix api eseten), es ebbe futott bele. 5.5-tol atirtak a filekezelest win api-ra ahol ez a limit nincs. YMMV