Announcement

Collapse
No announcement yet.

Max. Anzahl von Anwendungsinstanzen mit DB-Connections = 48 ?!?!?!?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Max. Anzahl von Anwendungsinstanzen mit DB-Connections = 48 ?!?!?!?

    Hallo allerseits,

    Ich bin hier beim Umgang mit der BDE auf ein seltsames Phänomen gestoßen, das ich mir nicht erklären kann.

    Im Zuge einer Portierung zur Web-Anwendung sollen prinzipiell beliebig viele Instanzen eines Programms auf einem Rechner (Web-Server) laufen.
    Jede Instanz baut über die BDE 3 Verbindungen zu unterschiedlichen Datenbanken auf.

    Ich habe die Erfahrung gemacht, dass die Anzahl dieser Verbindungen beschränkt ist und durch Einstellungen in der BDE-Konfiguration (SharedMemSize) steigerbar ist.
    Je höher dieser Wert ist, desto mehr Instanzen der Anwendung können erzeugt werden.

    Nun ist es aber so, das über eine maximale Anzahl von Instanzen (48!) hinaus, keinerlei Änderungen in der BDE-Konfiguration (auch bei anderen Parametern) eine Steigerung dieser Anzahl bewirkt. Das ganze ist auch unabhängig von der darunterliegenden Datenbank.

    Ich erhalte nach dem Erzeugen der letztmöglichen Instanz dabei immer die Fehlermeldung:
    'Bei der Initialisierung der Borland Database Engine ist ein Fehler aufgetreten (Fehler $250E)'

    Hat jemand schon mal ähnliche Erfahrungen gemacht oder könnte mir vielleicht mit einem Tip weiterhelfen,

    Vielen Dank,

    Micha

  • #2
    Hallo,

    über CodeCentral sind die Borland Technical Informations (TI) zu erreichen - und dort gibt es den Beitrag <b>Article #15159: Some current internal limits of BDE</b>. Unter <i>General Limits</i> ist der Eintrag <b>48 Clients in system</b> zu finden.

    In einer Three-tier- bzw. Web-Umgebung muss man auf die Fähigkeiten eines Datenbankverbindungs-Pools zurückgreifen. Im Fall von ADO (MDAC) ist das kein Problem, da der OLE DB-Provider diesen Datenbankverbindungs-Pool automatisch zur Verfügung stellt, so dass es keine Begrenzung für die Anzahl der Clients gibt. Im Fall der BDE (ab Version 4.x) kann man auf die Fähigkeiten des <i>Resource Dispensers</i> zurückgreifen (siehe BDE-Verwaltung <i>MTS POOLING</i>), wenn der Zugriff aus dem MTS (Microsoft Transaction Server) bzw. COM+ (Windows 2000) heraus erfolgt. In diesem Fall sorgt die Implementierung der Anwendung von Form von zustandslosen COM-Objekten dafür, dass sich sehr viele Clients die Datenbankverbindungen gemeinsam teilen. Im Fall von MTS/COM+ übernimmt das Betriebssystem über den Resource Dispenser BDE die automatische Verwaltung des Datenbankverbindungs-Pools, wir sind als Entwickler da völlig außen vor (wenn es da nicht einen BDE-Bug gäbe, der über einen eigenen Session-Manager umgangen werden muss). Näheres dazu ist in meinen COM/DCOM-Büchern zu finden

    Comment

    Working...
    X