Avem o topologie de furtună care interacționează cu o bază de date MariaDB. Șuruburile noastre implementează interfața IRichBolt și anulează metodele ciclului de viață. Deschidem o conexiune db în metoda noastră de pregătire și o închidem în metoda de curățare. Documentația metodei de curățare spune:

resurselor

Sunat când un IBolt va fi oprit. Nu există nicio garanție că va fi apelată curățarea, deoarece supraveghetorul ucide lucrătorii -9 procesează pe cluster. Singurul context în care este garantat că se numește curățare este atunci când o topologie este ucisă atunci când rulează Storm în modul local

Iar comanda kill -9 ucide procesul fără a curăța resursele. Deci am ajuns la această concluzie că la uciderea topologiei nu este necesar ca metoda de curățare să fie apelată și conexiunea db să fie închisă.

Deci, trecând la întrebarea mea, avem un script shell pentru implementarea topologiei care, atunci când este executat, ucide topologia curentă cu un timeout de 0 și implementează o nouă topologie. Ne confruntăm cu o problemă la nivel de db, potrivit căreia există multe conexiuni deschise, ceea ce ne dă indiciu că conexiunile anterioare nu au fost închise. (Cel deschis în topologia anterioară).

Presupunerea noastră este corectă? Creșterea expirării va curăța toate resursele?