2012-01-30 5 views
1

클라이언트에서 XML 및 .FINISHED 파일을 삭제하는 시나리오가 있습니다. 클라이언트는 XML 파일 작성이 완료되면 .FINISHED 파일을 작성합니다. 두 파일 모두 같은 이름입니다. 보시다시피, .FINISHED가 작성되기 전에 .XML을 읽을 수 없습니다. XML이 대상에 복사되면 클라이언트 위치에서 두 파일을 모두 삭제하려고합니다.BizTalk NSoftware SFTP - 두 번째 파일을받은 경우에만 첫 번째 파일 읽기

매우 일반적인 문제로 보입니다.하지만 SFTP와 SSO는 비 전형적인 것으로 생각합니다.

인증을 위해 BizTalk 용 BizTalk 용/n 소프트웨어 SFTP 어댑터를 사용하여 BizTalk 2009를 개발 중입니다.

참고 :

  • 나는 FTP 프로토콜을 사용할 수 없습니다로 SFTP를 사용합니다.

  • Google 검색 및 시도했지만 일부는 FTP 기반 및/또는 상관 관계 사용 중입니다.

  • 자격 증명 관리에 SSO를 사용해야합니다.

  • 소프트웨어 SFTP 어댑터는 SSO를 사용하는 기능을 제공하며 .FINISHED 파일을 기다리지 않고 읽기/쓰기가 필요한 일반적인 시나리오에서는 정상적으로 작동합니다.

내가 사용한 다음 방법 :

상관 관계 - 병렬/나는 기다릴 필요가 로 내가 상관 관계를 사용할 수 없다는 것을 깨달았다 약간의 시간을 소비 한 후

  • 순차 .XML 읽기를 시작하기 전에 .FINISHED 파일. 클라이언트 먼저 XML을 쓰기 시작하고 나는 .XML 위치는 상황에 따라 을 따라 예외를 통해 .FINISHED 기다리고 오케스트레이션하지 않고 파일을 선택합니다받을 놓으면 다음

  • 을 마쳤다.

    이 솔루션을 위해 나는 블로그

    다음

    http://www.paulvanbrenk.com/blog/CategoryView,category,BizTalk.aspx

의 도움을 가지고 내가 잘못 이해하는 경우에 저를 수정하십시오.

는 SFTP 위치에서 XML 파일 한 번받은 .FINISHED 얻을 수있는 닷넷 구성 요소 사용 :

또 다른 가능한 해결책는 소프트웨어 또는 변경하는 것입니다 다른 SFTP 어댑터의 런타임 예에서 오케스트레이션 내 위치 또는 URI를받을 처음에 그것을받은 .XML로 바꾸고 그것을 얻으면 .FINISHED로 설정하십시오.

달성 방법을 모르지만 오케스트레이션 내에서 가능합니까 ??

답변

1

끝나는 파일 만 활성화하려면 수신 위치를 설정하지 않는 이유는 무엇입니까? 그런 다음 해당 오케스트레이션을 작성하여 해당 XML 파일을 가져오고 작동시킬 수 있습니까?

+0

Fabio, 내가 시도하고 언급 한 두 번째 옵션입니다. 이렇게하려면 인증을 위해 SFTP 프로토콜과 SSO를 사용하여 .NET 구성 요소를 작성해야합니다. 이 일을 끝내기 위해 나를 인도 해 주실 수 있습니까? SSO를 사용하여 SFTP 파일을 다운로드 할 수있는 타사 구성 요소 또는 라이브러리 또는. 어떤 작업 arround. 감사합니다 –

+0

SFTP 어댑터가 SSO를 사용하는 기능을 제공한다고했는데 .NET 구성 요소가 필요한 이유는 무엇입니까? * .FINISHED - 어댑터가 지원하지 않는 파일입니까? – Fabio

+0

예. 지원됩니다. 내 시나리오를 바꾸게 해줘. 클라이언트가 XML 파일을 쓰기 시작하면 읽을 수 없습니다. 복사가 완료되면 .FINISHED 파일이 생성됩니다. 완료를 위해 수신 위치를 만들었습니다. 내 Orchstrtn에서 .FINISHED 파일이 수신되면 .XML 파일이 있는지 확인하고 있습니다. 하지만 SFTP와 SSO를 사용하여 .XML을 얻는 방법을 모르겠습니다. 커스텀/제 3 자 닷넷 compnt 나 SFTP Adptr를 통해 가져와야할까요? Adptr은 수신 포트를 통해서만 읽을 수 있으므로 .Net 파일을 읽으려면 .Net cmpnt가 필요하다고 생각합니다. 당신은 "그런 다음 해당 오케스트레이션을 작성하여 해당 XML 파일을 가져오고 가져옵니다"라고 말했습니다. 무슨 뜻이에요? –

3

/nsoftware SFTP 어댑터의 또 다른 옵션은 MonitorFileGrowth 설정을 사용하는 것입니다.

이 값은 폴링 간격 사이에 파일의 크기를 기록하고 증가를 멈추거나 파일이 더 이상 쓰여지지 않을 때까지 파일 다운로드를 시도하지 않습니다. 당신은 같은 어댑터의 다른 속성을 설정할 수 있습니다

또는 사실

MonitorFileGrowth = 당신은 파일에 대한 임시 확장을 사용하여 서버에 파일을 생성하는 과정을 제어 할 수있는 경우 당신의 FileMask와 일치하지 않습니다 (그래서 수신 위치는 그것을 다운로드하려고하지 않습니다)도 작동합니다.

Fabio가 말한 것처럼 .FINISHED 파일을 기다리고 싶다면 .FINISHED 파일 만 검색하도록 수신 위치를 구성하고 오케스트레이션에서 수신하면 송신 어댑터를 사용하여 XML 파일을 다운로드 할 수 있습니다 이 기사 : http://www.nsoftware.com/kb/showentry.aspx?entry=09170901

+0

감사. 클라이언트 요구 사항 때문에 "MonitorFileGrowth"를 사용할 수 없습니다. 이 기사에서 지정한 방법을 어떻게 사용할 수 있는지 자세히 설명해 주시겠습니까? http://www.nsoftware.com/kb/showentry.aspx?entry=09170901 내 말은, 두 개의 수신 포트를 만들어야한다는 것입니다. .FINISHED에서 활성화되고 .XML에 대해 비활성 상태가됩니까? 다음과 같은 속성을 언제 어디에서 설정합니까? 메시지 모양 생성의 두 번째 수신 포트에서 .XML 파일을 받기 전에 : Message_2 (nsoftware.BizTalk.SFTP.RemoteFile) = "* .txt"; 상세한 응답은 높게 평가 될 것이다. –