Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Netzwerkabbrüche oder Programm schließt sich einfach (https://www.delphipraxis.net/196937-netzwerkabbrueche-oder-programm-schliesst-sich-einfach.html)

Matthias LE 2. Jul 2018 11:52

Netzwerkabbrüche oder Programm schließt sich einfach
 
Hallo liebe Community,

weiß kein Rat. Habe mehrere Anwendungen in Lazarus geschrieben. Mein Problem ist, sobald ich diese Tools auf ein Laufwerk im Netzwerk lege und von dort aus auf den Clients verknüpfe (also die Anwendungs.exe) habe ich das Problem, das es öfters mal vorkommt das sich das Programm einfach so schließt.

Woran kann das liegen bzw. wie kann man sowas abfangen?

Danke im voraus.
Matthias

KodeZwerg 2. Jul 2018 11:57

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Falls Lazarus auch PEFlags setzen kann, Versuche das hier in deiner .dpr Datei einzufügen:
Delphi-Quellcode:
//0x0400 IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP If the image is on removable media, copy and run from the swap file.
//0x0800 IMAGE_FILE_NET_RUN_FROM_SWAP If the image is on the network, copy and run from the swap file.
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}

Matthias LE 2. Jul 2018 12:02

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Vielen Dank KodeZwerg

muss gestehen, das ich scheinbar nicht genug Ahnung habe um das umzusetzen was du als Lösung geschrieben hast. :-D 8-)

KodeZwerg 2. Jul 2018 12:10

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Ich bin ungeeignet um eine Antwort zu geben die sich auf Lazarus beschränkt aber in Delphi Worten erkläre ich es Dir gerne.
Delphi-Quellcode:
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
ist eine Direktive.
Eine Anweisung an den Compiler etwas spezielles in die .exe Datei zu schreiben.
Dieses spezielle ist in diesem Fall IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP und IMAGE_FILE_NET_RUN_FROM_SWAP.
Das Bewirkt das die .exe Datei beim start voll in den Speicher geladen wird, das sollte Abstürze über Netzlaufwerke verhindern.

Die .dpr Datei ist in Delphi die Projekt-Datei mit der alles beginnt.

Ich hoffe es ist verständlich.

Matthias LE 2. Jul 2018 12:21

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
bei Lazarus müsste das dann die .lpr sein, würde ich sagen. Kann ich das direkt in die Datei schreiben?

program project1;

{$mode objfpc}{$H+}

uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, datetimectrls, printer4lazarus, Unit1, Unit2, Unit3, Unit4, Unit5,
Unit6, Unit7, Unit8, Unit9, Unit10, Unit11, Unit12, Unit13, Unit14
{ you can add units after this };

{$R *.res}

begin
RequireDerivedFormResource := True;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.CreateForm(TForm8, Form8);
Application.CreateForm(TForm9, Form9);
Application.CreateForm(TForm10, Form10);
Application.CreateForm(TForm11, Form11);
Application.CreateForm(TForm12, Form12);
Application.CreateForm(TForm13, Form13);
Application.CreateForm(TForm14, Form14);
Application.Run;
end.

KodeZwerg 2. Jul 2018 12:26

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Das ist schonmal die korrekte Datei! Es kann sein das Du bei uses noch "Windows" einbinden musst für die deklaration der Flags, ansonsten passt es so.
Delphi-Quellcode:
...

uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, datetimectrls, printer4lazarus, Unit1, Unit2, Unit3, Unit4, Unit5,
Unit6, Unit7, Unit8, Unit9, Unit10, Unit11, Unit12, Unit13, Unit14
{ you can add units after this };

{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}

...

edit
Beim zweiten mal raufschauen was Du da in uses lädst, ist Dein Ziel-System Windows?
Mein tipp gilt nur für Windows Anwendungen!

Matthias LE 2. Jul 2018 12:35

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Fehlermeldung - {$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP} project1.lpr(19,2) Error: Identifier not found "IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP"

Nutze ich nur {$SetPEFlags} kompiliert Lazarus erfolgreich.

KodeZwerg 2. Jul 2018 12:40

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Es ist nicht ratsam aber man kann es auch so machen:
Delphi-Quellcode:
{$SetPEFlags $400 or $800}
Das gilt nur für Windows-Anwendungen!

Matthias LE 2. Jul 2018 12:50

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
es funktioniert. :-D Ab jetzt beobachten wie sich die Programme so verhalten im Netzwerk.

Vielen Dank bis hierher. Ich melde mich, falls es noch nicht reicht. 8-)

Edit: ich lasse das Topic hier noch offen

KodeZwerg 2. Jul 2018 13:00

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Da ich noch keine Antwort auf meine Frage ob Ziel-System Windows ist habe ich hier eine Limitation dafür eingebaut.
Ich würde es vielleicht so machen:
Delphi-Quellcode:
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
{$IFDEF Windows}
Windows,
{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, datetimectrls, printer4lazarus, Unit1, Unit2, Unit3, Unit4, Unit5,
Unit6, Unit7, Unit8, Unit9, Unit10, Unit11, Unit12, Unit13, Unit14
{ you can add units after this };

{$IFDEF Windows}
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
{$ENDIF}
So wäre es vielleicht die sicherere Methode? Entscheide Du!

Matthias LE 2. Jul 2018 13:07

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Sorry - Ja der Server und die Clients sind alles Windows Maschinen

-habe es nochmal mit deinem letzten Beitrag versucht, da kommt aber wieder die Fehlermeldung "project1.lpr(21,2) Error: Identifier not found "IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP""


Code >>>

program project1;

{$mode objfpc}{$H+}

uses

{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}

{$IFDEF Windows}
Windows,
{$ENDIF}

Interfaces, // this includes the LCL widgetset
Forms, datetimectrls, printer4lazarus, Unit1, Unit2, Unit3, Unit4, Unit5,
Unit6, Unit7, Unit8, Unit9, Unit10, Unit11, Unit12, Unit13, Unit14
{ you can add units after this };

{$IFDEF Windows}
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
{$ENDIF}


{$R *.res}


begin
RequireDerivedFormResource := True;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.CreateForm(TForm8, Form8);
Application.CreateForm(TForm9, Form9);
Application.CreateForm(TForm10, Form10);
Application.CreateForm(TForm11, Form11);
Application.CreateForm(TForm12, Form12);
Application.CreateForm(TForm13, Form13);
Application.CreateForm(TForm14, Form14);
Application.Run;
end.

KodeZwerg 2. Jul 2018 13:19

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Dann fehlen Deiner "Windows.pas" diese Deklarationen oder in Lazarus ist das woanders abgelegt, da bin ich überfragt.
Hier ist die uses wieder bereinigt und die PE-Flags werden nur gesetzt wenn ein Windows Kompilat entsteht.
Ich empfehle Dir mal nach IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP in zusammenhang mit Lazarus zu Suchen, das ist keine so abnormale Konstante.
Delphi-Quellcode:
uses

{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
{$IFDEF Windows}
//Windows,
{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, datetimectrls, printer4lazarus, Unit1, Unit2, Unit3, Unit4, Unit5,
Unit6, Unit7, Unit8, Unit9, Unit10, Unit11, Unit12, Unit13, Unit14
{ you can add units after this };

{$IFDEF Windows}
const
  IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP      = $0400; { If Image is on removable media, copy and run from the swap file. }
  IMAGE_FILE_NET_RUN_FROM_SWAP            = $0800; { If Image is on Net, copy and run from the swap file. }

{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
{$ENDIF}


{$R *.res}

Matthias LE 2. Jul 2018 13:32

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Großes Lob an dich!! So funktioniert es ohne Fehlermeldungen.

KodeZwerg 2. Jul 2018 13:53

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Da Du noch Neu bist mit Programmieren verrate ich Dir auch Warum :)
Ich zerpflücke mal Dein Text und kommentiere hier und da
Delphi-Quellcode:
uses // <- Wir fangen an Units einzubinden die hier gebraucht werden

{$IFDEF UNIX} // <- Wenn Wir Unix verwenden Bedingung
  {$IFDEF UseCThreads} // <- Wenn Wir UseCThreads verwenden Bedingung
    cthreads, // <- treffen beide Bedingungen zu, lade diese Datei und stelle Inhalt zur Verfügung
  {$ENDIF} // das schließt die letzte $IFDEF Bedingung
{$ENDIF} // das schließt die letzte $IFDEF Bedingung

{$IFDEF Windows} // <- Wenn Wir Windows verwenden Bedinung
// Hier sollten alle Units rein die man unter Windows benötigt
//  Windows,
// Da bei Dir "Windows.pas" nicht die Flags enthält brauchen Wir "Windows.pas" auch nicht zu laden
// mit zwei schrägen Strichen am Anfang kann man übrigens Kommentare im Source hinterlassen
// oder wie hier getan die Anweisung "Windows," damit rauskommentiert.
{$ENDIF} // das schließt die letzte $IFDEF Bedingung

...

{$IFDEF Windows} // <- Wenn Wir Windows verwenden Bedinung
const // const Werte sind feste Werte, alles was man hier deklariert bleibt im Normalfall so wie es ist
  IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = $0400; { If Image is on removable media, copy and run from the swap file. }
  IMAGE_FILE_NET_RUN_FROM_SWAP = $0800; { If Image is on Net, copy and run from the swap file. }

// Da Deinem Lazarus die Deklaration IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP und IMAGE_FILE_NET_RUN_FROM_SWAP fehlten
// haben Wir die auf diese Weise selbst hinzugefügt

// Deswegen klappt letztendlich auch das Integrieren dieser speziellen Flags
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
{$ENDIF} // das schließt die letzte $IFDEF Bedingung

Matthias LE 2. Jul 2018 14:17

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Das nenne ich ja mal eine ausführliche Erklärung. DANKE

Gehen wir mal zurück zum Anfang. Was mich da interessiert ist, wenn wir all diese Anweisungen nicht in den Sourcecode hinterlegen (wie am Anfang geschehen) wie oder was wird denn da überhaupt geladen? (nur ein Teil des Programmes )

KodeZwerg 2. Jul 2018 14:31

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Ohne diese Flags lädt Windows Deine .exe nur bei Bedarf in Speicher, was bei Netzlaufwerken oder CDRoms Fehler verursachen kann.
Beispiel man startet eine Datei von einem Usb-Laufwerk, wenn man das Usb-Laufwerk rauszieht stürzt früher oder später das Programm ab weil es an entsprechender Stelle keine Daten mehr findet.
Mit diesen Flags gesetzt lädt Windows die Datei komplett in den Speicher was zur Folge hat das ein trennen des Laufwerks nicht gleich die Applikation crashen lässt da die Daten nun aus dem Speicher geholt werden.

Dein Problem kann natürlich auch an völlig anderer Stelle sein, das hier wäre nur eine generelle Empfehlung für .exen die nicht Lokal vorliegen.

Matthias LE 2. Jul 2018 14:36

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Super Sache. Ich werde es in Zukunft mit beachten. Danke nochmal an dieser Stelle an dich. :thumb:

KodeZwerg 2. Jul 2018 14:45

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Ja gern geschehen. Wenn es das schon war, wars ja einfach:P
Teste mal ausgiebig, bei weiteren Fehlern muss man sich den Code anschauen, aber wenn ich schon unit1, unit2, unit3 usw. Lese ahne ich schlimmes ^_^

Ps: Der Text-Editor von diesem Forum für Nachrichten hat als Knopf ein Delphi-Symbol, wenn Du wieder Code hier zeigst drücke vorher auf den Knopf und schreibe Deinen Code zwischen die [ Delphi]...Dein Code...[ /Delphi]. Dann liest es sich einfacher und formatierung bleibt ein wenig bei.

Matthias LE 2. Jul 2018 19:33

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Oha... :shock: , das mit den Units würde ich gerne mal näher erläutert haben. Erstellt doch Lazarus diese Units mit jedem neuen Formular von alleine. Das Thema passt aber leider nicht zu diesem Thread.

KodeZwerg 2. Jul 2018 21:03

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Meine schlimme Vorahnung hast Du ja bereits mit "Erstellt doch Lazarus diese Units mit jedem neuen Formular von alleine." bewahrheitet.
Es ist ratsam jedes Element Sinnvoll zu benennen, wenn Du in 5 Jahren noch Spass an Lazarus hast und Deinen alten Code rausbuddelst möchtest Du bestimmt nicht erst Tagelang checken "ach was ist Unit666; ist CheckBox666 für Button666 zuständig; wie lautet der Name im allgemeinen". Das hilft Dir selbst und ist für jeden der damit zu tun hat einfach leserlicher. Ein wenig Struktur kann nie Schaden.
Nun brauchst Du dafür keinen neuen Thread erstellen, nur im Hinterkopf behalten das Standardnamen doof sind :-]
Wenn man es sich gleich "gut" angwöhnt schadet es nach hinten hin nie.

Matthias LE 2. Jul 2018 21:32

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Stimmt :-D das ist mir schon öfters mal aufgefallen. (gerade wenn man nach Wochen mal wieder in den Code schaut) Da muss ich mich noch mehr anstrengen um gleich die richtigen Bezeichner zu verwenden. Danke für den Tipp.

TigerLilly 3. Jul 2018 06:39

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Eine Ergänzung noch. Du hast jetzt das Symptom bekämpft, aber nicht die Ursache. Ein Netzlaufwerk, das sich "mal abhängt" ist natürlich nicht ok . Wenn dein Programm andere Dateien benötigt (Templates, Einstellungen, INIs ..), dann sind die dann ja auch nicht verfügbar.

Vielleicht magst du das mitbedenken.

Matthias LE 3. Jul 2018 07:21

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Hi TigerLilly, yes ich habe einige Verbindungen (zb Ini, SQL..) Hast du da einige Tipps für mich?

KodeZwerg 3. Jul 2018 07:30

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Ini kannst Du in System-Registrierung auslagern, DB Dateien könnte man in den Windows-Temp verlagern.
Generell bei Lese- Schreibzugriffe egal welcher Art immer vorher testen ob das Ziel gültig ist bevor man drauf losgeht.

Schokohase 3. Jul 2018 07:36

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Zitat:

Zitat von KodeZwerg (Beitrag 1406399)
DB Dateien könnte man in den Windows-Temp verlagern.

Genau, und dann schreibt man ein paar Daten und wundert sich, warum der Rest der Kollegen diese Information nicht hat, obwohl die Dateien bei denen doch auch im Windows-Temp liegt. Sehr seltsam

TigerLilly 3. Jul 2018 07:37

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Netzwerkverbindungen zu debuggen ist sehr mühsam, weil so viele Komponenten im Spiel sind: Kabel/WLAN, Router, Hubs, Netzwerkkarten, Serverhardware. Ganz übel ist es, wenn die Probleme nicht dauerhaft sind. zB Wackelkontakt im Netzwerkkabelstecker.

Ich würde damit beginnen, mir in den Rechnern die Logs anzusehen, ob da was drinsteht, ob ein Muster zu erkennen ist. dann würde ich einen Monitor aufsetzen, der die Verbindungen monitored. Und dann kommt das Durchmessen der Kabel und tauschen der Komponenten.

Aber das hängt natürlich immer sehr von deiner IT Landschaft ab, was du da hast.

Vielleicht hat es auch nur mit der Netzwerklast zu tun, dass das Nachladen der EXE zu lange dauert, vielleicht gibt es da ein Timeout, das weiß ich aber nicht, ob das sein kann.

Matthias LE 3. Jul 2018 07:42

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Das mit den Ini und System-Registrierung habe ich nicht verstanden (Wissensmangel) , bei den SQL Abfragen vorher also immer erst die Connection prüfen. OK.

Was mir aber auch mal aufgefallen ist, das ist selten der Zufall aber wenn zwei Personen gleichzeitig auf eine Datenbank zugreifen - hat einer Pech da Datenbank gerade geöffnet von dem anderen. Ist es möglich das mehrere Personen im selben Moment darauf zugreifen können und gleichzeitig hineinschreiben können.:?

KodeZwerg 3. Jul 2018 07:46

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Zitat:

Zitat von Schokohase (Beitrag 1406400)
Zitat:

Zitat von KodeZwerg (Beitrag 1406399)
DB Dateien könnte man in den Windows-Temp verlagern.

Genau, und dann schreibt man ein paar Daten und wundert sich, warum der Rest der Kollegen diese Information nicht hat, obwohl die Dateien bei denen doch auch im Windows-Temp liegt. Sehr seltsam

Gut das das erwähnt wird, ist Dein Programm Multi-User oder Single-User? Sowas muss man halt berücksichtigen weswegen ich "könnte" schrieb und nicht "sollte".

Matthias LE 3. Jul 2018 07:49

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Danke für die Tipps

Zitat:

Zitat von TigerLilly (Beitrag 1406401)
Netzwerkverbindungen zu debuggen ist sehr mühsam, weil so viele Komponenten im Spiel sind: Kabel/WLAN, Router, Hubs, Netzwerkkarten, Serverhardware. Ganz übel ist es, wenn die Probleme nicht dauerhaft sind. zB Wackelkontakt im Netzwerkkabelstecker.

Ich würde damit beginnen, mir in den Rechnern die Logs anzusehen, ob da was drinsteht, ob ein Muster zu erkennen ist. dann würde ich einen Monitor aufsetzen, der die Verbindungen monitored. Und dann kommt das Durchmessen der Kabel und tauschen der Komponenten.

Aber das hängt natürlich immer sehr von deiner IT Landschaft ab, was du da hast.

Vielleicht hat es auch nur mit der Netzwerklast zu tun, dass das Nachladen der EXE zu lange dauert, vielleicht gibt es da ein Timeout, das weiß ich aber nicht, ob das sein kann.


Matthias LE 3. Jul 2018 07:51

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Multi-User , verschiedene User greifen auf dieselben Datenbanken zu. (warum dann die Windows Temp , die ist doch lokal?)

KodeZwerg 3. Jul 2018 08:14

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Für Lazarus und System-Registrierung habe ich hier eine Beispiel-Datei für Datei-Verknüpfungen gefunden, das sieht auf den ersten Blick kompliziert aus, aber wenn man es auseinanderpflückt, der Reihe nach, und das in eine eigene Prozedur auslagert, sollte das mit der .ini Datei erledigt sein.
Oder wenn das zu Kompliziert ist vielleicht diese Komponente installieren die extra für Lazarus Entwickelt wurde, ich kann wegen Delphi leider weder das eine noch das andere testen, aber helfe Dir gerne damit weiter, im schlimmsten Fall per native-Api, aber das wird umfangreich was ich hoffe zu vermeiden.
Ja ne, bei Multi-User natürlich DB da lassen wo sie ist und Code für Multi-User Zugriffe anpassen bzw hör auf TigerLilly!

p80286 3. Jul 2018 10:45

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Wenn die .INI auf dem Server liegt, dann steht sie allen Benutzern zur Verfügung.
Ob ein normaler Nutzer an die Registry des Servers heran kommt möchte ich erst einmal bezweifeln. Zum anderen sollte es unwichtig sein welches OS der Fileserver hat.

Gruß
K-H

Matthias LE 6. Jul 2018 07:35

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Nun ja... leider immer noch dasselbe Phänomen. Programm schließt sich einfach ohne irgendeine Fehlermeldung mitten im Betrieb.

Testlauf wie folgt

1) Programm lokal auf Rechner gestartet - läuft stundenlang ohne Abbrüche
2) Programm vom Netzwerk aus gestartet - Abbruch der Anwendung ohne Fehlermeldung (es gibt keinen festen Rhythmus wann es passiert)

Weiß jemand noch Rat? :pale:

TiGü 6. Jul 2018 07:57

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Zitat:

Zitat von Matthias LE (Beitrag 1406660)
2) Programm vom Netzwerk aus gestartet - Abbruch der Anwendung ohne Fehlermeldung (es gibt keinen festen Rhythmus wann es passiert)

Weiß jemand noch Rat? :pale:

In der Windows-Ereignisanzeige (Event Log) steht nichts?

p80286 6. Jul 2018 08:20

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Ok nochmal zurück auf Anfang.

Zitat:

Zitat von Matthias LE (Beitrag 1406304)
Habe mehrere Anwendungen in Lazarus geschrieben. Mein Problem ist, sobald ich diese Tools auf ein Laufwerk im Netzwerk lege und von dort aus auf den Clients verknüpfe (also die Anwendungs.exe) habe ich das Problem, das es öfters mal vorkommt das sich das Programm einfach so schließt.

Wie muß ich mir das konkret vorstellen?
Vor allem wie hast Du "dort aus auf den Clients verknüpfe" realisiert?
Wenn das fehlschlägt, warum gibst Du keine Fehlermeldung aus?

Und pep doch Dein Programm mit einem Ablauflog auf. Dann solltest Du die Fehlerstelle zumindest eingrenzen können.

Gruß
K-H

TigerLilly 6. Jul 2018 08:55

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
Versuch zu klären:
- ein Virenscanner killt die Software
- die Netzwerkverbindung wird unterbrochen
- die Zuordnung des Laufwerksbuchstaben wird geändert

Du solltest aber auch diese Fragen versuchen zu klären + was dagegen tun:
- Warum bekommst du von deiner Software keine Fehlermeldung?
- Warum weißt du nicht, an welcher Stelle das passiert?

Abhilfe:
- Ablaufverfolgung mit einem detailliertem Log
- Monitoren von Netzwerk + allem, was die Software braucht

Probier es mit einem Workaround, wenn der Kunde schon tobt:
- Mach anstelle des Programmaufrufs einen Batchjob, der die EXE nach lokal kopiert + starte sie dann.

MichaelT 6. Jul 2018 14:04

AW: Netzwerkabbrüche oder Programm schließt sich einfach
 
64bit DLLs?

DB Client libraries können schon troubles machen, da die in der Regel in purem C implementiert sind und damit keine Exception handeln. Bist du dir sicher, dass du die selben Client DLLs ziehst, wenn du die Applikation übers Netz startest?


Zitat:

Zitat von Matthias LE (Beitrag 1406304)
Hallo liebe Community,

weiß kein Rat. Habe mehrere Anwendungen in Lazarus geschrieben. Mein Problem ist, sobald ich diese Tools auf ein Laufwerk im Netzwerk lege und von dort aus auf den Clients verknüpfe (also die Anwendungs.exe) habe ich das Problem, das es öfters mal vorkommt das sich das Programm einfach so schließt.

Woran kann das liegen bzw. wie kann man sowas abfangen?

Danke im voraus.
Matthias



Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 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