AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Vor- und Nachteile von FB embedded für Einzelrechneranwendung
Thema durchsuchen
Ansicht
Themen-Optionen

Vor- und Nachteile von FB embedded für Einzelrechneranwendung

Ein Thema von hoika · begonnen am 21. Mai 2014 · letzter Beitrag vom 22. Mai 2014
Antwort Antwort
Seite 1 von 2  1 2      
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 21. Mai 2014, 06:04
Datenbank: Firebird • Version: 2 • Zugriff über: IBDAC
Hallo #,

wie schon im Titel geschrieben.
Gegeben: FB-Anwendung, läuft auf einem Rechner, also kein Netz

Vorteil 1:
keine FB-Installation, Anwendung könnte also sogar ohne Admin auf einem Stick "installiert" sein und laufen

Vorteil 1:
keine Probleme mit anderen ev. bereits installierten FB-s
Nutzername/Passwort muss nicht von dem anderen System "erfragt"/"erbettelt" werden

Nachteil 1:
Ein Fehler in der Anwendung reisst auch die FB-DLL mit -> Datenverlust ?
Was passiert, wenn die Anwendung "abgeschossen" ?

Kennt sich jemand gerade mit Nachteil 1 aus ?

Noch eine zweite Frage:
Woran erkennt ich eigentlich, dass die Anwendung mit einem embedded FB zusammenarbeitet?
Mit fällt hier nur ein, den Pfad der geladenen gds32.dll/fbclient.dll zu ermitteln
und die Größe der Dll zu prüfen (>1.5 MB).


Danke


Heiko
Heiko

Geändert von hoika (21. Mai 2014 um 06:08 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 21. Mai 2014, 06:46
Zitat:
Nachteil 1:
Ein Fehler in der Anwendung reisst auch die FB-DLL mit -> Datenverlust ?
Was passiert, wenn die Anwendung "abgeschossen" ?
Wenn der Prozess nicht gerade bei einem Schreibvorgang aussteigt, sollte das kein Problem darstellen.


Zitat:
Noch eine zweite Frage:
Woran erkennt ich eigentlich, dass die Anwendung mit einem embedded FB zusammenarbeitet?
Mit fällt hier nur ein, den Pfad der geladenen gds32.dll/fbclient.dll zu ermitteln
und die Größe der Dll zu prüfen (>1.5 MB).
Das ist kein Indiz, da die embedded(Server)-Dll ja uach über Netzwerkprotokoll auf einen installierten lokalen/remoten Server zugreifen kann. Grundsätzlich sollte jedes Programm, welches auf FB zugreift problmelos embedded funktionieren.
Markus Kinzler
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 21. Mai 2014, 09:18
Nachteil 1:
Ein Fehler in der Anwendung reisst auch die FB-DLL mit -> Datenverlust ?
Was passiert, wenn die Anwendung "abgeschossen" ?

Kennt sich jemand gerade mit Nachteil 1 aus ?
Ich denke, das ist kein spezifischer embedded Nachteil.
Ob es der Server nicht schafft Daten wegzuschreiben oder die embedded DLL macht keinen Unterschied oder?
Alle Datenschreiber müssen per se auf hohe Robustheit ausgelegt sein. Dazu werden die verschiedensten Mechanismen verwendet.
Was auch immer geschieht, fehlt ein finales commit, sind die Daten futsch.
Gruß, Jo
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 21. Mai 2014, 10:12
Nur einen Server kann ein Benutzer nicht so einfach abschiessen und beim geordneten Beenden des Dienstes wird ja alles sauber beendet.
Ich vermute mal er meint beim "harten" Beenden des Programmes z.B. über den Taskmanager. Dann wird die Dll (und damit der "Server" im Bauch dieser) beendet und es kann nicht richtig aufgeräumt werden.
Markus Kinzler
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 21. Mai 2014, 12:02
Ja, die Wahrscheinlichkeit für einen solchen Fall ist sicher höher mit embedded auf einer Workstation.
Aber es geschieht m.E. nichts anderes, als bei einem Server.
Selbst wenn nicht der Server sondern nur das Clientprogramm abschmiert/gekillt wird.
Wenn kein commit mehr kommt, speichert auch der Server die Daten nicht.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 21. Mai 2014, 12:07
Meiner Meinung nach ist das ein Problem des Programmieres.
Wenn er nach jedem Datenhäppchen ein commit abschickt, ist es sicherer als wenn erst einmal gesammelt wird und dann irgendwann das MB DB-Futter losgeschickt wird.

Dieses Risiko besteht allerdings sowohl bei embedded als auch bei Server-DBs.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 21. Mai 2014, 19:51
Hallo,

danke für Ihre Meinungen.

Ich meine in der Tat das (auch ungewollte) Beenden der eigenen Anwendung.
Stürzt die Anwendung ab und der (nicht embedded) Server schreibt noch was, OK,
habe ich eine embedded DB, kann es doch sein, dass die DB beschädigt wird ?.

Es geht also nicht um Datenverlust wegen fehlendem Commit,
sondern um beschädigte DB's.


Heiko
Heiko
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 22. Mai 2014, 00:13
Das Verhalten einer Delphi-Anwendung, die auf eine servergesteuerte Firebird-Datenbank zugreift, ist absolut identisch mit dem Verhalten bei Zugriff auf dieselbe DB im Embedded-Modus. Ich entwickle seit Jahren Firebird-DB-Anwendungen und hatte in dieser Zeit keinen einzigen Datenbank-Fehler durch Programmabstürze. Falls das doch einmal geschehen sollte, bin ich dennoch immer auf der sicheren Seite, da meine Client-Anwendungen größtenteils dazu fähig sind, DB-Backups zu erstellen: beim Start, beim Programmende oder sonstwo dazwischen. Alle meine Anwendungen werden bereits beim Projektbeginn so konzipiert, daß sie wahlweise als Server- oder Embedded-Variante einsetzbar sind. Dazu verwende ich die Parameterliste:

1. Variante: Wird eine kompilierte Firebird-DB-Anwendung ohne jeglichen Parameter gestartet, sucht sie beim Programmstart erst nach der Embedded-DLL (die ich stets fbclientE.dll nenne) und dann nach der benötigten Datenbank im Programmordner, der in diesem Fall ein beschreibbarer Ordner sein sollte.

2. Variante: Steht in der Parameterliste "0 F:\Datenbanken" (Aufruf der Exe: MeinProgramm.exe 0 F:\Datenbanken), wird ebenfalls die Embedded-DLL im Programmordner verwendet und er sucht im angegebenen Pfad nach der Datenbank.

3. Variante: steht in der Parameterliste "1 F:\Datenbanken", geht das Programm von einem installierten Firebird-Server aus, sucht im Windows-Verzeichnis nach der "normalen" Firebird-Library fbclient.dll. Wird diese nicht gefunden, sucht das Programm aus der Registry den Installationsordner des Firebird-Servers und nimmt die dortige DLL. Wird das auch nicht gefunden ... usw. Danach, wenn eine Firebird-Server-Installation und die DLL gefunden wurden, sucht das Programm im angegebenen Ordner nach der Datenbank. Wird diese nicht gefunden, sucht er im Programmordner danach. Wird sie dort auch nicht gefunden, bricht das Programm mit einer Fehlermeldung ab.

Eine 4. Variante wäre dann z.B. der Zugriff auf einen Remote-Server.

Anmerkung: Auch Anwendungen, die später ausschließlich im Embedded-Modus laufen sollen, entwickle ich gerne im Server-Modus. Der Grund war anfangs, daß die Embedded-Variante früherer Versionen keinen Multiuser-Zugriff gestattete und ich ständig vor dem Starten in der IDE die Datenbankverbindung im DB-Manager (bei mir: IbExpert) trennen mußte, weil sonst die DB-Verbindung meiner Anwendung nicht zustande kam. Heute mach ich das noch immer so, damit im Falle eines Falles auch immer alle Varianten zur Verfügung stehen.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 22. Mai 2014, 06:34
Hallo Perlsau,

das klingt doch schon mal ganz gut!
Backups machen wir natürlich auch (gugg an, beim Start und Ende wie wir ).

Bei uns benutzen wir die embedded DB beim Kunden eigentlich nur, wenn es unbedingt notwendig ist.

Bsp:
Ein fremdes Programm benutzt eine andere DB-Version oder rückt das sysdba-Passwort nicht raus,
um unseren eigenen User anzulegen.
Normalerweise umgehen wir das dann über "fbserver -a -p 3051".
Manchmal klappt aber ach das nicht.


Heiko
Heiko
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#10

AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 22. Mai 2014, 06:43
Ohne FB genau zu kennen: Ein RDMBS, das beim Schreiben die DB zerballern könnte, ist ein ziemlich schlecht geschriebenes. MySQL hat wohl mit der freien Storage-Engine so einen Bock abgeschossen, aber sonst sollte sich das ziemlich gut kontrollieren lassen. Denn schließlich stürtzt das OS ja nicht ab, das die Schreibvorgänge kontrolliert.

Das ist natürlich nur Theorie. Der IBExpert sollte das aber genau wissen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz