AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

externe Exception c0000006

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

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

AW: externe Exception c0000006

  Alt 18. Sep 2019, 23:44
Tja, nun, ein Programm wird aber nicht komplett in den Speicher geladen
Das erzähl mal meinem Chef. Für ihn ist das nicht mehr als ein Hello World Programm. Und das muss ja vollständig in den RAM geladen werden. Das hat er gestern (inzwischen) noch mal deutlich gesagt Mein Kollege geht da völlig d'accord. Und der hat das studiert! Woher die Gewissheit kommt weiß ich nicht. Entschuldigt meine Abfälligkeit. Aber ich bin etwas niedergeschlagen. Das Schlimmste ist das, Dalai, dein Vorschlag funktioniert, aber dieser abgelehnt wird. Aus genannten Gründen. Inzwischen wird mir auch so auf die Tastatur geschaut, dass ich mich nicht mehr wohl fühle. Alles scheint potentiell Falsch zu sein und ich muss alles doppelt und dreimal prüfen.

Das es tausende Beiträge zu dem Thema gibt ist auch nur die Bestätigung das es so nicht sein kann. Ich glaub das ist eig. mehr ein soziales Problem. Weil ich würde die Flags einfach setzten und das eine Woche testen. Für meinen Chef ist so eine Methodik aber unprofessionell.
  Mit Zitat antworten Zitat
mensch72

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

AW: externe Exception c0000006

  Alt 19. Sep 2019, 05:02
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
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
440 Beiträge
 
#3

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
 
#4

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
672 Beiträge
 
Delphi 12 Athens
 
#5

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.518 Beiträge
 
Delphi 11 Alexandria
 
#6

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
 
#7

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
 
#8

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
sahimba

Registriert seit: 14. Nov 2011
Ort: Berlin, Hauptstadt der DDR
137 Beiträge
 
Delphi 10 Seattle Professional
 
#9

AW: externe Exception c0000006

  Alt 19. Sep 2019, 08:29
Für meinen Chef ist so eine Methodik aber unprofessionell.
Dein Chef hat keine Ahnung, verweigert sich einer Diskussion und versucht, ebenso wie Dein Kollege, sich mittels angeblicher Autorität durchzusetzen. Das ist in der Tat ein soziales Problem und ich würde nicht davon ausgehen, dasss Du das in absehbarer Zeit lösen wirst. Streck Deine Fühler nach anderen Arbeitsstellen aus.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#10

AW: externe Exception c0000006

  Alt 19. Sep 2019, 09:40
Für meinen Chef ist so eine Methodik aber unprofessionell.
Dein Chef hat keine Ahnung, verweigert sich einer Diskussion und versucht, ebenso wie Dein Kollege, sich mittels angeblicher Autorität durchzusetzen. Das ist in der Tat ein soziales Problem und ich würde nicht davon ausgehen, dasss Du das in absehbarer Zeit lösen wirst. Streck Deine Fühler nach anderen Arbeitsstellen aus.
Dem ist eigentlich sonst nichts hinzuzufügen. Mit solchen Streßfabriken sollte man sich freiwillig nicht länger als unbedingt nötig umgeben.

Es gibt dann noch einen guten Abschiedsgruß: "Wenn Du willst, daß es so gemacht wird, wie Du es willst, mach es selbst."

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:56 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