Toon posts:

JAVA / RMI: Observer Update JTable op clients

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dag tweakers,

Ik heb volgende probleem, ik heb een JTable waarbij zodra er iets veranderd hij een TableModelEvent.UPDATE event afvangt en de correcte update op de server genereerd.
De server kan op dat moment ook weer een Update sturen naar alle clients die op dat moment ook die table geladen hebben.

Echter hierbij heb ik het volgende probleem. Deze update zal weer een TabelModelEvent.Update geven waardoor ook deze weer de server wilt gaan update. Jullie zien het probleem al.


Nu vraag ik me af of het mogelijke is om op een bepaalde manier de table wel te laten herladen/vernieuwen zonder dat ik hierbij in de problemen kom met mijn update.event. Kan ik bv een parameter meegeven die ik dan in een If kan gebruiken.

Ik zie door de bomen het bos even niet meer :?

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 15:52

Nick_S

++?????++ Out of Cheese Error

Je kan je EventListener uitschakelen op het moment dat je van de server een update event ontvangt. Deze update verwerken en je listener weer inschakelen. (remove/addListener)

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Topicstarter
Oke tuurlijk ja. Ik moet mijn local eventlistener even remove en dan weer add _/-\o_

Ga even proberen dat daar zelf niet opgekomen ben |:( |:( |:(

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 12-02 12:22
Ik zou het niet op die manier doen.

Ik neem aan dat je voor de binnenkomende berichten een apart object hebt. Dit object kan toch prima, op het moment dat een externe update binnenkomt voor de duur van de afhandeling daarvan het verzenden van table events opschorten. Ok, dit kan je doen door de event handler eruit te halen, maar waarom niet middels een vlag of een status parameter werken?

Verwijderd

Topicstarter
The - DDD schreef op donderdag 10 augustus 2006 @ 15:38:
Ik zou het niet op die manier doen.

Ik neem aan dat je voor de binnenkomende berichten een apart object hebt. Dit object kan toch prima, op het moment dat een externe update binnenkomt voor de duur van de afhandeling daarvan het verzenden van table events opschorten. Ok, dit kan je doen door de event handler eruit te halen, maar waarom niet middels een vlag of een status parameter werken?
Wacht even ik heb dus inmiddels via het weghalen van de van de event gedaan, ook heb ik om mijn netwerk verkeer te beperken naast het attachen van de observer een propertie eraan toegevoed zodat de server al weet of het zinvol is de client van deze update op de hoogte te stellen. Zodra dit noodzakelijk is zal hij alleen die betreffende rij in de table vernieuwen.

Allen snap ik niet wat je bedoelt met ik neem aan dat je voor binnen komend bericht een apart object heb, ja ik stuur een observer naar de client, deze zit dit en roept de methode update aan in mijn classe. Deze methode gaat dan weer na de server toe om te kijken wat er verander is en voert dit uit op de client. En ja dan veranderd hij de table en dan gaat de event af.

Een vlag he ik nog nooit van gehoord wat is dat?

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 15:52

Nick_S

++?????++ Out of Cheese Error

Een vlag is over het algemeen niks meer als een boolean, die je omzet. Boolean op true, dan versturen van event naar server, boolean op false, dan niets versturen. Vlag omzetten op het moment dat je het update event van de server krijgt, vlag weer terug zetten als je klaar bent met updaten.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Wat je kun veranderen aan de applicatie op de server? Want het lijkt mij dat de server applicatie simpelweg geen update notificatie moet sturen naar de client die de wijzigingen heeft gegeneerd.

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 12-02 12:22
State bijhouden op de server moet je voorzichtig mee zijn. Ik weet niet hoe groot je omgeving is, maar zaken die op de server bijgehouden worden kunnen al snel zorgen voor beperkingen wat betreft schaalbaarheid. Ook maakt het het lastig als je dit wilt doen doormiddel van scale-out ( http://weblogs.java.net/b...6/07/scale_up_vs_sca.html )

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 11 augustus 2006 @ 12:11:
Wat je kun veranderen aan de applicatie op de server? Want het lijkt mij dat de server applicatie simpelweg geen update notificatie moet sturen naar de client die de wijzigingen heeft gegeneerd.
Nee oke maar de client luister ook op de table daar gaat het me om. Dus de client A voert een update uit hiervoor gebruikt hij de event van de table. Nu krijgt de Server de update binnen en voert deze uit daarna geeft hij een inform om Client B te wijzige, dit gebeurd ook echt nu ziet client B dat er een wijzining op de table is uitgevoerd en laat de update event afgaan. Nu probeert client B de gegevens op de server te update.

Dit heb ik nu eruit gehaald doo
r de event handler even uit te schakelen.
State bijhouden op de server moet je voorzichtig mee zijn. Ik weet niet hoe groot je omgeving is, maar zaken die op de server bijgehouden worden kunnen al snel zorgen voor beperkingen wat betreft schaalbaarheid. Ook maakt het het lastig als je dit wilt doen doormiddel van scale-out ( http://weblogs.java.net/b...6/07/scale_up_vs_sca.html )
Ja oke maar als ik dat niet op de server bij hou al die statussen, dan heb ik weer een grote observer die steeds maar over netwerk doorgeeft dat er wijzigingen zijn. Is dat toch sneller en beter dan veel statussen op de server geven?

[ Voor 26% gewijzigd door Verwijderd op 11-08-2006 14:12 ]

Pagina: 1