2012-12-10 6 views
6

Pracuję na aplikacji wielowątkowej (serwer), w której kiedyś obsługiwałem 2000 klientów i uruchamiam osobne połączenie bazy danych MySQL w każdym wątku. Dlatego włączyłem funkcję łączenia połączeń. Przeszukałem wiele bloków, które po użyciu połączeń powinniśmy je zamknąć, a następnie powrócą do puli i będą używane przez inny wątek. z drugiej strony wiemy, że tworzenie połączenia jest procesem czasochłonnym. Moje pytanie brzmi: dlaczego powinniśmy zamknąć połączenie w puli połączeń. a co jest lepsze, czy połączenie powinno otwierać je lub zamykać?C# powinienem pozostawić otwarte połączenie w łączeniu puli

Odpowiedz

6

wiemy, że zrobienie połączenie jest czasochłonny proces

Poprawnie - to dlaczego mamy pula połączeń. Utrzymują połączenia, więc nie tworzysz nowych.

dlaczego powinniśmy zamknąć połączenie w związku łączenie

Więc są one zwrócone do puli być używany w innych wątkach.

Połączenia są drogimi zasobami, więc chcesz je otworzyć, używać i zamykać tak szybko, jak to możliwe, aby powróciły do ​​puli i były dostępne dla innych wątków.

+0

Dzięki za odpowiedź Oded. –

1

Po "Zamknięciu" połączenia, które jest połączone, Mówisz, że skończyłeś połączenie i pula może go użyć ponownie.

Dzwonienie Zamknij nie powoduje fizycznego zerwania połączenia. Pula ma swoją własną logikę, aby określić, kiedy połączenia są fizycznie zamknięte.

+0

Dzięki Richardowi myślałem, że połączenie jest fizycznie zamknięte po ich zamknięciu. ale to nie tak. Teraz mam jasność co do łączenia połączeń :) –

Powiązane problemy