Stefan Falz: Access und viele Zugriffe via ASP

Beitrag lesen

Hi!

Wie verhält sich Access wenn viele Leute (übers Internet) in die selbe DB schreiben?

Wird für jeden (einzelnen) Zugriff am Server eine Verbindung zur DB aufgebaut, oder wird nur für jede DB eine Verbindung aufgebaut?

Gibt es eine Stellungname von Microsoft zu diesem Thema?

Grüße
  fredy

Hallo,

die Anzahl der Verbindungen hängt von deiner Programmierung ab.
Du kannst z.B. folgende 3 Szenarien benutzen:

Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open DSN,User,PWD
---> Öffnet jeweils eine Verbindung (bester Weg)

If Not IsObject(Session("objConn")) Then
    Set objConn = Server.CreateObject("ADODB.Connection")
        objConn.Open DSN,User,PWD

Set Session("objConn") = objConn
End if
---> Öffnet nur beim ersten Zugriff einer Session ein Objekt (schlecht, da sich die Datenbank nicht kontrolliert schließen läßt, da Du keinen Zugriff auf die Session-Variable hast, außer es wäre Deine eigene Session). Außerdem kannst Du die Datenbank nicht ohne weiteres updaten (physisch ersetzen), da sie für die gesamte Session geöffnet bleibt.

If Not IsObject(Application("objConn")) Then
    Set objConn = Server.CreateObject("ADODB.Connection")
        objConn.Open DSN,User,PWD

Set Application("objConn") = objConn
End if
---> Es wird lediglich eine Verbindung aufgebaut, die von allen Usern und Session benutzt werden kann. Allerdings ist Access darüber nicht besonders erfreut und die Datenbank ist ziemlich schnell hin (frag nicht wieso, Erfahrungswerte).

Im Moment verwende ich in verschiedenen Projekten Access-Datenbanken. Diese werden alle über den ersten Weg geöffnet. Hierbei hat man die beste Kontrolle über die Zugriffe. Probleme sind bisher keine aufgetreten. Das Problem, das Du wahrscheinlich siehst, ist die max. Anzahl gleichzeitiger Verbindungen in Access. Aber da beim ersten Beispiel die Verbindungen sofort wieder geschlossen werden und die Zugriffseiten sich im Bereich < 1 Sek. bewegen, ist die Gefahr, daß die max. Anzahl überschritten wird gleich Null. Es sei denn, du hast 1000 User, die alle gleichzeitig was wollen (in derselben Sekunde).

Tschau, Stefan