Solved

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

Posted on 2008-10-15
2
588 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

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

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

IP addresses can be stored in a database in any of several ways.  These ways may vary based on the volume of the data.  I was dealing with quite a large amount of data for user authentication purpose, and needed a way to minimize the storage.   …
The object model of .Net can be overwhelming at times – so overwhelming that quite trivial tasks often take hours of research. In this case, the task at hand was to populate the datagrid from SQL Server database in Visual Studio 2008 Windows applica…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

860 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