The bug we mentioned in our last forum post has been fixed with
version 6.70.293 - thanks! Alas, we have found another issue where
hosting with a configuration file fails while hosting in code
works. We have a very simple workflow that consists of a
Receive/SendReply followed by a Delay activity. (The xamlx follows at
the end of the email, but you may just create it by yourselves with a
a small number of clicks. Alternatively, we could send you a tiny
solution file that contains it.)
Now on the one hand we host this workflow with by using the following code:
var serviceDefinition =
(WorkflowService)XamlServices.Load("Service1.xamlx");
var host = new WorkflowServiceHost(serviceDefinition, new Uri("
http://localhost:8888/"));
host.Description.Behaviors.Add(new OracleInstanceStoreBehavior
{
ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=re0482)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=spex)));User Id=rkl;Password=rkl",
InstanceEncodingOption = InstanceEncodingOption.None,
InstanceCompletionAction = InstanceCompletionAction.DeleteAll,
InstanceLockedExceptionAction = InstanceLockedExceptionAction.BasicRetry,
HostLockRenewalPeriod = new TimeSpan(00, 00, 30),
RunnableInstancesDetectionPeriod = new TimeSpan(00, 00, 05)
});
The resulting workflow instance behaves as expected: when called via
WCF, it works its way through the Delay activity and then quits. On
the other hand, we host the same workflow in the IIS with the
following configuration file:
In this second case, the workflow gets stuck in the Delay activity
forever. In both cases, the workflow invocation leads to a new entry
in the INSTANCESTABLE of the Oracle instance store. In the first case,
that entry is updated soon with new data in the formally empty colums
COMPLEXDATAPROPERTIES, METADATAPROPERTIES, and more. In the second
case, the INSTANCESTABLE entry is never updated again.
So apparently, workflow instances hosted with a configuration file
have the wrong database behavior, even though the DevArt backend is
essentially capable of correct execution.
Any ideas?
---
And here is our little workflow:
Code: Select all
<WorkflowService mc:Ignorable="sap" ConfigurationName="Service1" sap:VirtualizedContainerService.HintSize="307,428" Name="Service1" mva:VisualBasic.Settings="Assembly references and imported namespaces serialized as XML namespaces" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/servicemodel" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="clr-namespace:Microsoft.VisualBasic;assembly=System" xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities" xmlns:p="http://tempuri.org/" xmlns:p1="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:s1="clr-namespace:System;assembly=System" xmlns:s2="clr-namespace:System;assembly=System.Xml" xmlns:s3="clr-namespace:System;assembly=System.Core" xmlns:s4="clr-namespace:System;assembly=System.ServiceModel" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation" xmlns:scg="clr-namespace:System.Collections.Generic;assembly=System" xmlns:scg1="clr-namespace:System.Collections.Generic;assembly=System.ServiceModel" xmlns:scg2="clr-namespace:System.Collections.Generic;assembly=System.Core" xmlns:scg3="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:sd="clr-namespace:System.Data;assembly=System.Data" xmlns:sl="clr-namespace:System.Linq;assembly=System.Core" xmlns:st="clr-namespace:System.Text;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<p1:Sequence DisplayName="Sequential Service" sad:XamlDebuggerXmlReader.FileName="c:\dokumente und einstellungen\rkleinhempel\eigene dateien\visual studio 2010\Projects\OrackeTestWorkflowService\OrackeTestWorkflowService\Service1.xamlx" sap:VirtualizedContainerService.HintSize="277,398" mva:VisualBasic.Settings="Assembly references and imported namespaces serialized as XML namespaces">
<p1:Sequence.Variables>
<p1:Variable x:TypeArguments="CorrelationHandle" Name="handle" />
<p1:Variable x:TypeArguments="x:Int32" Name="data" />
<p1:Variable x:TypeArguments="x:String" Default="test" Name="test" />
</p1:Sequence.Variables>
<sap:WorkflowViewStateService.ViewState>
<scg3:Dictionary x:TypeArguments="x:String, x:Object">
<x:Boolean x:Key="IsExpanded">True</x:Boolean>
</scg3:Dictionary>
</sap:WorkflowViewStateService.ViewState>
<Receive x:Name="__ReferenceID0" CanCreateInstance="True" DisplayName="ReceiveRequest" sap:VirtualizedContainerService.HintSize="255,86" OperationName="GetData" ServiceContractName="p:IService">
<Receive.CorrelationInitializers>
<RequestReplyCorrelationInitializer CorrelationHandle="[handle]" />
</Receive.CorrelationInitializers>
<ReceiveMessageContent>
<p1:OutArgument x:TypeArguments="x:Int32">[data]</p1:OutArgument>
</ReceiveMessageContent>
</Receive>
<SendReply Request="{x:Reference __ReferenceID0}" DisplayName="SendResponse" sap:VirtualizedContainerService.HintSize="255,86">
<SendMessageContent>
<p1:InArgument x:TypeArguments="x:String">[data.ToString()]</p1:InArgument>
</SendMessageContent>
</SendReply>
<p1:Delay Duration="[New TimeSpan(0, 4, 0)]" sap:VirtualizedContainerService.HintSize="255,22" />
</p1:Sequence>
</WorkflowService>