![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: zeos
firebird embedded und paralleler Zugriff
ich mach mal hierzu nen neuen Tread auf.
Der embedded Server in der Version 2.1.4X funktioniert, nach ein paar Einstellungsschwierigkeiten meinerseits, jetzt mit Zeos 6.6 fehlerlos. Allerdings ist nur jeweils ein exklusiver Zugriff auf die DB möglich :-( (Ich hab da im Hinterkopf das ist da so :( ) Der gleichzeitige Versuch von einem 2ten Programm auf die DB zuzugreifen bringt ne sql-error " der Prozess kann nicht...." Gibts ne Möglichkeit mehrfach gleichzeitig auf die DB zuzugreifen, oder ist da die embedded-version doch nicht das Gelbe vom Ei ? Danke gruss KHH |
AW: firebird embedded und paralleler Zugriff
Das funktioniert erst ab 2.5. Grundsätzlich würde ich für Multiuser-Zugriff aber eine Servervariante einsetzen ( und dies unabhängig vom verwendetem DBMS)
|
AW: firebird embedded und paralleler Zugriff
Gleichzeitig mit der 2.1er embedded geht definitiv nicht.
Mit der 2.5er solls gehen (es sollte sich auch problemlos die 2.1er durch die 2.5er ersetzen lassen). Weiß aber nicht wie stabil das ist - wir haben hier einige freezes, von denen wir aber noch nicht wissen ob sie an unserer Software oder an der Firbird-Embedded-Engine liegen... Gruß Luggi |
AW: firebird embedded und paralleler Zugriff
Zitat:
zeos in der Version 6.6 macht da nicht mit :-( |
AW: firebird embedded und paralleler Zugriff
Und Zeos7 ?
|
AW: firebird embedded und paralleler Zugriff
zeos 7 hab ich noch nicht installiert.
Wäre ne Überlegung wert, wenn sich das Upgrade auf 7 auch sonst lohnt. Nur wg dem embedded Server möchte ich ungern die Gefahr eingehen , dass es sonst welche Ungereimtheiten gibt. |
AW: firebird embedded und paralleler Zugriff
Ich würde grundsätzlich niemals mehrer Programme auf der selben Datenbank(Edit: nezieht sich auf die FB embeded und Filebasierte Datenbanken) arbeiten lassen und auch verhindern das mehrer Instanzen eines Programmes das tun. Diesen quatsch kennt man ja von Paradox und Jet-Engine. Die Idee soetwas zu machen scheitert einfach am Windows-Dateisystem (OpLocks).
Die beste Lösung für einen Embedded SQL Server ist es so ähnlich wie MSSQL Server Express Embedded vorzughen. Das erste Programm das zu dieser Datenbank connecten will startet den Server wenn es keinen findet der läuft. Wenn keine Conection mehr da ist beendet sich der Server nach einiger zeit. |
AW: firebird embedded und paralleler Zugriff
Zitat:
|
AW: firebird embedded und paralleler Zugriff
Hallo
Bei nur lesendem Zugriff geht auch die embedded Version. Einfach die Datenbank auf schreibgeschützt setzten (sowohl read only in der Datenbank als auch den Schreibschutz von Windows) Dann können beliebig viele Programme gleichzeitig zugreifen. mfg Reinhold |
AW: firebird embedded und paralleler Zugriff
Zitat:
|
AW: firebird embedded und paralleler Zugriff
Zitat:
das widerspricht aber der Aussage "niemals mehrere Prog..." oder bezog sich das nur auf die embedded Versionen ? |
AW: firebird embedded und paralleler Zugriff
Ich habe das so verstanden das er die embedded meint ( direkter Zugriff mehrerer Programme auf die Datenbankdatei)
|
AW: firebird embedded und paralleler Zugriff
Man braucht keinen Server für multi-Zugriff auf die Firebird 2.5, die embedded kann das genauso gut.
(das ist ja eines der Features, die extra dafür in der 2.5er embedded implementiert wurden) Edit und Korrektur (falls jemand nicht weiterliest): Das gilt, solange die gleichzeitigen Zugriffe auf einem Host sind. Meiner Meinung nach liegt das Problem nicht an FB, sondern an Zeos. Ich hatte mit den Komponenten ähnliche Probleme und bin froh, sie nicht mehr verwenden zu müssen. Es wäre meiner Meinung nach die beste Möglichkeit, Zeos wegzuschmeissen und vernünftige Zugriffskomponenten zu nehmen, die nicht an allen Ecken und Enden Probleme machen. Zeos, vor allem die 7, ist leider buggy ohne Ende. Ich wollte zuerst auch von Zeos 6 auf Zeos 7 updaten, die Probleme mit Geschwindigkeit, Unicode und seltsamen Fehlern insgesamt von Zeos haben mich dann dazu bewegt, UniDac zu kaufen...und ich habs bisher nicht bereut, im Gegenteil. Andere schwören auch auf IBDAC oder UIB. |
AW: firebird embedded und paralleler Zugriff
Zitat:
|
AW: firebird embedded und paralleler Zugriff
Kann ich bestätigen... Mit Zeos hatte ich nur Probleme... Ich dachte schon ich wär einfach zu doof dafür... Habe dann
![]() |
AW: firebird embedded und paralleler Zugriff
Zitat:
und wenn es nur ein SQL Server ist, aber so direkt auf Dateien sollte man nie mit mehreren Programmen gleichzeitig arbeiten! Windows bekommt das einfach nicht hin! Und es gibt auf dieser Erde keine Datenbank die mehrere Programme direkt auf einer Datei arbeiten lässt , das ganze unter Windows und dabei garantiert das bei Schreiboperationen keine Datenverluste auftreten. In Paradox hatte man dadurch regelmässig beschädigte Schlüssel und in der JET Engine ganze Datenbanken die man aus der Datensicherung zurrückladen musste. Und diese beiden haben das echt laaaange versucht. Mit z.b. eigenem locking (eigentlich müsste das windows locking ausreichen!) usw. aber es geht einfach nicht. |
AW: firebird embedded und paralleler Zugriff
Zitat:
Oder gleichzeitige Schreibzugriffe, bzw. woher wissen sie ob jemand Anderes was verändert hat usw. Unterhalten sich dann die Programme miteinander? Geht natürlich nicht unbedingt, wenn die eine Datei auf 'nem Netzlaufwerk nutzen und die Programme keine Verbindung aufbauen können, bzw. sie eh nix voneinander wissen. Bei einem ReadOnly-Zugriff ist das alles ja kein Problem, aber sonst stell ich mir das eher schwer vor. |
AW: firebird embedded und paralleler Zugriff
Zitat:
Mehrere Programmzugriffe gleichzeitig auf einem Host geht allerdings, dort gibt es in der FB 2.5 einen globalen, internen Lockmechanismus / Locktable der das regelt. Zugriffe über ein Netzlaufwerk sind ein "No-Go" beim FB embedded, steht glaube ich sogar im Manual. Ich wüsste nun aber keine embedded-Datenbank, die concurrent writes ohne manuelles Locking ermöglicht...SQLite kann das ja AFAIK ohne Locking auch nicht. (allerdings bin ich jetzt auch nicht so der Mensch, der alle embedded-Datenbanken auswendig kennt :-D) |
AW: firebird embedded und paralleler Zugriff
Zitat:
Unsere Oracle-DB werden auf Windows-Servern gehostet, und es gibt keine Datenverluste. Es ist eher ein Problem der DB und nicht des OS. (war da eben die rede von ACCESS und PARADOX im Zusammenhang mit Datenbanken????) Gruß K-H |
AW: firebird embedded und paralleler Zugriff
Zitat:
Und ja Paradox und Jet sind Datenbanken und DBISAM, DBASE, INFORMIX, FOXPRO &c. |
AW: firebird embedded und paralleler Zugriff
Zitat:
|
AW: firebird embedded und paralleler Zugriff
Gute Frage!! Mal ausprobieren...geht über studieren. Allerdings hatte ich beim FB embedded bei abstürzenden Programmen bisher noch nie Probleme mit Locks.
(und ich habe die Programme schon oft durch Programmfehler in der Entwicklungsphase abstürzen lassen..) Ich weiss allerdings nicht, wie die das intern machen...leider gibt es da kaum interne Specs, da die Tech-Spezifikationen der Webseite immer noch auf dem Stand der 2.0 sind und auch darauf hingewiesen wird, dass die Dokus etwas hinterherhinken. (kann gut sein, dass es irgendwo versteckt ist, aber die Seite ist leider eh nicht sonderlich übersichtlich...schade eigentlich, FB ist so eine gute Datenbank..) Würde mich selbst sehr interessieren, wie die neue Embedded-Superclassic-Architektur des 2.5 intern genau funktioniert. Beim Client-/Server-Modell ist es ja klar, da ein Prozess alles handeln kann, aber wieso die Embedded so funktioniert wie sie funktioniert, wirft schon Fragen auf :-) |
AW: firebird embedded und paralleler Zugriff
guten Morgen,
Zitat:
![]() Zitat:
![]() GRüße |
AW: firebird embedded und paralleler Zugriff
Wie es ganz genau funktioniert, das wissen nur die Core-Devs, aber vielleicht reicht dir das: Obwohl Firebird dem MVCC-Modell folgt, verwendet Firebird intern Locks und der "Lock Manager" ist die koordinative Komponente, um gemeinsam benutzte Ressourcen wie Data Pages etc. vor dem gegenseitigen Zugriff zu schützen. So speichert Firebird 2.5 unter Windows z.B. in einem Verzeichnis C:\ProgramData\Firebird sogenannte Lock-Files (Lock-Table), die der Lock-Manager verwaltet. Dadurch ist es auch möglich, dass ein Mischen von Classic/SuperClassic (inkl. Embedded, da auf SuperClassic basierend) für den Zugriff auf eine Datenbank auch schreibend funktioniert. Was man halt nicht machen kann, und was durch eine Fehlermeldung beim Connect von Firebird unterbunden wird ist, ein Mischen von 32 und 64-bit Firebird Prozessen, da sich hier das Layout der Lock-Table unterscheidet.
|
AW: firebird embedded und paralleler Zugriff
Zitat:
Ich wollte die Embedded doch grade verwenden, damit das nicht passiert. :wall: |
AW: firebird embedded und paralleler Zugriff
Naja, zum Einen räumt FB die Dateien ja bei einem regulären Programm-Ende auch wieder auf und im Endeffekt musst Du Dich halt entscheiden, was Du alles an Funktionalität haben willst. Ich will nicht sagen, dass Du (gefühlt) ständig am Nörgeln bist, aber Du legst eine sehr hohe Messlatte an und ich hoffe, dass Du auch in Deinem eigenen Alltagsgeschäft mit den üblichen Randbedingungen (Zeit etc.) diesem Anspruch ebenfalls gerecht wirst.
|
AW: firebird embedded und paralleler Zugriff
Es wird auch wieder aufgeräumt. :-D
Ach ja, hatte ich vergessen zu erwähnen: ![]() |
AW: firebird embedded und paralleler Zugriff
Aber auch nur bei "normalem" Programmende ... wer sagt, daß sich mein Programm immer normal beendet? :roll:
Na gut, dann hoff ich mal, das räumt auch das Verzeichnis weg. :stupid: War ja eher davon ausgegangen, daß es eben nur eine Anwendung pro Datenbankdatei ist ... wer hätte da geglaubt, daß nun doch wieder irgendwas Globales nötig ist. Aber vielleicht kann man dieses Feature auch einfach deaktivieren? Schade daß es kein globales Temp-Verzeichnis gibt, denn diese werden regelmäßig automatisch bereinigt. (bei mir privat, was leider nicht überall standardmäßig aktiv ist, und auch auf vielen Servern) In das C:\Windows\Temp kann nicht jeder reinschreiben und ansonsten hat jeder Benutzer ein Eigenes, wo auch nicht jeder rann kommt. :? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz