03-01-2011 10:55 AM
I've been working through implementing Process Orchestration and encountered some very strange behavior.
Imagine a workflow project called MyNewWorkflow (which builds to MyNewWorkflow.dll). In it is a single sequential entity workflow called SampleWorkflow.
ProcessLib.xml will contain a single line that reads:
And ProcessStart.xml will contain this line:
I then restart IIS using IISRESET. And here is where the strange behavior starts.
When I check log4net's log, and the Event Viewer, the stop event for Sage Workflow Persistence Service is recorded:
2011-03-01 13:37:26,904 [1 ] INFO Sage.Platform.Process.SagePersistenceService - Stopping Sage Workflow Persistence Service
But it does not restart. Nothing in the logs about specific reasons why, it just doesn't.
At first I didn't notice that the service didn't restart. I went back to RegisteredProcesses and checked the ATOM feed and I got the following error:
error ApplicationDiagnosis Exception caught during the processing of a message Verb: GET Uri: http://myserver:4547/ProcessHost/ProcessManager/crm/-/RegisteredProcesses Original Message: query did not return a unique result: 2 Stack Trace: at NHibernate.Impl.AbstractQueryImpl.UniqueElement(IList list) at NHibernate.Impl.AbstractQueryImpl.UniqueResult[T]() at Sage.Platform.Process.ProcessInfo.GetProcessTypeInformation() at Sage.Platform.Process.ProcessInfo.ValidateOrCreateProcessTypeInformation() at Sage.Platform.Process.ProcessEnumeratorService.GetProcesses() at Sage.Platform.Process.ProcessEnumeratorService.<System.Collections.Generic.IEnumerable<Sage.Platform.Process.ProcessInfo>.GetEnumerator>d__0.MoveNext() at Sage.Platform.Process.WorkflowProcessManagerService.Sage.Platform.Process.Interfaces.IProcessManagerService.GetRegisteredProcesses() at Sage.Platform.Process.Feeds.RegisteredProcessesRequests.GetRegisteredProcesses(IRequest message) at Invokee503bce8915645dca9a9591c7af9ab67.Invoke(Object , IRequest ) at Sage.Integration.Messaging.RequestTargetRegistration.RequestTargetInvoker.Invoke(IRequest request) at Sage.Integration.Messaging.Request.Process(RequestTargetInvoker invoker) at Sage.Integration.Messaging.MessagingService.Process(IRequest request)
And this IS logged in the Event Viewer.
In order for me to get past this, I have to rename my SampleWorkflow class (to SampleWorkflow2), recompile my workflow project, and change the related XML settings. Then it works just fine.
Now, I know from the training videos that you cannot have an identical workflow class name even between totally different namespaces. But shouldn't there be a recognition that this is the same namespace as it was before?