Solved

.NET Remoting - Help with [OneWay] calls for live data system

Posted on 2008-10-15
2
593 Views
Last Modified: 2013-12-17
Hi All,
We have a live data system which calculates and aggregates price data from various live sources, and the aggregates it and pushes it to networked clients. The information is all live, and the performance of this is critical - i.e. if a price changes on the source this must be reflected almost immediately on the clients.
At the moment, our setup is something like this (simplified of course!):
- One singleton server object, which client obtain a proxy to through remoting.
- At client startup, the client registers with the server by calling a method on the server object. The server object stores a reference to the client.
- When a data update occurs, the server calls a method on each client reference to notify it that the data has changed. This method is marked with the [OneWay] attribute, for performance reasons.

All of the above is using remoting with a binary formatter and TCP channels. However, we seem to be 'loosing' some updates, and I suspect that this might be because the [OneWay] attribute ignores and errors from the clients.
Does this sound plausible? If I remove the [OneWay] attribute, what effect can I expect this to have on performance? Or could I invoke the method on the clients asyncronously and somehow check that the call was successful?
All opinions much appreciated!
Regards,
S Armondi
0
Comment
Question by:peddle
2 Comments
 
LVL 26

Accepted Solution

by:
Anurag Thakur earned 250 total points
ID: 22719516
MSDN documentation clearly states

The OneWayAttribute is used to indicate that the method has a void return and only in parameters. The method cannot throw any exceptions, and ref parameters and return values are not supported. The method can execute synchronously or asynchronously with respect to the caller. The caller cannot make assumptions that the one-way call has executed on the server object when thread control returns.
http://msdn.microsoft.com/en-us/library/system.runtime.remoting.messaging.onewayattribute.aspx

the following article puts more light on one way calls
http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=619

i will suggest you to make Asynchronous calls to update so that you know if the updates have reached or not & if not then corrective actions can be taken
http://asp.dotnetheaven.com/howto/doc/Remoting/async.aspx
0
 
LVL 1

Author Closing Comment

by:peddle
ID: 31506277
Thank you - the last link was just what i needed.
0

Featured Post

Guide to Performance: Optimization & Monitoring

Nowadays, monitoring is a mixture of tools, systems, and codes—making it a very complex process. And with this complexity, comes variables for failure. Get DZone’s new Guide to Performance to learn how to proactively find these variables and solve them before a disruption occurs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question