Bill

Four things architecturally have helped me when using UO - the first couple
may be too late but the fourth may be useful:

1. I only use UO to call subroutines. These have a common calling interface
so there is a single dispatch point in the client where I can add logging
and a despatch routine on the server where I can also add logging. It means
some constraints but they can be got round. Also, I've learned the hard way
to cut large strings being passed back - the despatch method checks the
length of the outgoing argument and has a 'more' flag set to get the rest of
it. Cutting to 32k is safest.

2. This approach also means I can use a test rig to check the subroutines
independently of the client, which can help identify issues.

3. If I need to watch stuff in real time, I have a global logger that acts
as a socket client. I can therefore send stuff to it from both the client
and the server to get a complete end to end trace, which saves a lot of time
otherwise spent trying to line up client and server logs.

4. Remember that UO.Net calls are single threaded.. so ensure you are using
lock{} structures (VB SyncLock) around your calls. .Net may have events
interfering with each other.

Brian


_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to