Socket connection failed

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Goki
User
Beiträge: 3
Registriert: Mittwoch 29. November 2006, 16:11

Hallo Python-User,

habe folgends Problem:
Seit einem Datenbankcrash sehe ich in den Log-Files des Servers folgende Fehlermeldung:

Traceback (most recent call last):".
File ".....py", line 676, in handleConnection".
error: (11, "Resource temporarily unavailable")".
socket connection <ip-Adresse> failed.

Es sind nur 2 Clients betroffen. Mit 11 Clients funktioniert die Kommunikation einwandfrei.
Kann dies daran liegen dass zum Zeitpunkt des Crashes die 2 Clients gerade am senden waren und dies einen Datenschrott verursacht hat?

Danke für eure Hilfe.
Gruss
Goki
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo Goki, willkommen im Forum.

Um dein Probelm nachvollziehen zu können (oder auch nur verstehen) fehlen da einige Inforationen. Zum Beispeil: Was ist das für eine Datenbank? MS SQL, MySQL, PostgreSQL, SAP DB, Oracle, DB2, ZODB (ZEO)? Zweitens: was sind das für Clients?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Und falls die Verbindung die da fehlschlägt, zur Datenbank ist (was aus dem Posting IMHO nicht ganz klar wird), dann wäre es interessant zu wissen ob man von der selben Maschine "per Hand" eine Verbindung zur DB hinbekommt.

Ansonsten, so ganz allgemein kommt diese Ausnahme unter anderem, wenn man versucht etwas von einem nicht-blockierenden Socket zu lesen wo es aber (noch) nichts zu lesen gibt.
Goki
User
Beiträge: 3
Registriert: Mittwoch 29. November 2006, 16:11

Es handelt sich um eine oracle datenbank. Die Clients sind auf Selbstbedienungsgeräten installiert und sammeln dort Ereignnisse und statistische Daten. Diese Informationen werden über das Netzwerk an den Server weitergegeben. Das heisst jeder Client sendet verschiedene Daten an verschiedene Proxys des Servers. Die 2 betroffenen Clients senden auch noch alle Daten korrekt - nur eine Datenart ist betroffen.


"Ansonsten, so ganz allgemein kommt diese Ausnahme unter anderem, wenn man versucht etwas von einem nicht-blockierenden Socket zu lesen wo es aber (noch) nichts zu lesen gibt. "
--> überdieses Problem bin ich beim googeln auch gestossen. Könnte dieses Problem auch durch einen Datenbankcrash ausgelöst worden sein. Vielleicht waren die beiden betroffenen Clients gerade am senden?

Hoffe das Problem ist deutlicher geworden.
Danke für eure Hilfe
Goki
BlackJack

Es könnte am Datenbankcrash liegen oder an der Mondphase. Es sind einfach zu wenig Informationen um da etwas sagen zu können.

An welcher Stelle sollte das denn Auswirkungen haben, falls die beiden Clients gerade etwas gesendet haben? Wird irgendwo in der Datenbank Zustandsinformation über bestehende Verbindungen hinterlegt, die jetzt inkonsistent sein kann?

Was heisst "Datenart"? Kannst Du so eine Anfrage per Hand erzeugen und den Weg durch das System verfolgen?
Goki
User
Beiträge: 3
Registriert: Mittwoch 29. November 2006, 16:11

Sorry, kann nicht mehr Infos geben. Habe das Programm nicht selbst geschrieben und habe auch keine speziellen Python Kenntnisse.

Vielleicht könnt ihr mir ja einfach noch was zu der Fehlermeldung sagen?
Was ist die wahrscheinlichste Ursache. Was sind mögliche Ursachen etc.
Vielleicht kann ich das Problem dann besser eingrenzen.

Danke
BlackJack

Die häufigste Ursache wird wohl der Versuch sein, von einem nicht-blockierenden Socket zu lesen, ohne vorher sichergestellt zu haben, dass da auch wirklich Daten "anliegen".

In welcher Komponente/Modul passiert das denn? Wenn es im Datenbankmodul passiert, dann könntest Du mal schauen ob es da eine speziellere Mailingliste gibt und dort nachfragen ob die eine Idee haben, oder ob das Problem eventuell sogar schon bekannt ist.
Antworten