Hi Carsten,

this is what I'm doing right now:

Client side:
I have a RenderChannel fc for each connected server. The RenderChannel knows if 
it is connected and what its channel number is. 
If someone decides to disconnect one RenderChannel, the appropriate fc is 
marked as disconneted (simple boolean field) and pushed into a local list of 
the client.
After next sync is finished all RenderChannels in this list will be 
disconnected from the group connection of the client by calling 
GroupConnection::disconnect(Channel c).

Server side:
Each server knows about the RenderChannel fc that represents the server on the 
client side. After each sync the server checks whether the RenderChannel was 
marked as disconnected. Once noticed I call ClusterServer::stop() and return 
from the render loop.

Problems:
1.) The cluster server stucks inside the stop() call while trying to delete the 
RemoteAspect. Seems that there arises some infinte loop in the destructor.

2.) After disconnecting the server, the client renders correct for some 
seconds, then the following exception is thrown:

FATAL: Writer Proc crashed SocketLib: select() 10022 WSAEINVAL

The error seems to arise in SocketSelection::select() and seems to be catched 
in GroupMCastConnection::sendQueueThread()

After that point rendering stops on client side, seems to be another deadlock 
situation.

Any ideas? I'm kind of confused by the network stuff :-(

Thanks,
Michael

-------- Original-Nachricht --------
> Datum: Sat, 03 Sep 2011 13:28:16 -0500
> Von: Carsten Neumann <carsten_neum...@gmx.net>
> An: opensg-users@lists.sourceforge.net
> Betreff: Re: [Opensg-users] OpenSG1.8 -       Disconnecting   ClusterWindow   
> and     ClusterServer

>       Hello Michael,
> 
> On 09/02/2011 05:07 AM, Michael Raab wrote:
> > ok. But beside the problem of passing the information (the shutdown
> command) from client to server, what is the best (or a stable) way for closing
> the connection between those two in a clean way on both sides. Of course
> without interfering all other connected servers.
> 
> hmm, I'm assuming you can coordinate the shutdown command with the sync, 
> so the server does not shut down in the middle of a sync. Then it should 
> mostly be a matter of removing the server from ClusterWindow's 
> GroupConnections (see below). Depending on what information your custom 
> window keeps about the connected servers you may have to recalculate 
> that of course, since now there is one server less.
> 
> > Unfortunately I'm not that familiar with the OpenSG1.8 network
> communication classes. :-(
> 
> neither am I...
> but there is GroupConnection::disconnect(Channel c) to remove a remote 
> point from a GroupConnection, which should do what you are looking for.
> 
>       Cheers,
>               Carsten
> 
> ------------------------------------------------------------------------------
> Special Offer -- Download ArcSight Logger for FREE!
> Finally, a world-class log management solution at an even better 
> price-free! And you'll get a free "Love Thy Logs" t-shirt when you
> download Logger. Secure your free ArcSight Logger TODAY!
> http://p.sf.net/sfu/arcsisghtdev2dev
> _______________________________________________
> Opensg-users mailing list
> Opensg-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/opensg-users

-- 
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de

------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to