webForumDet fria alternativet

databaskoppling i application-variabel

2 svar · 258 visningar · startad av bohlin

bohlinMedlem sedan mars 2000263 inlägg
#1

Jag läste nånstans att man inte ska ha databaskoppliingar i applicationvariabler, utan i vanliga. varför?

Nån som kanske har en länk till nån sida där det står varför?

------------------
/bohlin
kaffe är djävulens dryck
glögg är guds dryck

VideMedlem sedan dec. 19998 577 inlägg
#2

Det (tycker jag) beror på hur du använder den... jag antar att du menar att du initierar application i global.asa...

Det du inte skall initiera den i Sub Session_OnStart, för då kommer ju det att startas/skrivas över samma application för varje besökare och då tappar man ju allt va Application står för...

Om man skall initiera den i global.asa så skall du använda den i Sub Application_OnStart, då kommer den bara att startas en gång under serverns uppgång...

Allt detta trots är det en bit minne som alltid är upptaget för servern då man startar en Application i Sub Application_OnStart...

Nu blev ju jag också splittrad... :e

------------------
Kom hem till mig...

emissionMedlem sedan dec. 19996 721 inlägg
#3

Nej, man ska inte ha några objekt i application- eller session-scope. Om man skapar kopplingen i application-scope, måste alla anrop gå via den tråd som t.ex. global.asa skapat.
För det första måste tråden anropas (marshalling), för det andra hamnar alla anrop i kö, dvs. man utnyttjar inte möjligheten till multitrådning.

Däremot är det inte så dumt att lagra kopplingsträngen (connectionstring) i application-scope, så att den blir smidig att komma åt.

Har för mig att det finns artiklar om detta på MSDN.

129 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)