2010-01-26 2 views
0

C# 프로그램에서 WCF 게시 된 오케스트레이션을 호출하는 것은 일반적으로 1 초 미만의 응답 시간입니다. 그러나 경우에 따라 C# 프로그램의 호출과 오케스트레이션의 첫 번째 추적 메시지 사이에 20-50 초가 걸릴 수 있습니다. WCF를 호출하는 C#은 HIS/HIP (호스트 통합 서비스/CICS 호스트 초기화 처리)에서 실행됩니다.BizTalk 낮은 대기 시간 - WCF 게시 된 오케스트레이션에 C#을 호출하는 응답 시간 문제

거의 모든 시간에 HIS/HIP 서비스를 다시 시작하면 응답 시간이 매우 느려지고 CICS에서 시간 초과가 발생합니다. 나는 또한 일이 "추워지면"하루 동안 일어날지도 모른다는 것을 두려워합니다 - 다른 말로하면 상황이 캐싱되고있을 수도 있습니다. JIT 첫 컴파일도 20 ~ 50 초가 걸리지 않습니다. 이상하게 보일 수있는 다른 점은 응답 시간이 느린 것은 오히려 BizTalk 서비스에서 실행되는 오케스트레이션의로드가 아닌 HIP/서비스에서 실행 된 것입니다.

우리가 살면 아침에 첫 번째 사용자 (또는 "콜드 스펠 (cold-spell)"이 시간 초과 됨)가 발생할 우려가 있습니다. 타임 아웃 후에 두 번째 시도는 항상 빠릅니다.

나는 다음의 각 다시 시작하여 몇 가지 검사를 수행했습니다 1) BizTalk 서비스 2) 3) HIS/HIP의 트랜잭션 통합 (HIP 서비스가)

다시 시작 그들 중 하나가 경향이 IIS 20 초 정도 지연됩니다. 모두 3을 다시 시작하는 것은 죽음의 키스와 같습니다. 오케스트레이션에서 첫 번째 추적이 표시되기까지 약 60 초가 지체됩니다.

HIP 프로그램은 HIP 서비스가 다시 시작된 경우에도 항상 첫 번째 추적을 신속하게 제공합니다. HIP을 다시 시작하면 왜 오케스트레이션 시작이 느려지는지 확실하지 않습니다.

감사합니다,

닐 월터스

답변

1

은 나뿐만 아니라는 MQSeries 어댑터와 행동의이 종류를 보았다. 일정 기간 동안 사용하지 않으면 MQSeries와의 통신을 가능하게하는 COM + 구성 요소가 비활성으로 인해 종료됩니다.

우리가 가진 것은 10 분짜리 타이머로 어떤 종류의 연결 유지 메시지를 강제 할 것입니다. 전송할 수있는 비파괴 호출이 있는지 또는 이러한 용도로 시스템에 구축 할 수 있는지 여부는 알 수 없습니다.

+0

예, 작업 관리자 나 SQL 에이전트를 통해 매 x 분마다 실행되도록 C# 쿼리를 예약하려고했습니다. 쿼리와 업데이트가 동일한 오케스트레이션을 통해 실행됩니다. 그러나 나는 쉽지 않을 수도있는 다른 소스 (예 : Adobe 양식)에 첨부하는 다른 오케스트레이션을 가질 수 있습니다. 그렇게하기 위해서는 매우 "단정 한"것처럼 보입니다. – NealWalters

1

2 초 안에 작동해야하는 BizTalk 흐름과 동일한 문제가 있습니다. 그러나 잠시 사용하지 않으면 캐시에 DLL을 다시로드하면 시간 제한이 생성됩니다. 당신을 AppDomainSpecs에서 옵션 SecondsIdleBeforeShutdownSecondsEmptyBeforeShutdown를 사용하고 ExactAssignmentRules 또는 PatternAssignmentRules 섹션에서 원하는 DLL을에 할당

:

우리는 그들이 DLL을 언로드를 방지하는 방법을 설명 MS의 Orchestration Engine Configuration 문서에서 해결책을 발견 DLL을 영구적으로로드 할 수 있으며 호출자 응용 프로그램을 피할 수 있습니다.

BizTalk 호스트를 다시 시작하면 dll이 다시로드됩니다.

+0

감사합니다. 정확하게 기억하지 못합니다. 그러나 웹 서비스로드 시간이 가장 길었고 BizTalk가 아니라 IIS에서 실행되는 것으로 생각합니다. IIS에는 비슷한 설정이있을 수 있습니다. – NealWalters