<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: MsmqActivities v1.1 Released</title>
	<atom:link href="http://winterdom.com/2006/10/msmqactivitiesv11released/feed" rel="self" type="application/rss+xml" />
	<link>http://winterdom.com/2006/10/msmqactivitiesv11released</link>
	<description>by dæmons be driven</description>
	<lastBuildDate>Tue, 16 Mar 2010 06:33:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tomas Restrepo</title>
		<link>http://winterdom.com/2006/10/msmqactivitiesv11released/comment-page-1#comment-760</link>
		<dc:creator>Tomas Restrepo</dc:creator>
		<pubDate>Tue, 12 May 2009 17:25:29 +0000</pubDate>
		<guid isPermaLink="false">http://winterdom.com/2006/10/msmqactivitiesv11released#comment-760</guid>
		<description>Larry: If you look at the code, the workflow instance id is obtained in the runtime service (MsmqListenerService), in the Subscribe() method simply by using WorkflowEnvironment.WorkflowInstanceId.

The Subscribe() method is called by the MsmqReceiveActivity from its implementation of IEventActivity.Subscribe()</description>
		<content:encoded><![CDATA[<p>Larry: If you look at the code, the workflow instance id is obtained in the runtime service (MsmqListenerService), in the Subscribe() method simply by using WorkflowEnvironment.WorkflowInstanceId.</p>
<p>The Subscribe() method is called by the MsmqReceiveActivity from its implementation of IEventActivity.Subscribe()</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Larry</title>
		<link>http://winterdom.com/2006/10/msmqactivitiesv11released/comment-page-1#comment-759</link>
		<dc:creator>Larry</dc:creator>
		<pubDate>Tue, 12 May 2009 16:06:55 +0000</pubDate>
		<guid isPermaLink="false">http://winterdom.com/2006/10/msmqactivitiesv11released#comment-759</guid>
		<description>Yes, I am referring to the workflow instance ID.</description>
		<content:encoded><![CDATA[<p>Yes, I am referring to the workflow instance ID.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomas Restrepo</title>
		<link>http://winterdom.com/2006/10/msmqactivitiesv11released/comment-page-1#comment-757</link>
		<dc:creator>Tomas Restrepo</dc:creator>
		<pubDate>Mon, 11 May 2009 17:35:06 +0000</pubDate>
		<guid isPermaLink="false">http://winterdom.com/2006/10/msmqactivitiesv11released#comment-757</guid>
		<description>Larry: Not sure I understand the question. Are you referring to the Workflow Instance ID stored in the subscription db?</description>
		<content:encoded><![CDATA[<p>Larry: Not sure I understand the question. Are you referring to the Workflow Instance ID stored in the subscription db?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Larry</title>
		<link>http://winterdom.com/2006/10/msmqactivitiesv11released/comment-page-1#comment-756</link>
		<dc:creator>Larry</dc:creator>
		<pubDate>Mon, 11 May 2009 15:23:20 +0000</pubDate>
		<guid isPermaLink="false">http://winterdom.com/2006/10/msmqactivitiesv11released#comment-756</guid>
		<description>Hi Tomas,

It appears this handles the situation where we would need to have the context information like is supplied with the wsHttpContext and other context related bindings.  Although I can write a custom binding for the ReceiveActivity to connect to MSMQ, MSMQ does not have the context information.

How are you getting the instance ID?</description>
		<content:encoded><![CDATA[<p>Hi Tomas,</p>
<p>It appears this handles the situation where we would need to have the context information like is supplied with the wsHttpContext and other context related bindings.  Although I can write a custom binding for the ReceiveActivity to connect to MSMQ, MSMQ does not have the context information.</p>
<p>How are you getting the instance ID?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomas Restrepo</title>
		<link>http://winterdom.com/2006/10/msmqactivitiesv11released/comment-page-1#comment-129</link>
		<dc:creator>Tomas Restrepo</dc:creator>
		<pubDate>Thu, 15 Mar 2007 16:25:03 +0000</pubDate>
		<guid isPermaLink="false">http://winterdom.com/2006/10/msmqactivitiesv11released#comment-129</guid>
		<description>Dub,
Absolutely right. I&#039;ve fixed it and updated the download. Thanks!
</description>
		<content:encoded><![CDATA[<p>Dub,<br />
Absolutely right. I&#8217;ve fixed it and updated the download. Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dub</title>
		<link>http://winterdom.com/2006/10/msmqactivitiesv11released/comment-page-1#comment-128</link>
		<dc:creator>Dub</dc:creator>
		<pubDate>Thu, 15 Mar 2007 04:36:04 +0000</pubDate>
		<guid isPermaLink="false">http://winterdom.com/2006/10/msmqactivitiesv11released#comment-128</guid>
		<description>bug (SqlMsmqSubscriptionPersistenceService.cs):
public SqlMsmqSubscriptionPersistenceService(string connString)
{
if ( String.IsNullOrEmpty(&lt;b&gt;_connectionString&lt;/b&gt;) )
throw new ArgumentNullException(&quot;connString&quot;);
_connectionString = connString;
}
</description>
		<content:encoded><![CDATA[<p>bug (SqlMsmqSubscriptionPersistenceService.cs):<br />
public SqlMsmqSubscriptionPersistenceService(string connString)<br />
{<br />
if ( String.IsNullOrEmpty(<b>_connectionString</b>) )<br />
throw new ArgumentNullException(&quot;connString&quot;);<br />
_connectionString = connString;<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon Flanders</title>
		<link>http://winterdom.com/2006/10/msmqactivitiesv11released/comment-page-1#comment-127</link>
		<dc:creator>Jon Flanders</dc:creator>
		<pubDate>Fri, 20 Oct 2006 22:00:20 +0000</pubDate>
		<guid isPermaLink="false">http://winterdom.com/2006/10/msmqactivitiesv11released#comment-127</guid>
		<description>I think you are correct that handling WorkflowLoaded won&#039;t work in this case -sorry I wasn&#039;t thinking it throught.
I am still concerned about your approach (essentially another persistence service to take care of).  Especially in light of:
a) How will this work in a mulit-host instance environment
b) How will it stay consistent with the state of the workflow itself (what if your service gets out of sync with the current state of the workflow).
Which is why I would prefer some system that used the metadata of the activity instance itself - I would lean toward SqlPersistenceService.GetAllWorkflows  - which would allow you to get the activity metadata without having to load it into memory.  OTOH - this is only on the OOB persistence service.
</description>
		<content:encoded><![CDATA[<p>I think you are correct that handling WorkflowLoaded won&#8217;t work in this case -sorry I wasn&#8217;t thinking it throught.<br />
I am still concerned about your approach (essentially another persistence service to take care of).  Especially in light of:<br />
a) How will this work in a mulit-host instance environment<br />
b) How will it stay consistent with the state of the workflow itself (what if your service gets out of sync with the current state of the workflow).<br />
Which is why I would prefer some system that used the metadata of the activity instance itself &#8211; I would lean toward SqlPersistenceService.GetAllWorkflows  &#8211; which would allow you to get the activity metadata without having to load it into memory.  OTOH &#8211; this is only on the OOB persistence service.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomas Restrepo</title>
		<link>http://winterdom.com/2006/10/msmqactivitiesv11released/comment-page-1#comment-126</link>
		<dc:creator>Tomas Restrepo</dc:creator>
		<pubDate>Fri, 20 Oct 2006 20:44:03 +0000</pubDate>
		<guid isPermaLink="false">http://winterdom.com/2006/10/msmqactivitiesv11released#comment-126</guid>
		<description>Jon,
I thought about doing something similar, but I was under the impression that wouldn&#039;t quite work. Here&#039;s what I was thinking:
If the workflow is &quot;stuck&quot; waiting for the MSMQ message to arrive at the queue, and the host is unloaded, then when the host was reloaded the workflow instance wouldn&#039;t have been reloaded by the engine because it was idled and not running  (at least that&#039;s what I understood from our earlier discussion in the forums). If so, hooking into the WorkflowLoaded event wouldn&#039;t do me any good as it is precisely my MsmqListenerService the one would be responsible for &quot;waking&quot; the workflow.
Besides of this, I don&#039;t see how hooking into the WorkflowLoaded event would&#039;ve saved me the trouble of keeping track of the active subscriptions in a persistent store. Maybe I&#039;m missing something, in which case I&#039;d sure appreciate a hint :)
</description>
		<content:encoded><![CDATA[<p>Jon,<br />
I thought about doing something similar, but I was under the impression that wouldn&#8217;t quite work. Here&#8217;s what I was thinking:<br />
If the workflow is &quot;stuck&quot; waiting for the MSMQ message to arrive at the queue, and the host is unloaded, then when the host was reloaded the workflow instance wouldn&#8217;t have been reloaded by the engine because it was idled and not running  (at least that&#8217;s what I understood from our earlier discussion in the forums). If so, hooking into the WorkflowLoaded event wouldn&#8217;t do me any good as it is precisely my MsmqListenerService the one would be responsible for &quot;waking&quot; the workflow.<br />
Besides of this, I don&#8217;t see how hooking into the WorkflowLoaded event would&#8217;ve saved me the trouble of keeping track of the active subscriptions in a persistent store. Maybe I&#8217;m missing something, in which case I&#8217;d sure appreciate a hint <img src='http://winterdom.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon Flanders</title>
		<link>http://winterdom.com/2006/10/msmqactivitiesv11released/comment-page-1#comment-125</link>
		<dc:creator>Jon Flanders</dc:creator>
		<pubDate>Fri, 20 Oct 2006 20:33:22 +0000</pubDate>
		<guid isPermaLink="false">http://winterdom.com/2006/10/msmqactivitiesv11released#comment-125</guid>
		<description>Hey Tomas - sorry I missed your earlier entry - but why not just have your service hook into the WorkflowLoaded event?  That way if a Workflow came up from the persistence store and you didn&#039;t have a listener - you could recreate it from the Workflow definition (e.WorkflowInstance.GetWorkflowDefinition()).
</description>
		<content:encoded><![CDATA[<p>Hey Tomas &#8211; sorry I missed your earlier entry &#8211; but why not just have your service hook into the WorkflowLoaded event?  That way if a Workflow came up from the persistence store and you didn&#8217;t have a listener &#8211; you could recreate it from the Workflow definition (e.WorkflowInstance.GetWorkflowDefinition()).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
