Hallo Leute,
vll könnt Ihr mir helfen.
Wir betreiben ein kleines Access Programm ACC 2007 ( Urspünglich in Access 2003 erstellt ), welches in FE und BE aufgeteilt ist und auf
einem Citrix Server liegt.
Zur Zeit kommt es immer häufiger vor, dass Access einfach abschmiert. Es kommt nur die Meldung " Access funktioniert nicht mehr "
Auf die DB greift man aus Mannheim, Stuttgart und München zu.
Bin da etwas ratlos, da die DB vor einem halben Jahr noch einfwandfrei funktionierte.
Hat vll jemand eine Idee ?
Lg Bernie
Hallo,
es ist natürlich schwierig, bei solchen Konstellationen eine genaue Fehlerursache zu diagnostizieren.
Wenn die normalen Voraussetzungen für solchen Multi-User-Betrieb eingehalten sind(FE/BE, user-zugeordnete FEs , Zugriffsrechte auf das BE-Verzeichnis) kann es hilfreich sein, das BE in eine neue leere DB zu importieren, weil evtl. eine oder mehrere Tabellen korrumpiert sein können. Zudem ist es sinnvoll, das FE unter den gängigen Maßnahmen (Option Explicit, MDE-Datei erstellen) neu zu kompilieren und zu verteilen.
Zu den möglichen Einflüssen der Citrix-Umgebung (Updates) kann ich nicht viel sagen...
a
Hallo Franz,
hmm, das mit dem BE in eine leere DB zu importieren haben wir am Freitag gemacht.
Dennoch schmiert Acces ab
Das FE ist schon eine MDE Datei.
Ok, danke ersteinmal.
Lg Bernie
Eine Frage hierzu hätte ich noch.
Habe gerade im Netz gelesen, dass es in einer Citrix Umgebung unerlässlich ist, dass jeder User ein eigenes FE hat ?
Wie ist das zuverstehen ?
Das FE liegt auch auf dem Citrix Server.
Wie soll man das jedem User einzeln verpassen ?
Ich check nix :-)
Hallo,
ich vermute mal, dass es bei Citrix auch nicht viel anders ist als beim Windows- Terminal-Server. Insofern loggt Sich jeder User (Citrix-Client) mit seinem Namen + Passwort bei seinem Account auf dem Server an. Dieser Account sollte user-spezifische Verzeichnisse bereitstellen, in die jeweils das FE abgelegt (kopiert) wird. Wenn sich der User einloggt, hat der User Zugriff auf dieses seine FE , entweder direkt als gestartete Applikation im Remote-Fenster oder seinen "Desktop"
Hi,
ok das ist mir zu hoch.
bei uns hat jeder User lediglich eine Verknüpfung zum FE.
( das FE ist im gesicherten Zustand )
Ergo. Das FE wird von mehreren Usern genutzt
ist das flasch ?
Braucht jeder User ein "eigenes" Fe ?
Lg Bernie
ZitatBraucht jeder User ein "eigenes" Fe ?
Ja, das ist die dringende Empfehlung.
Eine Zusatzfrage wäre noch, was die Fehlerbehandlung des FE dazu vermeldet.
Der Unterschied von vor einem halben Jahr und jetzt könnte ja sein, dass jetzt die User arbeiten und nicht nur den Bildschirm anschauen ...
//OT:
ZitatIch check nix :-)
Da bist Du doch die geeignete Person für eine Fehlerdiagnose ...?!
Hi Ebs,
Dh ich leg auf dem Server für 18 Mitarbeiter jeweils einen Ordner an und da leg ich dann jeweils das gleiche FE ab ?
Die Fehlermeldung lautet. "Access konnte aufgrund eines Fehlers nicht ausgefürt werden.."
Zitat
Der Unterschied von vor einem halben Jahr und jetzt könnte ja sein, dass jetzt die User arbeiten und nicht nur den Bildschirm anschauen ...
Lustig, hilft aber nicht weiter :-)
ZitatDa bist Du doch die geeignete Person für eine Fehlerdiagnose ...?!
Vermutlich nicht. Aber unsere IT Spezialisten sind ratlos und schieben das Problem immer auf meine kleine Datenbank.
Das dumme ist nur ... in anderen NL ohne Citrix laufen die einwandfrei.
1. Frage: Jeder User bekommt sein eigenes Frontend. Tue, was dazu notwendig ist.
ZitatDie Fehlermeldung lautet. "Access konnte aufgrund eines Fehlers nicht ausgefürt werden.."
Ich meinte aber nicht irgendeine Systemmitteilung, woher auch immer.
Was meldet
Deine Anwendung? Gibt es da überhaupt eine Fehlerbehandlung mit aussagefähigen Meldungen?
"On Error Resume Next" ... verstehe ich da nicht als Fehlerbehandlung, sondern als Ignorieren von Fehlern.
Zitat
Das dumme ist nur ... in anderen NL ohne Citrix laufen die einwandfrei.
Wenn
das Deine vollständige Diagnose ist: Weg mit dem Citrix.
Ansonsten: Glück zu haben ist keine unendliche Geschichte.
Hi, das ist die einzige Meldung die kommt.
Die Datenbank selbst meldet keinen fehler
Gruss
Bernie
Solche erschöpfend umfangreichen und breit gefächerten Antworten erschlagen mich regelmäßig.
Andere Frage: Was sagt denn der Entwickler der DB zu der Situation?
Ebs, was verstehst du daran nicht ?
Access schmiert einfach ab.
Es gibt keinen Hinweis auf einen fehlerhaften Code oder eine fehlerhafte Erstellung.
Das scheint mir einfach willkürlich zuerfolgen. Mitten in der DS bearbeitung.
Und das in verschiedenen Formularen.
Access schmiert mit dieser Meldung ab : "Access konnte aufgrund eines Fehlers nicht ausgeführt werden." ..
Dann haben die User nur die Möglichkeit Access zu beenden und entweder die DB neu zustarten oder den Computer ganz runterzufahren..
Wenn sich die DB dann wieder öffnet, funktioniert sie wieder einwandfrei.
Der zuvor bearbeite DS kann ganz normal bearbeitet werden.
Es kann auch einen Tag vergehen, bis dieses Problem erneut auftritt.
Die User berichten da unterschiedlich..
Die DB ist von mir und ich hatte gehofft, dass hier vielleicht jemand einen Rat weiss.
Ich vermute, dass es mit der Citrix MS Access Umgebung zutun hat.
Weiss es aber nicht.
Hallo,
ich würde mit den IT-Admin(s) zusammen die Installations-Situation klären... Soll heißen zu untersuchen, ob der Betrieb der DB über den Citrix-Client nach den vorher genannten Richtlinien (BE in einem user-zugriffsfähigen Verzeichnis FE in einem user-spezifischen Verzeichnis liegt und dort auch aufgerufen wird, Rechteverteilung (auch für evtl. Zwischenerzeugung von DB-Dateien --> Komprimieren) ) erfolgt und wenn nicht, dieses zu korrigieren/anzupassen...
Hallo Franz,
danke für den Tip. unser IT Admin wird das nochmals komplett neu aufzeiehen und uns
für die DB ein eignes Laufwerk zur Verfügung stellen.
Dann passen wir das alles nochmals neu an.
Danke ersteinmal.
Lg Bernie
Hallo Zusammen,
so, jetzt hat jeder User ein eignes FrontEnd und das backEnd liegt jetzt sogar auf einem anderen Laufwerk.
Trotzdem immer noch das gleiche Problem.
Ich hab jetzt mehrmals getestet.
Jetzt schaut meine Vermutung wieder ganz anders aus an was es liegen könnte.
Das Problem tritt dann auf, wenn 2 User im gleichen DS sind und diesen barbeiten wollen.
USER A in Frontend A
USER B in Frontend B
Das komische ist, wenn beide USER das gleiche Frontend verwenden, dann gibt es keine Probleme.
Weiss nicht ob meine Vermutung richtig ist, aber dennoch mal die Frage, da es keine Accessmeldung wie z.b. unter ACC2003 für die Bearbeitung des gleichen DS gibt.
Wie könnte man dieses Problem verhindern ?
Lg Bernie
Ps Sorry..
2 User am gleichen Datensatz? Das muss aber verhindert werden. Verwende dazu Sperre auf Datensatzebene, also optimistische Sperrung in Recordsets und Access-Einstellungen. Diese Sperrt leider nicht nur den einen Datensatz, sondern auch einige Kluster um den Datensatz, der je nach größe und Defragmentierung in vielen Sektoren liegen kann. Ist aber die einzige Lösung die bleibt.
Wichtig ist auch dass Recordsets nicht offen bzw. zu lange offen bleiben. Verwende Transaktionen bei hintereinander ablaufender Datensatzänderungen etc. Zum Thema Optimierung gibts einiges im Netz frei verfügbar.
Andreas
Hi
Zitat von: Hondo am Februar 14, 2014, 15:10:51
Ist aber die einzige Lösung die bleibt.
Mit ein wenig VBA lässt sich auch eine exakte Datensatz-Sperre realisieren, bei der nicht unbestimmte Blöcke um einen in Bearbeitung befindlichen Datensatz gesperrt werden.
Harald
Hallo Hondo , hallo Harald,
ersteinmal danke für eure Antworten.
Habe es gefunden und so erstellt.
Funktioniert jetzt wie gewünscht.
Allerdings lag es daran auch nicht. Access schmiert immer noch ab.
Jetzt bin ich auch in Stuttgart vor Ort und habe auch eine Fehlermeldung für euch mit der Ihr bestimmt was anfangen könnt :
"Die Anweisung in 0x749772s7 verweist auf Speicher 0x00000000. Der Vorgang written konnte nicht im Speicher durchgeführt werden.
Klicken Sie auf "OK", um das Programm zu beenden.
"
Jemand eine Idee ?
Lg Bernie
Ps. Danke für eure Mühe
FAQ 1.23 - Decompile (http://www.donkarl.com/FAQ/FAQ1Grundlagen.htm#1.23)
FAQ 1.27 - Vorgehen bei defekten Datenbanken (http://www.donkarl.com/FAQ/FAQ1Grundlagen.htm#1.27)
Ich würde zuerst mal per Decompile an die Datenbank gehen.
Gruß Andreas
Hallo Andreas,
ersteinmal danke.
Decompile .. hier steht das die DB ersteinmal komprimiert wird .. was ist bei einer Netzwerkumgebung mit mehreren Usern ? Trau mich gerade nicht das auszuprobieren. :-\
Hallo,
den Schalter /decompile musst Du (in diesem Fall hier) auf das lokale FE anwenden. Dazu wird MSAccess.exe als Programm (z. B. mit einem Link oder einer Batch-Datei) in einer Befehlszeile aufgerufen und der Schalter sowie die FE-DB-Datei mit angegeben. Dabei passiert nichts mit dem BE. (so Gott will ::) )
Hi, ok nimmt er mir aber nicht .
Das hier ist der Pfad
C:\Program Files (x86)\Microsoft Office\Office12\MSACCESS.EXE" /decompile "V:\Logistikprogramm_Stg\NEU_LOGISTIK 5.0 REAL .mdb" /WRKGRP "V:\Logistikprogramm_Stg\Sicherheit.mdw"
Hi,
interpretiere ich Deine im obigen Beitrag aufgeführte Befehlszeile richtig, wonach die Arbeitsgruppendatei und das Frontend im selben Server-Verzeichnis sind?
Üblicherweise ist das Frontend in einem User-Verzeichnis (und wird dort decompliert, komprimiert oder was auch immer). Ansonsten greifen möglicherweise mehr als eine Person auf dasselbe Frontend und zerschiessen diese Datei.
Harald
Hallo Zusammen,
ich möchte mich für eure Hilfe recht herzlich bedanken.
Ich denke wir haben es langsam im Griff.
Es hat mir aber gezeigt, dass man noch sorgfälltiger über das Datenbankkonstrukt nachdenken sollte. :)
Naja bin ja kein Profi.
Also vielen Dank nochmals
Lg Bernie