uthred Geschrieben 19. November 2013 Teilen Geschrieben 19. November 2013 Hi, Ich hebe für mein Programm vorgesehen, dass mehrere andere Programme, via Soket, auf eine Datenquelle zugreifen können. Hierbei habe ich mich des Tutorials einer Multi-Connection-Soketverbindung bedient (A multi-threaded socket-based Java server) Nur dass in meinem Fall die Connection-class über eine Methode im Connectionmanager auf den Controller zugreift und sich dort die Daten holt. Mit einer Verbindung funktioniert das ganze wunderbar.... Mit mehreren Verbindungen, die alle im selben Modus laufen (Das warten auf einen veränderten Datensatz), gibt es das Problem, dass nicht alle Verbindungen die Daten bekommen. Ich habe beispielsweise fünf Verbindungen offen (Verbindung Nr 1-5), Ganz am Anfang bekommt nur Nr1 Daten, bei der ersten Änderung, bekommt dann Nr 1 & 3, bei der 2. Änderung Nr 1 & 3 & 5, usw... Ich vermute mal das es der gleichzeitige Zugriff auf die Daten ist, der synchronisiert werden muss. Ich habe die Methoden zum Daten lesen schon synchronized gemacht, das hat allerdings nicht geholfen. Ziel ist, das alle Threads die Daten (fast) gleichzeitig bekommen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
uthred Geschrieben 19. November 2013 Autor Teilen Geschrieben 19. November 2013 Hat sich erledigt ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hbspike Geschrieben 19. November 2013 Teilen Geschrieben 19. November 2013 Wie hast du es denn gelöst? Oder war es ein anderer Fehler? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
uthred Geschrieben 19. November 2013 Autor Teilen Geschrieben 19. November 2013 Es war ein anderer Fehler ^^ Ich habe mir vom Eventlistener eine flag setzen lassen und diese beim auslesen zurückgesetzt, ohne zu berücksichtigen das jeder Thread dieselbe flag sieht... Nun habe ich eine Liste mit boolischen Werten, jeder Thread bekommt einen eigenen Wert (index) zugewiesen und nachdem der Thread die Daten ausgelesen hat, setzt er die Flag zurück. Der Eventlistener setzt bei Änderung von Daten alle auf true ... Problem gelöst Nun muss die Soketverbindung nur noch mitbekommen, wenn der Client sich verabschiedet hat ... #ToDo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hbspike Geschrieben 20. November 2013 Teilen Geschrieben 20. November 2013 Timestamp mit konfigurierbarem TimeOut Timestamp + Timeout > aktueller Timestamp -> verabschiedet. Würde ich jetzt mal auf die schnelle sagen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.