2009-10-21 2 views
1

우리는 .NET 3.5에서 워크 플로우 기반을 사용하는 시스템을 개발 한 계약자를 보유하고 있습니다. 동료 중 한 명은 "워크 플로 서비스가 메모리에 상태를 저장하고 주변 데이터베이스와 동기화되지 않을 수도 있습니다"라는 우려를 가지고 있습니다.
그의 관심사는 정당한가?워크 플로 파운데이션 저장 상태가 메모리에 문제가 있습니까?

+0

우리는 LINQ와 비슷한 문제가있었습니다. DataContext에서 ObjectTrackingEnabled = false로 설정하여 해결되었습니다. 그게 여기에 적용될지는 모르지만, 올바른 길을 시작할 수도 있습니다 ... – Irfy

답변

2

어떤 식으로 상태가 메모리에 저장됩니까? WF는 예를 들어, 워크 플로가 유휴 상태가됩니다. WF가 데이터베이스에 유지되도록 할 수 있습니다. 예를 들어 Google에 문제가 없습니다. WF 런타임을 다시 시작하기 위해 특정 워크 플로에 정보를 대기열에 넣음 - WF가 DB에서 선택되어 올바른 위치에서 실행됩니다.

OK, 다시 한번 다시 읽으면 상태가 작업 흐름 (예 : 활동의 의존적 인 속성)에 저장되면 이것이 동기화되지 않을 수 있음을 의미 할 수 있습니다. 그것은 꽤 괜찮은지 아닌지에 달려 있습니다. 원본 데이터가 변경된 경우 DB 데이터로 만든 직렬화 된 개체가 WF에서 동기화되지 않을 수 있습니다. 이것이 문제가된다면 DB 데이터에서 특정 객체를 다시 만들고 WF에서 직렬화 된 객체로 유지하지 않을 수 있습니다.

0

그가 수행 한 방법에 따라 다르지만 대답은 아마도 아니오입니다. 메모리 캐싱은 DB가 관련 될 때 불필요한 I/O를 피할 수있는 유용한 방법입니다. 동료가 기분을 좋게하기 위해 코드를 살펴 봐야 할 수도 있습니다.

관련 문제