AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

externe Exception c0000006

Ein Thema von UntoterGeist · begonnen am 18. Sep 2019 · letzter Beitrag vom 30. Sep 2019
Antwort Antwort
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#1

AW: externe Exception c0000006

  Alt 19. Sep 2019, 06:18
Einfache & pragmatische Lösung:
- mache eben wie "gewollt" das Programm ohne besondere PE Flags
- binde die EXE als Resource in ein zusätzliches kleines "FullfileLoaderProgramm" ein
- kopiere also im Loaderprogramm einfach nur 1x die Resource in z.B. das lokale "ProgrammData" Verzeichnis, starte die EXE dort "lokal" via ShellExecute und beende das Loaderprogramm

So startet dein Chef bei ja aktivem Netzwerk problemlos das "LoaderProgramm", es lädt wegen Zugriff auf die riesige Resource definitiv 1x komplett vom Netzwerk auf den PC(wie er ja unbedingt will) und ab da läuft es dann wie er ja auch will lokal...

=> Chefe hat seinen Willen und Programm funktioniert
So einfach wird es nicht sein. Die Kollegen scheinen sich ja sehr genau anzuschaun was da innerhalb des Programms getrieben wird. So wie die ticken, wird ein solches Vorgehen als ein weiterer Beleg für die Unfähigkeit des Programmierers gewertet dieses Problem in den Griff zu bekommen. Schon das Setzen des PE-Flags wird ja als Workaround gewertet. Die Gegenfrage ist doch eigentlich, weshalb gibt es dieses Flag überhaupt, wenn es doch nicht notwendig ist.

Kennt jemand vielleicht ein Tool, dass so eine Art Speicherauszug erzeugt. Es wäre ja schön, wenn man zeigen könnte, welche Teile des Programms tatsächlich im RAM liegen und welche Teile sich nur auf dem Netzwerklaufwerk befinden und bei Bedarf von dort nachgeladen werden.

Alternativ würde ich versuchen das Fehlerbild mit einem aufwändigen Versuchsaufbau zu reproduzieren. Dazu ist es zunächst notwendig den Speicherort der Exe und den SQL-Server auf unterschiedlichen Netzwerkrechnern zu halten. Nun würde ich versuchen durch Trennen der Netzwerkverbindung des "Exe-Hosts" den Swap-Fehler zu provozieren. Wenn das möglich ist, zeigt mir das, dass der Fehler nicht dadurch hervorgerufen wird, dass die Netzwerkverbindung zum SQL-Server abbricht, sondern dass es nur etwas mit den auslagerten Teilen der ausführbaren Datei zu tun hat.
  Mit Zitat antworten Zitat
hoika

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

AW: externe Exception c0000006

  Alt 19. Sep 2019, 06:29
Hallo,
lass Deine Kollegen #2 ausgiebig durchlesen.
Und wenn Sie das nicht begreifen, komm zu uns

Das Problem ist der Server, nicht dein Programm.

Google "delphi c0000006 network"

http://devzone.advantagedatabase.com...No=101230-2385
Unten steht dort der MS-Hotfix dafür.
Heiko

Geändert von hoika (19. Sep 2019 um 06:32 Uhr)
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
669 Beiträge
 
Delphi 12 Athens
 
#3

AW: externe Exception c0000006

  Alt 19. Sep 2019, 09:09
Ich hänge mich auch noch mal kurz dran, um zu bestätigen, dass die Flags hier durchaus die richtige Lösung sind. Das hat auch nichts mit schlechter Programmierung oder mit "Missbrauch" der Auslagerungsdatei (Alter, ernsthaft?) zu tun (ob ansonsten in deinem Code irgendwas schlecht programmiert ist, können wir natürlich nicht beurteilen ), sondern ist je nach Netzwerkkonstellation einfach notwendig, wenn ein Programm direkt von einer Netzwerk-Freigabe ausgeführt werden soll.

Wir haben auch eine große Anwendung, die bei den meisten Kunden vom Netzwerklaufwerk gestartet wird und hatten früher ötfer den c000006-Fehler. Seitdem wir (seit mittlerweile sehr vielen Jahren) diese Flags benutzen, ist das nie wieder aufgetaucht.

Wenn deine Chefs/Kollegen dich die passende Lösung nicht umsetzen lassen, dann wissen die entweder mehr als wir oder es ist vielleicht wirklich Zeit für einen Wechsel.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: externe Exception c0000006

  Alt 19. Sep 2019, 09:35
Sehe ich auch so. Leider.
Nimm Dir einen Tag Urlaub und ab zu https://forentage.de/?page_id=923
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#5

AW: externe Exception c0000006

  Alt 19. Sep 2019, 09:51
Es reicht wahrscheinlich sogar ein kleiner Hintergrundthread, welcher die EXE ständig "readonly" geöffnet hält und aus lauter LangeWeile 1x pro Minute z.B. einen MD5 Hash über das komplett eingelesene EXE-File neu berechnet.
Das ist nix böses, sondern ein ganz normaler Schutz gegen so Experten, welche die Datei einer laufenden EXE umbenennen und dann ne neue Datei an den Platz der alten kopieren(denn ja, das geht teilweise).

Wenn ein File ständig "offen" ist und regelmäßig voll gelesen wird,
- dann ist es 1. von außen einigermaßen Sicher gegen umbenennen und löschen geschützt
- und es ist und bleibt 2. sicher im lokalem FileSystemCache... wenn in der EXE Große selten benutzte Resourcen stecken, dann hilft diese Methode den Zugrif hierauf zeitlich vorhersehbar zu gestalten... selbst bei großen selten benutzten Delphiformularen(welche nicht schon beim Start unsichbar erzeugt werden) hilft das.


Aber:
Ein Chef hat per Weisung halt das Recht auch fachlich sinnlose Vorgaben zu machen, nur rechtlich verbotenes darf man als Mitarbeiter verweigern.
Als Mitarbeiter muss man einfach nur immer im Rahmen der (eigenen)Möglichkeiten und (gesetzten)Grenzen die bestmögliche Lösung anstreben... oder gehen.
  Mit Zitat antworten Zitat
UntoterGeist

Registriert seit: 18. Sep 2019
25 Beiträge
 
#6

AW: externe Exception c0000006

  Alt 24. Sep 2019, 00:38
Hab mir jetzt einfach mal ein paar Tage Abstand gegönnt um gedanklich davon mal weg zu kommen. Aber selbst wenn ich diese ungültigen Objekte, die ja nicht Nil sind, irgendwie mit einer hypothetischen Methode erfragen könnte, Assigned macht das ja nicht, selbst dann würde mir das nichts nützen. Das Programm wäre in einem Fehlerzustand und müsste beendet werden. Ich würde die Fehler nur abfangen, aber so richtig drauf reagieren kann man ja nicht, wenn sogar Self des Hauptmenus ungültig ist. Was will man da machen?

Ich muss aber sagen ich programmiere erst seit 2 einhalb Jahren richtig mit Delphi. Alle Eigenheiten kann man da nicht kennen. Und das kann schon was aus machen. Kann mir aber auch nicht vorstellen, das ich fundamental so viel falsch mache, wovon wohl gerade ausgegangen wird, dass es zu so einem Fehler kommt. Der auch noch zu genüge dokumentiert ist. Ich bin jetzt auch nicht so paranoid, dass ich jede Zeile mit Assigned und sonst was absicher. Manchmal muss man ja auch darauf vertrauen, dass das was man da macht auch richtig ist. Und selbst wenn, weiß man halt auch nur wieder, dass was falsch ist. Und das muss man ohnehin ändern dann. Es ändert sich nur die Fehlermeldung.

Das letzte war, das mein Log eher Fehlerhaft ist und es da abschmiert, als das ein VLC Objekt nicht richtig funktioniert. Das mag sein, aber mit einem ungültigen Self Parameter schmiert halt alles ab. Unwichtig was es ist. Das scheint nicht angekommen zu sein. Mir fehlen scheinbar die entsprechenden Softskills, um mich in diesen unsäglichen Diskussionen durchzusetzen. Es ist ja auch nicht alles schlecht hier. Aber diese ewige Diskutiererei bis zum Tod umfallen ist mir zu viel. Und da ich sowieso weiß, dass das Wissen nur Glauben ist zu Wissen werden meine Argumente von Natur aus schwächer. Ich kann mich halt nicht in die "ich weiß es ganz genau" Hängematte legen und sagen "Das ist so". Diese Unsicherheit ist halt immer da. Und es wird ja auch bestätigt. Dinge ändern sich, so auch Windows. Ist halt kein 1990 mehr wo alles in den Ram geladen wird und man das System neu booten muss nur um Indiana Jones zu spielen. Weiß ich das? Kann mir nie sicher sein!

Aber eins weiß ich: Ich sehe das Fehlerbild und interpretiere es, nach besten Wissen und Gewissen. Und alle meine Synapsen sträuben sich wenn das ignoriert wird.

Ansonsten nochmal Danke für die vielen Antworten. Aber manche Umsetzungen gehen halt einfach nicht. Es wäre ja auch nur eine Zeile einzufügen.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: externe Exception c0000006

  Alt 24. Sep 2019, 08:06
Ich weiß ja nicht, in welcher Gegend du lebst und arbeitest, aber wenn das nun nicht gerade die hinterletzte Pampa ist, dann findest du auch einen neuen Job.
Solche Besserwisser, die nicht das Problem ergooglen können und dann dir die richtige Lösung madig machen, brauchst du nicht ertragen.

Schreib doch mal dein Gebiet ins Profil rein, vielleicht ergibt sich was.
Ein aussagekräftiges XING- und LinkedIn-Profil das für Recruiter auf "Suche Job" steht, bringt auch ein paar Zuschriften.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: externe Exception c0000006

  Alt 24. Sep 2019, 11:58
Nein! Dann liest das sein Chef und es gibt Ärger.
(Bei uns, so weit im Süden wo schon nicht alle Muttersprache deutsch haben, haben leider gerade Einstellungsstopp)
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:29 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