Aplikacja webowa a połączenie do bazy danych

0

Witam

Mam pytanie odnośnie realizacji połączeni do bazy danych.
Chce zrobić singieltona który w konstruktorze połączy się do bazy i będzie miał właściwość GetConnection, wszystkie operacje dla wszystkich użytkowników będą realizowane na tym połączeniu.
1.Czy to dobry pomysł?
2.Czy może po prostu dla każdej operacji tworzyć nowe połączenie?
3.Czy baza danych (postgres) ma jakiś timeout po którym połączenie jest zamykane?

0

Powinieneś otwierać nowe połączenie dla każdej operacji.

0

Bardzo zły pomysł.

Zwykle realizowane to jest tak, że faktycznie przez Factory jakieś otwierasz połączenie na BeginRequest, a zamykasz na EndRequest (np. w NHibernate), natomiast jeśli jedziesz zwykłym npgsql to równie dobrze możesz robić using (var connection = .....) { using (var cmd = ......) {} } w kontrolerze. Otwarcie połączenia nie jest kosztowne, natomiast musisz mieć świadomość że raczej widok ci się nie wygeneruje jeśli zamkniesz połączenie a będziesz miał jakiś ORM z lazy.

Generalnie zależy od projektu trochę, czy to kobyła czy coś na kolanie.

0

W apkach webowych polaczenie z baza powinno miec cykl zycia obejmujacy http request. Najlepiej jak zarzadza tym kontener.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0