2011-04-11 4 views
1

여러분, WF4 문제로 인해 문제가 발생했습니다. Ron Jacobs의 데모가 끝점 .vv 웹 캐스트 (http://archive.msdn.microsoft.com/wf4BatchJob)에서 배치 엔진/작업 스케줄러를 모델링했습니다. 그의 예에서, "작업 브랜치"는 while 회 돌이 안에서 계산됩니다. 필자의 샘플에서는 SampleEngine.xamlx라고하는 다른 워크 플로에 메시지를 보냅니다. 매 작업마다이 워크 플로는 부모 (JobScheduler.xamlx)를 다시 호출하고 진행 상황을 완료했다고보고합니다. 이것은 완벽하게 작동하며 지금은 작동하고 있습니다. AppFabric 대시 보드와 QueryProgress (스케줄러 워크 플로에서 보내기/받기 쌍)를 호출하여 작업을 예약하고 진행 상황을 관찰 할 수 있습니다.WF4 AppFabric에서 워크 플로가 IISreset 이후에 제대로 다시 시작되지 않음

문제는 iireset을 사용하여 서버 오류 또는 기타 문제를 시뮬레이트 할 때 워크 플로 (sampleengine.xamlx 및 jobscheduler.xamlx)가 모두 온라인 상태로 돌아가 "진행 중"으로 표시된다는 것입니다. 문제는 더 이상 사건을 추적하지 못한다는 것입니다. 그들은 어딘가에서 교착 상태에있는 것처럼 보입니다. 또한 워크 플로의 현재 상태에 대해 예약 된 수신 활동이 없을 때 WF 서비스가 응답하는 것과 동일한 방식으로 서비스 메시지에 응답하지 않습니다.

모든 곳에서 지속적인 활동을 추가했으며 모든 sendreply 활동이 끝난 후에도 계속 유지할 수 있지만 차이는 없습니다.

내가 말했던 것처럼 Ron의 샘플에 대한 유일한 변경 사항은 내 작업 분기가 while 루프 내에 있지 않다는 것입니다. 하위 작업 과정 (sampleengine.xamlx)에 단일 메시지를 보내서 시작합니다. 워크 플로 간의 상관 관계는 실행 중에 서버가 다운되지 않으면 올바르게 작동합니다.

IISreset을 크게 높이 평가 한 후 중단 한 부분에서 워크 플로를 가져 오려면 여기에서해야 할 일이 있습니다. Ron의 샘플은 광산이 멈추는 지점에서 세어 나갔습니다.

답변

0

AppFabric 구성에서 워크 플로의 지속성 저장소를 설정했는지 확인하십시오. 기본적으로 사용하도록 설정되지 않았습니다.

+0

트릭은 다른 응용 프로그램에서 내 하위 워크 플로 서비스를 사용했기 때문에 워크 플로 지속성을 설정하고 해당 서비스의 "유휴 상태를 유지"하는 것을 게을리했습니다. –

관련 문제