LIBNoDave und absturz...

Zuviel Werbung?
-> Hier kostenlos registrieren
Hat noch eine andere Software auf den Netlink zugegriffen? Hintergrund: Der NetLink hat zwei IP-Verbindungen. Stürzt das Programm ab und versucht sich wieder mit dem NetLink zu verbinden, dann wird normalerweise die zweite Verbindung verwendet (zumindest beim ersten Mal ;) ). Nach einer entsprechenden Timeoutzeit (im Minutenbereich) erkennt der Netlink den Verbindungsabbruch und gibt die blockierte IP-Verbindung wieder frei. Soweit die Theorie, die auch funktioniert wenn das komplette Protokoll über FDL gefahren wird (so ist es in AGLink implementiert). Wie das Ganze aussieht wenn die im NetLink enthaltenen MPI-Funktionen verwendet werden, kann ich nicht sagen. Verwendet libnodave die MPI-Funktionen?
 
Rainer Hönle schrieb:
Verwendet libnodave die MPI-Funktionen?
So wie ich das sehe benutzt libnodave die MPI-Funktionen. In der aktuellen Version von libnodave ist eine Funktion zum Resetten des NetLink implementiert. Das funktioniert aber nur, solange man noch eine Verbindung zum NetLink aufbauen kann, also nach dem ersten Absturz, wenn noch eine Verbindung frei ist. Nach zwei Abstürzen hintereinander sind beide Verbindungen belegt, und kein Reset mehr möglich.


Gruß Axel
 
Noch ein paar Fragen...

1.) Wie heißt die Funktion zum resetten??

2.) Kann Ich auslesen wenn Ich verbunden bin, wieviel Verb. belegt sind?

3.) Wenn Ich resette, wird dann auch die gerade funktionierende Verb getrennt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
joggl schrieb:
1.) Wie heißt die Funktion zum resetten??

2.) Kann Ich auslesen wenn Ich verbunden bin, wieviel Verb. belegt sind?

3.) Wenn Ich resette, wird dann auch die gerade funktionierende Verb getrennt?
Zu 1) Weiss ich nicht
Zu 2) Nein
Zu 3) Ja, es wird nicht die Verbindung sondern der NetLink resettet.
Das resetten des NetLinks dauert 10-15 Sekunden. Danach müssen alle Verbindungen neu aufgebaut werden.
 
joggl schrieb:
1.) Wie heißt die Funktion zum resetten??
daveResetIBH

Wie von Herrn Hönle bereits erwähnt, dauert der Reset des NetLink nach Aufruf dieser Funktion ca. 10-15 Sekunden. Die Funktion wird jedoch sofort wieder beendet, d.h. im Programm muß dann eine entsprechende Pause eingebaut werden, bevor der nächste Verbindungsaufbau mit dem NetLink gestartet werden kann.


Gruß Axel
 
Jochen Kühner schrieb:
Was kann Ich tun wenn meine Software auf dem Rechner abstürtzt wärend sie mit einer steurung (netlink) verbunden war? Danach kann Ich mich mit libnodave nicht mehr Verbinden!!

Da ist die Frage: versuchst Du es sofort wieder, nach einer Wartezeit, oder gibst sich Dein Programm etwa schon geschlagen wenn's beim erstenmal nicht funktioniert ?

Ich würde so vorgehen:
Beim Verbindungsaufbau den Rückgabewert prüfen. Das machst Du ja, aber:
Bei Fehlschlag: eine angemessene Pause einlegen und dann nochmal versuchen, das ganze eventuell mehrmals.

Wie andere schon erwähnt haben, gibt der Netlink nach einer gewissen Zeit eine inaktive Verbindung wieder frei, das sollte Dir ermöglichen, wieder eine Verbindung aufzubauen. Woran der Netlink allerdings erkennt, wann keine Verbindung mehr besteht, ist mir nicht bekannt. Im Zweifelsfall würde ich eine möglichst lange Zeitspanne zwischen zwei Verbindungsversuchen nehmen, denn es ist nicht auszuschliessen, dass zwar eine IP-Verbindung zustande kommt, aber die weiteren Beteiligten im IP-Stack des Netlinks davon nichts wissen wollen. Wie auch immer: Warten bis er sich wieder gefangen hat...

Übrigens kannst Du die Reset-Funktion des Netlink nicht nutzen, denn Du hast ja keine Verbindung. Überhaupt ist mir nicht so ganz einsichtig, wozu die in diesem Zusammenhang gut sein soll, kein Siemens-CP hat sowas.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
argv_user schrieb:
Wie andere schon erwähnt haben, gibt der Netlink nach einer gewissen Zeit eine inaktive Verbindung wieder frei, das sollte Dir ermöglichen, wieder eine Verbindung aufzubauen. Woran der Netlink allerdings erkennt, wann keine Verbindung mehr besteht, ist mir nicht bekannt. Im Zweifelsfall würde ich eine möglichst lange Zeitspanne zwischen zwei Verbindungsversuchen nehmen, denn es ist nicht auszuschliessen, dass zwar eine IP-Verbindung zustande kommt, aber die weiteren Beteiligten im IP-Stack des Netlinks davon nichts wissen wollen. Wie auch immer: Warten bis er sich wieder gefangen hat...
Ich habe im Zusammenhang mit libnodave leider die Erfahrung gemacht, daß sich der NetLink nicht mehr fängt. Ob das mit libnodave nur manchmal oder immer auftritt, kann ich nicht sagen, da meine Software immer wieder versucht, die Verbindung wieder herzustellen. Ich erfahre es nur dann, wenn das über längere Zeit nicht funktioniert. Dann hilft nur noch abziehen und neu aufstecken.

argv_user schrieb:
Übrigens kannst Du die Reset-Funktion des Netlink nicht nutzen, denn Du hast ja keine Verbindung. Überhaupt ist mir nicht so ganz einsichtig, wozu die in diesem Zusammenhang gut sein soll, kein Siemens-CP hat sowas.
Eigentlich dient der Reset wohl zum Übernehmen der neuen Werte nach dem Umkonfigurieren des NetLink. Früher mußte man dafür den Netlink ziehen und wieder aufstecken, durch den Software-Reset kann man sich diese lästige Prozedur sparen. Wenn man sicher ist, das die eigene Software die einzige ist, die den NetLink verwendet, kann man den Software-Reset aber auch mißbrauchen, um eine hängengebliebene Verbindung zu löschen. Wenn bereits 2 Verbindungen hängen, dann hilft der Reset aber leider auch nichts mehr.


Gruß Axel
 
Zurück
Oben