<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: The effect of IsOneWay on Operations</title>
	<link>http://kennyw.com/indigo/130</link>
	<description>Kenny Wolf's Thoughts of the Moment</description>
	<pubDate>Tue, 06 Jan 2009 22:27:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>

	<item>
		<title>By: New and Notable 108 : Sam Gentile's Blog</title>
		<link>http://kennyw.com/indigo/130#comment-150159</link>
		<author>New and Notable 108 : Sam Gentile's Blog</author>
		<pubDate>Thu, 04 Dec 2008 22:44:35 +0000</pubDate>
		<guid>http://kennyw.com/indigo/130#comment-150159</guid>
		<description>[...] Kennyw on the Effect of OneWay on Operations [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Kennyw on the Effect of OneWay on Operations [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kenny</title>
		<link>http://kennyw.com/indigo/130#comment-128887</link>
		<author>Kenny</author>
		<pubDate>Mon, 25 Aug 2008 16:45:29 +0000</pubDate>
		<guid>http://kennyw.com/indigo/130#comment-128887</guid>
		<description>For one-way operations, Close is a flush, but often also a no-op. I'd need a lot more details about your scenario to be able to respond with more info</description>
		<content:encoded><![CDATA[<p>For one-way operations, Close is a flush, but often also a no-op. I&#8217;d need a lot more details about your scenario to be able to respond with more info</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ngan Pham</title>
		<link>http://kennyw.com/indigo/130#comment-128573</link>
		<author>Ngan Pham</author>
		<pubDate>Sun, 24 Aug 2008 10:52:25 +0000</pubDate>
		<guid>http://kennyw.com/indigo/130#comment-128573</guid>
		<description>I have a question,

When a operation marked with IsOneWay=true, the client (web page) call:

myRemoteClass.DoTimeConsumeTasks();
myRemoteClass.Close() ==&#62; What happen? The remote instance may be end? or killed by life cycle?

Thanks!</description>
		<content:encoded><![CDATA[<p>I have a question,</p>
<p>When a operation marked with IsOneWay=true, the client (web page) call:</p>
<p>myRemoteClass.DoTimeConsumeTasks();<br />
myRemoteClass.Close() ==&gt; What happen? The remote instance may be end? or killed by life cycle?</p>
<p>Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kennyw.com &#187; Blog Archive &#187; Asynchronicity, OneWay, and WCF</title>
		<link>http://kennyw.com/indigo/130#comment-123728</link>
		<author>kennyw.com &#187; Blog Archive &#187; Asynchronicity, OneWay, and WCF</author>
		<pubDate>Thu, 07 Aug 2008 01:06:59 +0000</pubDate>
		<guid>http://kennyw.com/indigo/130#comment-123728</guid>
		<description>[...] recently encountered some confusion around the behavior of one-way operations in WCF that I&#8217;m going to try and clear up.&#160; In particular, developers are under the impression [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] recently encountered some confusion around the behavior of one-way operations in WCF that I&#8217;m going to try and clear up.&#160; In particular, developers are under the impression [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ralph</title>
		<link>http://kennyw.com/indigo/130#comment-3667</link>
		<author>Ralph</author>
		<pubDate>Sat, 29 Jul 2006 04:13:12 +0000</pubDate>
		<guid>http://kennyw.com/indigo/130#comment-3667</guid>
		<description>Avner, I'm so upset! Just kidding. Above you mention that the docs don't say this about exceptions/faults. They do! No really! But not, it must be admitted, in red. I'll see if I can pull that off in the next release:

From http://windowssdk.msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute.isoneway.aspx:

"Without waiting for an underlying response message, callers of one-way operations have no direct way to detect a failure in processing the request message. (Service applications that use stateful channels and one-way operations can detect a message delivery failure at the channel level. For details, see Reliable Sessions Overview.)"

And from Designing Service Contracts (http://windowssdk.msdn.microsoft.com/en-us/library/ms733070.aspx):

"No return message also means that there can be no SOAP fault returned to indicate any errors in processing or communication. (Communicating error information when operations are one-way operations requires a duplex message exchange pattern.)"

But I still take your point. I will make sure we get this information into your face right off. :-)

Cheers, Ralph</description>
		<content:encoded><![CDATA[<p>Avner, I&#8217;m so upset! Just kidding. Above you mention that the docs don&#8217;t say this about exceptions/faults. They do! No really! But not, it must be admitted, in red. I&#8217;ll see if I can pull that off in the next release:</p>
<p>From <a href="http://windowssdk.msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute.isoneway.aspx:" rel="nofollow">http://windowssdk.msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute.isoneway.aspx:</a></p>
<p>&#8220;Without waiting for an underlying response message, callers of one-way operations have no direct way to detect a failure in processing the request message. (Service applications that use stateful channels and one-way operations can detect a message delivery failure at the channel level. For details, see Reliable Sessions Overview.)&#8221;</p>
<p>And from Designing Service Contracts (http://windowssdk.msdn.microsoft.com/en-us/library/ms733070.aspx):</p>
<p>&#8220;No return message also means that there can be no SOAP fault returned to indicate any errors in processing or communication. (Communicating error information when operations are one-way operations requires a duplex message exchange pattern.)&#8221;</p>
<p>But I still take your point. I will make sure we get this information into your face right off. <img src='http://kennyw.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Cheers, Ralph</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WCF June/July CTP: QnA &#187; Wagalulu - Microsoft &#187; &#187; WCF June/July CTP: QnA</title>
		<link>http://kennyw.com/indigo/130#comment-3597</link>
		<author>WCF June/July CTP: QnA &#187; Wagalulu - Microsoft &#187; &#187; WCF June/July CTP: QnA</author>
		<pubDate>Thu, 27 Jul 2006 00:02:34 +0000</pubDate>
		<guid>http://kennyw.com/indigo/130#comment-3597</guid>
		<description>[...] practices for TFS Proxy &#187; Bookmark on del.icio.us We have an internal alias where people developing apps on WCF post questions. Generally we see somequestions that are commonly faced by people and thought it would be a good idea to make a quick HowTo or QnA on some topics that WCF newbie users may find useful. Q: How to know if a server channel is sessionful or not? A: Couple of ways.  &#160;&#160;&#160;&#160;&#160;&#160; OperationContext.Current.SessionId != null or&#160;&#160;&#160; OperationContext.Current.Channel.SessionId != null Q: WCF service runtime disposes off all input/output parameters once the operation is invoked. How can I cache the input arguments? A: Mark you operation implementation with OperationBehavior with AutoDisposeParameters set to false. &#160;&#160;&#160;[OperationBehavior(AutoDisposeParameters=false)] &#160;&#160;&#160;public void Foo(Message m,&#160;FooDisposableObj f) &#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;//Implementation &#160;&#160;&#160;} Q: Why is OperationContext.Current.RequestContext null? A: Because the operation is OneWay. RequestContext is not null only for request/reply. &#160; Q: Why does the first call on a newly created channel take longer to complete than subsequent calls? A: Its possible that the delay is due to AutoOpen feature. If a channel is not in Opened state when&#160;a call is made then the channel is &#8220;auto opened&#8221; for the user.&#160;Users can explicitly open a channel by doing ((IClientChannel)channel).Open(); or proxy.Open() ==&#62; If proxy is of type ClientBase &#160; Q: If a binding does not use ReliableMessaging, then is the order preserved for all async calls made on a Channel using that binding? A: Yes. Q: What&#8217;s the difference between ConcurrencyMode.Single and ConcurrencyMode.Reentrant. They seem to process only one message at any time? A: Reentrant is actually analogus to ConcurrencyMode.Single in that it will process only one message at a given time. The only difference is that the service is unblocked to process a new message when the user makes an outgoing call while processing a message. Q: If I have multiple messages/channels waiting for a throttle (Call/Session/InstanceContext), how fair is WCF to the waiters? A: First come first serve. Q: Whats the implications of using IsOneWay=true on an OperationContract? A: KennyW has a wonderful post on this at http://kennyw.com/indigo/130 Q: How do I know if the throttle limit set on the ServiceHost is too restrictive? A: Well thats a decision the customer needs to make based on the load they expect. But in test environment, enable logging and if there is too many occurances of  &#8220;The system hit the limit set for the &#8216;[One of the throttles]&#8217; throttle. Throttle value can be changed by modifying&#8230;&#8221; then it probably means that that particular throttle is too restrictive. Thats all the time I have today for this list. There is lot more that I will try to post by the end of the week. Maheshwar Jayaraman [WCF] [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] practices for TFS Proxy &raquo; Bookmark on del.icio.us We have an internal alias where people developing apps on WCF post questions. Generally we see somequestions that are commonly faced by people and thought it would be a good idea to make a quick HowTo or QnA on some topics that WCF newbie users may find useful. Q: How to know if a server channel is sessionful or not? A: Couple of ways.  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OperationContext.Current.SessionId != null or&nbsp;&nbsp;&nbsp; OperationContext.Current.Channel.SessionId != null Q: WCF service runtime disposes off all input/output parameters once the operation is invoked. How can I cache the input arguments? A: Mark you operation implementation with OperationBehavior with AutoDisposeParameters set to false. &nbsp;&nbsp;&nbsp;[OperationBehavior(AutoDisposeParameters=false)] &nbsp;&nbsp;&nbsp;public void Foo(Message m,&nbsp;FooDisposableObj f) &nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Implementation &nbsp;&nbsp;&nbsp;} Q: Why is OperationContext.Current.RequestContext null? A: Because the operation is OneWay. RequestContext is not null only for request/reply. &nbsp; Q: Why does the first call on a newly created channel take longer to complete than subsequent calls? A: Its possible that the delay is due to AutoOpen feature. If a channel is not in Opened state when&nbsp;a call is made then the channel is &#8220;auto opened&#8221; for the user.&nbsp;Users can explicitly open a channel by doing ((IClientChannel)channel).Open(); or proxy.Open() ==&gt; If proxy is of type ClientBase &nbsp; Q: If a binding does not use ReliableMessaging, then is the order preserved for all async calls made on a Channel using that binding? A: Yes. Q: What&#8217;s the difference between ConcurrencyMode.Single and ConcurrencyMode.Reentrant. They seem to process only one message at any time? A: Reentrant is actually analogus to ConcurrencyMode.Single in that it will process only one message at a given time. The only difference is that the service is unblocked to process a new message when the user makes an outgoing call while processing a message. Q: If I have multiple messages/channels waiting for a throttle (Call/Session/InstanceContext), how fair is WCF to the waiters? A: First come first serve. Q: Whats the implications of using IsOneWay=true on an OperationContract? A: KennyW has a wonderful post on this at <a href="http://kennyw.com/indigo/130" rel="nofollow">http://kennyw.com/indigo/130</a> Q: How do I know if the throttle limit set on the ServiceHost is too restrictive? A: Well thats a decision the customer needs to make based on the load they expect. But in test environment, enable logging and if there is too many occurances of  &#8220;The system hit the limit set for the &#8216;[One of the throttles]&#8217; throttle. Throttle value can be changed by modifying&#8230;&#8221; then it probably means that that particular throttle is too restrictive. Thats all the time I have today for this list. There is lot more that I will try to post by the end of the week. Maheshwar Jayaraman [WCF] [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Avner Kashtan</title>
		<link>http://kennyw.com/indigo/130#comment-2808</link>
		<author>Avner Kashtan</author>
		<pubDate>Sun, 09 Jul 2006 06:06:53 +0000</pubDate>
		<guid>http://kennyw.com/indigo/130#comment-2808</guid>
		<description>Your 3rd point is the critical one - it's not explicit in the documentation that WCF exceptions are swallowed by the stack and not propagated to the client, and this can lead to many hours of fruitless debugging trying to understand why my call succeeded while my target didn't receive any message. I think it should be written loudly and clearly, possibly in horrid colors and blinking fonts, on the front page of the documentation. :)

I find it best to set IsOneWay to false during development, even if you plan to set it to True nearer the end of the project:
http://weblogs.asp.net/avnerk/archive/2006/05/16/446673.aspx</description>
		<content:encoded><![CDATA[<p>Your 3rd point is the critical one - it&#8217;s not explicit in the documentation that WCF exceptions are swallowed by the stack and not propagated to the client, and this can lead to many hours of fruitless debugging trying to understand why my call succeeded while my target didn&#8217;t receive any message. I think it should be written loudly and clearly, possibly in horrid colors and blinking fonts, on the front page of the documentation. <img src='http://kennyw.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I find it best to set IsOneWay to false during development, even if you plan to set it to True nearer the end of the project:<br />
<a href="http://weblogs.asp.net/avnerk/archive/2006/05/16/446673.aspx" rel="nofollow">http://weblogs.asp.net/avnerk/archive/2006/05/16/446673.aspx</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Javier G. Lozano</title>
		<link>http://kennyw.com/indigo/130#comment-2767</link>
		<author>Javier G. Lozano</author>
		<pubDate>Sat, 08 Jul 2006 03:00:39 +0000</pubDate>
		<guid>http://kennyw.com/indigo/130#comment-2767</guid>
		<description>&lt;strong&gt;IsOneWay Property for WCF Operations...&lt;/strong&gt;

...</description>
		<content:encoded><![CDATA[<p><strong>IsOneWay Property for WCF Operations&#8230;</strong></p>
<p>&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sam Gentile : New and Notable 108</title>
		<link>http://kennyw.com/indigo/130#comment-2742</link>
		<author>Sam Gentile : New and Notable 108</author>
		<pubDate>Fri, 07 Jul 2006 12:16:47 +0000</pubDate>
		<guid>http://kennyw.com/indigo/130#comment-2742</guid>
		<description>[...] of OneWay on Operations &#160; Share this post: Email it! &#124; bookmark it! &#124; digg it! &#124; reddit!&#124; kick it!       Published Friday, July 07, 2006 8:00 AM by SamGentile Filed Under: Data, LINQ and OR/M, Newand Notable, WCF/Indigo [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] of OneWay on Operations &nbsp; Share this post: Email it! | bookmark it! | digg it! | reddit!| kick it!       Published Friday, July 07, 2006 8:00 AM by SamGentile Filed Under: Data, LINQ and OR/M, Newand Notable, WCF/Indigo [&#8230;]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
