Solved

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

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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Summary Displaying images in RichTextBox is a common requirement with limited solutions available. Pasting through clipboard or embedding into RTF content only support static images.  This article describes how to insert Windows control objects int…
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

743 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now