Share via


File 어댑터 구성 시 제한 사항

파일 어댑터를 사용할 때의 제한 사항 및 규칙입니다.

파일 마스크 및 파일 이름 gotchas

파일 마스크는 파일 수신 핸들러가 수신 위치에서 선택하는 파일 유형을 지정하는 문자열입니다. 파일 이름은 파일 송신 핸들러가 메시지를 쓰는 파일 이름을 지정하는 문자열입니다.

파일 이름과 파일 마스크 속성에는 다음의 제한이 적용됩니다.

  • 수신 위치나 송신 포트별로 파일 마스크 또는 파일 이름 중 하나만 지정할 수 있습니다.

  • 전체 경로 또는 경로의 일부분을 파일 마스크나 파일 이름과 함께 사용할 수는 없습니다. 파일 마스크 및 파일 이름은 항상 경로가 없는 이름을 나타냅니다.

  • 파일 마스크 및 파일 이름은 대/소문자를 구분하지 않습니다.

  • 파일 이름에는 다음 문자를 포함할 수 없습니다. : <> / | " ? * ;

  • 파일 마스크에는 다음 문자를 포함할 수 없습니다. : <> / | " ;

  • 예약된 디바이스 이름은 파일 이름으로 사용할 수 없습니다. CON, PRN, AUX, CLOCK$, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 및 LPT9. 또한 이러한 이름을 확장명과 조합하여 사용할 수도 없습니다.

  • Windows 디스크 볼륨은 기본적으로 짧고 긴 파일 이름을 사용하는 8.3(8dot3) 명명 규칙을 사용합니다. 비시스템 디스크 볼륨은 8dot3 명명 규칙을 사용하지 않도록 설정하므로 긴 파일 이름만 사용합니다.

    8dot3을 사용하도록 설정하면 파일 및 파일 확장명은 짧은 이름으로 변환됩니다. 예를 들어 는 testabcdefgh.docx 로 변환 testab~1.doc됩니다. 파일 이름이 짧아지고 파일 확장명을 에서 .docxdoc로 줄입니다.

    이 동작은 파일 어댑터가 파일을 받는 방법에 영향을 줍니다. 파일 마스크가 로 설정된 *.xml경우 및 확장명 모두 *.xml*.xmln 일치하는 파일이 선택됩니다.

    디스크에서 8dot3 명명 규칙이 사용하도록 설정되어 있는지 확인하려면 관리자로 명령 프롬프트를 열고 , 또는 fsutil 8dot3name query d:등을 입력fsutil 8dot3name query c:합니다. 샘플 출력은 다음과 같습니다.

    C:\WINDOWS\system32>fsutil 8dot3name query c:
    The volume state is: 0 (8dot3 name creation is enabled).
    The registry state is: 2 (Per volume setting - the default).
    
    Based on the above two settings, 8dot3 name creation is enabled on c:
    

    파일 어댑터는 FindFirstFile 함수를 사용합니다. 이 함수에는 파일 이름이 짧고 긴 검색 결과가 포함됩니다. 폴더에서 짧고 긴 파일 이름을 보려면 명령 프롬프트를 열고 폴더로 이동하여 를 입력합니다 dir /x. 명령 프롬프트에서 를 입력 dir c:\foldername /x할 수도 있습니다.

    볼륨에서 8dot3name 설정을 변경하면 새 파일이 새 설정을 사용합니다. 기존 파일은 이동할 때까지 이름을 유지합니다.

    원하는 파일만 선택하고 부하가 높은 동안 더 나은 성능(오버헤드 감소)을 얻으려면 8dot3name이 사용하지 않도록 설정된 볼륨을 사용하도록 파일 어댑터를 구성하는 것이 가장 좋습니다.

  • 파일 경로, 파일 마스크 및 파일 이름(매크로 대체 제외)의 총 길이는 256자 이하여야 합니다. 이는 MessageBox 데이터베이스의 제한입니다.

  • 파일 경로는 "\\?"로 시작할 수 없습니다.

  • 매핑된 네트워크 드라이브 문자는 사용자 세션을 기반으로 하므로 파일 경로에 사용할 수 없습니다.

    BizTalk 메시징 엔진은 항상 위에 나와 있는 항목을 사용하여 디자인 타임에 파일 이름 및 파일 마스크 속성의 유효성을 검사합니다. 또한 파일 어댑터는 동적 포트에서 메시지를 보내는 경우 런타임에 파일 이름 및 파일 마스크 속성의 유효성을 검사합니다.

참고

파일 어댑터는 시스템 파일 또는 읽기 전용 파일을 선택하지 않습니다. 디스크 기반 파일만 선택되며 장치 파일은 선택되지 않습니다.

파일 이름에 매크로 사용

미리 정의된 매크로 집합을 사용하여 파일 송신 핸들러가 메시지를 쓰는 파일을 동적으로 만들 수 있습니다. 파일 시스템에 파일을 만들기 전에 파일 송신 핸들러는 파일 이름의 모든 매크로를 해당 개별 값으로 바꿉니다. 한 파일 이름에 여러 개의 매크로를 사용할 수 있습니다.

BizTalk 탐색기 개체 모델을 사용하여 파일 송신 핸들러를 구성하는 동안 파일 이름 매크로를 사용할 수 있습니다.

다음 조건 중 하나가 true인 경우에는 파일 송신 핸들러가 매크로를 값으로 바꾸지 않습니다.

  • 해당 시스템 속성이 설정되어 있지 않습니다.

  • 매크로의 맞춤법이 잘못되었습니다.

  • 파일 이름에 유효하지 않은 기호가 매크로 값에 포함되어 있습니다.

    이러한 조건 중 하나가 발생할 경우 파일 송신 핸들러는 파일 이름의 매크로를 그대로 둡니다(예: Myfile_%MessageID%.xml).

    다음 표는 지원되는 매크로를 보여 주고 파일 송신 핸들러가 해당 매크로를 바꾸는 방법을 설명합니다.

매크로 이름 대체 값
%datetime% YYYY-MM-DDThhmmss 형식의 UTC(협정 세계시) 날짜 시간입니다(예: 1997-07-12T103508).
%datetime_bts2000% YYYYMMDDhhmmsss 형식의 UTC 날짜 시간입니다. 여기서 sss는 초와 밀리초를 나타냅니다. 예를 들어 199707121035234는 1997/07/12, 10:35:23 및 400밀리초를 나타냅니다.
%datetime.tz% YYYY-MM-DDThhmmssTZD 형식의 로컬 날짜 시간 및 GMT 표준 시간대입니다(예: 1997-07-12T103508+800).
%DestinationParty% 대상 파티의 이름입니다. 값은 메시지 컨텍스트 속성 BTS.DestinationParty에서 제공됩니다.
%DestinationPartyQualifier% 대상 파티의 한정자입니다. 이 값은 메시지 컨텍스트 속성 BTS.DestinationPartyQualifier에서 제공됩니다.
%MessageID% BizTalk Server의 메시지 GUID(Globally Unique Identifier)입니다. 값은 메시지 컨텍스트 속성 BTS에서 직접 가져옵니다 . MessageID.
%SourceFileName% FILE 어댑터가 메시지를 읽는 소스 파일의 이름입니다. 파일 이름은 확장명을 포함하며 파일 경로(예: Sample.xml 제외)를 제외합니다. 이 속성을 대체하는 경우 파일 어댑터는 FILE에 저장된 절대 파일 경로에서 파일 이름을 추출합니다 . ReceivedFileName 컨텍스트 속성입니다. 컨텍스트 속성에 값이 없는 경우(예: 파일 어댑터가 아닌 어댑터에서 메시지를 받은 경우) 매크로는 대체되지 않으며 파일 이름에 그대로 유지됩니다(예: C:\Drop\%SourceFileName%). 참고: 이 매크로를 올바르게 구현하려면 출력 메시지가 받은 메시지와 동일한 메시지입니다.
%SourceParty% FILE 어댑터에 수신된 메시지를 보낸 소스 파티의 이름입니다. 참고: 이 매크로를 올바르게 구현하려면 출력 메시지가 받은 메시지와 동일한 메시지입니다.
%SourcePartyQualifier% FILE 어댑터에 수신된 메시지를 보낸 소스 파티의 한정자입니다. 참고: 이 매크로를 올바르게 구현하려면 출력 메시지가 받은 메시지와 동일한 메시지입니다.
%time% hhmmss 형식의 UTC 시간입니다.
%time.tz% hhmmssTZD 형식의 로컬 시간 및 GMT 표준 시간대입니다(예: 124525+530).

수신 폴더 및 대상 위치 속성 gotchas

파일 수신 위치는 FILE 수신 핸들러가 파일을 읽는 파일 시스템 또는 네트워크 공유의 폴더 경로가 포함된 문자열입니다. 파일 대상 위치는 FILE 송신 핸들러가 파일을 쓰는 파일 시스템 또는 네트워크 공유의 폴더 경로가 포함된 문자열입니다.

다음 제한 사항은 수신 폴더 및 대상 위치 속성에 적용됩니다.

  • 사용자에서 속성을 지정할 때는 파일 시스템 또는 네트워크 공유의 파일 경로가 있을 필요가 없습니다.

  • 파일 경로는 항상 절대 경로여야 합니다.

  • UNC(범용 명명 규칙) 형식(예: \\server>\<<share)을 사용하여 파일 경로를 지정할 수 있습니다>.

  • 파일 경로가 UNC 형식인 경우 서버 이름에 ' ~ ! 문자가 포함되어서는 안됩니다. @ # $ ^ & * ( ) = + [ ] { } \ | ; : ' " , <> / ? ;

  • 파일 경로의 어느 부분에서든 상위 폴더 기호(\..\)와 현재 폴더 기호(\.\)를 사용할 수 없습니다.

  • 파일 경로는 대/소문자를 구분하지 않습니다.

  • 파일 경로에는 다음 문자를 포함할 수 없습니다. : <> / | " ? * ;

  • 예약된 장치 이름인 CON, PRN, AUX, CLOCK$, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 및 LPT9를 파일 경로에 사용할 수 없습니다.

  • 파일 경로, 파일 마스크 또는 파일 이름의 총 길이(매크로 대체 없음)는 256자를 초과하지 않아야 합니다. MessageBox 데이터베이스에서 이 제한 사항이 적용됩니다.

  • FILE 어댑터는 파일 경로의 유니코드 지정(예: "\\?\")을 지원하지 않습니다.

    수신 폴더 속성에만 적용되는 제한 사항은 다음과 같습니다.

  • 수신 폴더 속성을 심볼 링크가 있는 Microsoft Windows NT 분산 파일 시스템 사용 폴더로 설정하지 마십시오. Windows NT 분산 파일 시스템을 사용할 경우 FILE 어댑터 수신 위치에 직선 네트워크 경로를 갖는 폴더만 사용할 수 있습니다.

  • 문서가 UNC 경로로 전송되고 FILE 어댑터의 수신 위치에 문서를 수신하는 서버가 두 대 이상 있는 경우 한 서버만 선택되어 해당 UNC 경로로 전송되는 문서를 대부분 처리합니다. 파일 이름 바꾸기에 대한 자세한 내용은 파일 어댑터의 파일 수신 어댑터 섹션을 참조 하세요.

    송신 폴더 속성에만 적용되는 제한 사항은 다음과 같습니다.

  • FILE 어댑터에는 서버 운영 체제가 아닌 운영 체제(예: Microsoft Windows Vista)에서 실행될 때 동시에 모든 메시지를 일괄 처리할 만한 운영 체제 리소스가 없을 수 있습니다.

    FILE 어댑터는 앞에서 언급한 규칙을 사용하여 디자인 타임에 파일 경로의 유효성을 검사합니다. 또한 FILE 어댑터에서 동적 포트를 통해 메시지를 보내는 경우 FILE 어댑터는 런타임에 메시지의 유효성을 검사합니다.