감시 폴더 엔드포인트 구성 configuring-watched-folder-endpoints
관리자는 감시 폴더 라고 하는 네트워크 폴더를 구성하여 사용자가 파일(예: PDF 파일)을 감시 폴더에 넣으면 구성된 서비스 작업이 호출되어 해당 파일을 조작하도록 할 수 있습니다. 서비스에서 지정된 작업을 수행한 후 수정된 파일을 지정된 출력 폴더에 저장합니다.
감시 폴더 서비스 구성 configuring-the-watched-folder-service
감시 폴더 엔드포인트를 구성하기 전에 감시 폴더 서비스를 구성합니다. 감시 폴더 서비스의 구성 매개변수에는 다음과 같은 두 가지 목적이 있습니다.
- 모든 감시 폴더 엔드포인트에 공통적인 속성을 구성합니다.
- 모든 감시 폴더 엔드포인트에 대한 기본값을 제공합니다.
감시 폴더 서비스를 구성한 후 대상 서비스에 대한 감시 폴더 엔드포인트를 추가합니다. 엔드포인트를 추가하는 과정에서 구성된 감시 폴더 서비스의 입력 폴더에 파일이나 폴더를 넣을 때 호출할 서비스 이름 및 작업 이름과 같은 값을 설정합니다. 감시 폴더 서비스 구성에 대한 자세한 내용은 감시 폴더 서비스 설정을 참조하십시오.
감시 폴더 만들기 creating-a-watched-folder
감시 폴더는 다음과 같은 두 가지 방법으로 만들 수 있습니다.
-
감시 폴더 엔드포인트에 대한 설정을 구성할 때 경로 상자에 상위 디렉터리의 전체 경로를 입력하고 다음 예시와 같이 생성할 감시 폴더의 이름을 추가합니다.
C:\MyPDFs\MyWatchedFolder
MyWatchedFolder 폴더가 아직 존재하지 않기 때문에 AEM Forms는 해당 위치에 이 폴더를 만들려고 시도합니다. -
감시 폴더 엔드포인트를 구성하기 전에 파일 시스템에 폴더를 만든 후 경로 상자에 전체 경로를 입력합니다.
클러스터링된 환경에서 감시 폴더로 사용되는 폴더는 파일 시스템이나 네트워크에서 액세스, 쓰기, 공유가 가능해야 합니다. 이 시나리오에서는 클러스터의 각 애플리케이션 서버 인스턴스가 동일한 공유 폴더에 액세스할 수 있어야 합니다.
Windows에서 애플리케이션 서버가 서비스로 실행되는 경우 다음 방법 중 하나를 사용하여 공유 폴더에 대한 적절한 액세스 권한을 부여하여 시작해야 합니다.
- 애플리케이션 서버 서비스 다음 계정으로 로그온 매개변수 를 구성하여 공유 감시 폴더에 대한 적절한 액세스 권한이 있는 특정 사용자로 시작합니다.
- 애플리케이션 서버 서비스 로컬 시스템으로 시작 옵션을 구성하여 서비스가 데스크탑과 상호 작용할 수 있도록 허용합니다. 이 옵션을 사용하려면 모든 사람이 공유 감시 폴더에 액세스하고 쓸 수 있어야 합니다.
감시 폴더 연결 chaining-together-watched-folders
감시 폴더를 서로 연결하여 한 감시 폴더의 결과 문서가 다음 감시 폴더의 입력 문서가 되도록 할 수 있습니다. 각 감시 폴더는 서로 다른 서비스를 호출할 수 있습니다. 이런 방식으로 감시 폴더를 구성하면 여러 서비스를 호출할 수 있습니다. 예를 들어 한 감시 폴더는 PDF 파일을 Adobe PostScript®로 변환할 수 있고 두 번째 감시 폴더는 PostScript 파일을 PDF/A 형식으로 변환할 수 있습니다. 이렇게 하려면 첫 번째 엔드포인트에서 정의한 감시 폴더의 결과 폴더를 두 번째 엔드포인트에서 정의한 감시 폴더의 입력 폴더를 가리키도록 설정하기만 하면 됩니다.
첫 번째 변환의 출력은 \path\result로 이동합니다. 두 번째 변환의 입력은 \path\result이고 두 번째 변환의 출력은 \path\result\result(또는 두 번째 변환의 결과 폴더 상자에서 정의한 디렉터리)로 이동합니다.
사용자가 감시 폴더와 상호 작용하는 방법 how-users-interact-with-watched-folders
감시 폴더 엔드포인트의 경우 사용자는 데스크탑에서 입력 파일이나 폴더를 감시 폴더로 복사하거나 끌어서 호출할 수 있습니다. 파일은 도착한 순서대로 처리됩니다.
감시 폴더 엔드포인트의 경우 작업에 입력 파일이 하나만 필요한 경우 사용자는 해당 파일을 감시 폴더의 루트에 복사할 수 있습니다.
작업에 입력 파일이 두 개 이상 포함된 경우 사용자는 감시 폴더 계층 외부에 모든 필수 파일이 포함된 폴더를 만들어야 합니다. 이 새 폴더에는 입력 파일(및 프로세스에 필요한 경우 DDX 파일)이 포함되어야 합니다. 작업 폴더가 구성된 후 사용자는 해당 폴더를 감시 폴더의 입력 폴더에 복사합니다.
감시 폴더 출력 watched-folder-output
입력이 폴더이고 출력이 여러 파일로 구성된 경우 AEM Forms는 입력 폴더와 이름이 동일한 출력 폴더를 만들고 출력 파일을 해당 폴더에 복사합니다. 출력이 키-값 쌍을 포함하는 문서 맵으로 구성된 경우(예: Output 프로세스의 출력) 키는 출력 파일 이름으로 사용됩니다.
엔드포인트 프로세스에서 생성되는 출력 파일 이름에는 확장자 앞에 문자, 숫자, 마침표(. ) 이외의 다른 문자를 포함할 수 없습니다. AEM Forms는 다른 문자를 16진수 값으로 변환합니다.
클라이언트 애플리케이션은 감시 폴더 결과 폴더에서 결과 문서를 가져옵니다. 프로세스 오류는 감시 폴더 실패 폴더에 기록됩니다.
감시 폴더의 작동 방식 how-watched-folder-works
감시 폴더 모듈에는 다음 서비스가 포함되어 있습니다.
- 감시 폴더 서비스
- provider.file_scan_service
- provider.file_write_results_service
위에 나열된 서비스 외에도 감시 폴더는 작업을 예약하는 스케줄러 서비스와 대상 서비스의 비동기 호출을 지원하는 작업 관리자 서비스를 포함한 다른 서비스에 의존합니다.
감시 폴더가 호출 요청을 처리하는 방법 how-watched-folder-processes-an-invocation-request
감시 폴더 서비스는 엔드포인트의 생성, 업데이트, 삭제를 처리합니다. 관리자가 엔드포인트를 만들면 스케줄러 서비스에서 지정된 반복 간격이나 Cron 표현식에 따라 해당 엔드포인트가 트리거되도록 예약합니다.
이 다이어그램은 감시 폴더가 호출 요청을 처리하는 방식을 보여 줍니다.
감시 폴더를 사용하여 서비스를 호출하는 프로세스는 다음과 같습니다.
-
클라이언트 애플리케이션에서 파일이나 폴더를 감시 폴더 입력 폴더에 넣습니다.
-
작업 스캔 간격이 발생하면 스케줄러 서비스에서 provider.file_scan_service를 호출하여 입력 폴더의 파일이나 폴더를 처리합니다.
-
provider.file_scan_service는 다음 작업을 수행합니다.
- 입력 폴더에서 포함 파일 패턴과 일치하는 파일이나 폴더를 스캔하고 지정된 제외 파일 패턴에 맞는 파일이나 폴더를 제외합니다. 가장 오래된 파일이나 폴더를 먼저 가져옵니다. 대기 시간보다 오래된 파일과 폴더도 가져옵니다. 단일 스캔에서 처리되는 파일이나 폴더 수는 배치 크기에 따라 결정됩니다. 파일 패턴에 대한 자세한 내용은 파일 패턴 정보를 참조하십시오. 배치 크기 설정에 대한 자세한 정보는 감시 폴더 서비스 설정을 참조하십시오.
- 처리할 파일이나 폴더를 가져옵니다. 파일이나 폴더가 완전히 다운로드되지 않은 경우 다음 스캔에서 해당 파일이나 폴더를 가져옵니다. 폴더가 완전히 다운로드되도록 하려면 관리자는 제외 파일 패턴을 사용하여 이름이 지정된 폴더를 만들어야 합니다. 모든 파일을 해당 폴더에 넣은 후에는 포함 파일 패턴에 지정된 패턴으로 해당 폴더의 이름을 바꿔야 합니다. 이 단계에서는 서비스를 호출하는 데 필요한 모든 필수 파일이 해당 폴더에 포함되어 있도록 합니다. 폴더가 완전히 다운로드되도록 하는 방법에 대한 자세한 내용은 감시 폴더에 대한 팁과 요령을 참조하십시오.
- 처리할 파일이나 폴더를 선택한 후 스테이지 폴더로 이동합니다.
- 엔드포인트 입력 매개변수 매핑을 기반으로 스테이지 폴더에 있는 파일이나 폴더를 적절한 입력으로 변환합니다. 입력 매개변수 매핑의 예는 감시 폴더에 대한 팁과 요령을 참조하십시오.
-
엔드포인트에 대해 구성된 대상 서비스는 동기식으로 또는 비동기식으로 호출됩니다. 대상 서비스는 엔드포인트에 대해 구성된 사용자 이름 및 암호를 사용하여 호출됩니다.
- 동기 호출은 대상 서비스를 직접 호출하고 응답을 즉시 처리합니다.
- 비동기 호출의 경우 대상 서비스는 작업 관리자 서비스를 통해 호출되며 요청이 대기열에 추가됩니다. 그러면 작업 관리자 서비스에서 provider.file_write_results_service를 호출하여 결과를 처리합니다.
-
provider. file_write_results_service는 대상 서비스 호출의 응답이나 실패를 처리합니다. 성공한 경우 출력은 엔드포인트 구성에 따라 결과 폴더에 저장됩니다. provider.file_write_results_service는 엔드포인트가 성공적으로 완료 시 결과를 보존하도록 구성된 경우에도 소스를 보존합니다.
대상 서비스 호출이 실패한 경우 provider. file_write_results_service는 failure. log 파일에 실패 이유를 기록하고 해당 파일을 실패 폴더에 넣습니다. 실패 폴더는 엔드포인트에 대해 지정된 구성 매개변수를 기반으로 생성됩니다. 관리자가 엔드포인트 구성에 대해 실패 시 보존 옵션을 설정하면 provider. file_write_results_service도 소스 파일을 실패 폴더에 복사합니다. 실패 폴더에서 파일을 복구하는 방법에 대한 자세한 내용은 실패 지점 및 복구를 참조하십시오.
감시 폴더 엔드포인트 설정 watched-folder-endpoint-settings
다음 설정을 사용하여 감시 폴더 엔드포인트를 구성합니다.
이름: (필수) 엔드포인트를 식별합니다. < 문자를 포함하지 마십시오. Workspace에 표시되는 이름이 잘립니다. 엔드포인트 이름으로 URL을 입력하는 경우 해당 URL이 RFC1738에 지정된 구문 규칙을 준수하는지 확인하십시오.
설명: 엔드포인트에 대한 설명입니다. < 문자를 포함하지 마십시오. Workspace에 표시되는 설명이 잘립니다.
경로: (필수) 감시 폴더 위치를 지정합니다. 클러스터링된 환경에서 이 설정은 클러스터의 모든 컴퓨터에서 액세스할 수 있는 공유 네트워크 폴더를 가리켜야 합니다.
비동기: 호출 유형을 비동기 또는 동기로 식별합니다. 기본값은 비동기입니다. 장기 프로세스에는 비동기 방식을 권장하고 일시적이거나 단기 프로세스에는 동기 방식을 권장합니다.
Cron 표현식: Cron 표현식을 사용하여 감시 폴더를 예약해야 하는 경우 Cron 표현식을 입력합니다. 이 설정이 구성되면 반복 간격은 무시됩니다.
반복 간격: 감시 폴더에서 입력을 스캔하는 간격(초)입니다. 제한 설정이 활성화되어 있지 않으면 반복 간격은 평균 작업을 처리하는 데 걸리는 시간보다 길어야 합니다. 그렇지 않으면 시스템이 과부하될 수 있습니다. 기본값은 5입니다. 자세한 내용은 배치 크기에 대한 설명을 참조하십시오.
반복 횟수: 감시 폴더에서 폴더나 디렉터리를 스캔하는 횟수입니다. -1 값은 무한 스캔을 나타냅니다. 기본값은 -1입니다.
제한: 이 옵션을 선택하면 AEM Forms가 특정 시점에 처리하는 감시 폴더 작업 수가 제한됩니다. 최대 작업 수는 배치 크기 값에 따라 결정됩니다. (제한 정보를 참조하십시오.)
사용자 이름: (필수) 감시 폴더에서 대상 서비스를 호출할 때 사용되는 사용자 이름입니다. 기본값은 SuperAdmin입니다.
도메인 이름: (필수) 사용자의 도메인입니다. 기본값은 DefaultDom입니다.
배치 크기: 스캔당 가져올 파일이나 폴더 수입니다. 시스템 과부하를 방지하기 위해 사용합니다. 한 번에 너무 많은 파일을 스캔하면 충돌이 발생할 수 있습니다. 기본값은 2입니다.
반복 간격 및 배치 크기 설정에 따라 감시 폴더에서 스캔할 때마다 선택하는 파일 수가 결정됩니다. 감시 폴더는 Quartz 스레드 풀을 사용하여 입력 폴더를 스캔합니다. 이 스레드 풀은 다른 서비스와 공유됩니다. 스캔 간격이 짧으면 스레드는 입력 폴더를 자주 스캔합니다. 감시 폴더에 파일이 자주 추가되면 스캔 간격을 짧게 유지해야 합니다. 파일이 자주 추가되지 않으면 다른 서비스에서 스레드를 사용할 수 있도록 스캔 간격을 더 길게 설정하여 사용하십시오.
파일이 대량으로 추가되는 경우에는 배치 크기를 크게 설정합니다. 예를 들어 감시 폴더 엔드포인트에서 호출한 서비스가 분당 700개의 파일을 처리할 수 있고 사용자가 동일한 속도로 파일을 입력 폴더에 추가하는 경우 배치 크기를 350으로, 반복 간격을 30초로 설정하면 감시 폴더를 너무 자주 스캔하는 데 따른 비용을 들이지 않고도 감시 폴더의 성능을 높일 수 있습니다.
감시 폴더에 파일이 추가되면 입력 폴더에 해당 파일이 나열됩니다. 1초마다 스캔이 이루어지는 경우 이 작업으로 인해 성능이 저하될 수 있습니다. 스캔 간격을 늘리면 성능이 향상될 수 있습니다. 추가되는 파일 양이 적으면 배치 크기와 반복 간격을 적절히 조정하십시오. 예를 들어 1초마다 10개의 파일이 추가되는 경우 반복 간격을 1초로, 배치 크기를 10으로 설정해 보십시오.
대기 시간: 폴더나 파일이 생성된 후 해당 폴더나 파일을 스캔하기 전까지 기다리는 시간(밀리초)입니다. 예를 들어 대기 시간이 3,600,000밀리초(1시간)이고 파일이 1분 전에 생성된 경우 59분 이상이 지난 후에 해당 파일을 가져옵니다. 기본값은 0입니다.
이 설정은 파일이나 폴더가 입력 폴더에 완전히 복사되도록 하는 데 유용합니다. 예를 들어 처리할 파일이 크고 파일을 다운로드하는 데 10분이 걸리는 경우 대기 시간을 10*60 *1000밀리초로 설정합니다. 이렇게 하면 감시 폴더에서 10분이 지나지 않은 파일을 스캔하지 않습니다.
제외 파일 패턴: 세미콜론(;)으로 구분된 패턴 목록으로, 감시 폴더에서 스캔하고 가져올 파일과 폴더를 결정하는 데 사용합니다. 이 패턴을 가진 파일이나 폴더는 처리 대상으로 스캔되지 않습니다.
이 설정은 입력이 여러 파일이 포함된 폴더일 때 유용합니다. 폴더 콘텐츠를 감시 폴더에서 가져올 이름의 폴더에 복사할 수 있습니다. 이렇게 하면 폴더가 입력 폴더에 완전히 복사되기 전에 감시 폴더에서 해당 폴더를 처리 대상으로 가져오지 않습니다.
파일 패턴을 사용하여 다음 파일을 제외할 수 있습니다.
-
특정 파일 이름 확장자를 가진 파일(예: *.dat, *.xml, *.pdf)
-
특정 이름을 가진 파일(예: data).*는 data1, data2 등의 이름이 지정된 파일과 폴더를 제외합니다.
-
다음 예와 같이 이름과 확장자에 복합 표현식이 포함된 파일:
- Data[0-9][0-9][0-9].[dD][aA]'port'
- *.[dD][Aa]'port'
- *.[Xx][Mm][Ll]
파일 패턴에 대한 자세한 내용은 파일 패턴 정보를 참조하십시오.
포함 파일 패턴: (필수) 세미콜론(;)으로 구분된 패턴 목록으로, 감시 폴더에서 스캔하고 가져올 폴더와 파일을 결정하는 데 사용합니다. 예를 들어 포함 파일 패턴이 input*인 경우 input*와 일치하는 모든 파일과 폴더를 가져옵니다. 여기에는 input1, input2 등의 이름이 지정된 파일과 폴더가 포함됩니다.
기본값은 *이며 모든 파일과 폴더를 나타냅니다.
파일 패턴을 사용하여 다음 파일을 포함할 수 있습니다.
-
특정 파일 이름 확장자를 가진 파일(예: *.dat, *.xml, *.pdf)
-
특정 이름을 가진 파일(예: data).*는 data1, data2 등의 이름이 지정된 파일과 폴더를 포함합니다.
-
다음 예와 같이 이름과 확장자에 복합 표현식이 포함된 파일:
- Data[0-9][0-9][0-9].[dD][aA]'port'
- *.[dD][Aa]'port'
- *.[Xx][Mm][Ll]
파일 패턴에 대한 자세한 내용은 파일 패턴 정보를 참조하십시오.
결과 폴더: 저장된 결과가 저장되는 폴더입니다. 결과가 이 폴더에 나타나지 않으면 실패 폴더를 확인하십시오. 읽기 전용 파일은 처리되지 않으며 실패 폴더에 저장됩니다. 이 값은 다음과 같은 파일 패턴이 포함된 절대 경로 또는 상대 경로일 수 있습니다.
- %F = 파일 이름 접두사
- %E = 파일 이름 확장자
- %Y = 연도(전체)
- %y = 연도(마지막 두 자리)
- %M = 월
- %D = 날짜
- %d = 일(연간)
- %H = 시간(24시간제)
- %h = 시간(12시간제)
- %m = 분
- %s = 초
- %l = 밀리초
- %R = 난수(0~9)
- %P = 프로세스 또는 작업 ID
예를 들어 2009년 7월 17일 오후 8시이고 C:/Test/WF0/failure/%Y/%M/%D/%H/
를 지정하는 경우 결과 폴더는 C:/Test/WF0/failure/2009/07/17/20
입니다.
경로가 절대 경로가 아닌 상대 경로인 경우 해당 폴더는 감시 폴더 내에 생성됩니다. 기본값은 감시 폴더 내에 있는 결과 폴더인 result/%Y/%M/%D/입니다. 파일 패턴에 대한 자세한 내용은 파일 패턴 정보를 참조하십시오.
result/%Y%M%D%H
와 같은 패턴을 시도해 보십시오. 부하가 더 작은 경우(예: 일당 파일 1,000개) result/%Y%M%D
와 같은 패턴을 사용할 수 있습니다.보존 폴더: 스캔과 가져오기가 성공적으로 완료된 후 파일이 저장되는 위치입니다. 경로는 절대 경로, 상대 경로 또는 null 디렉터리 경로일 수 있습니다. 결과 폴더에 대해 설명된 대로 파일 패턴을 사용할 수 있습니다. 기본값은 preserve/%Y/%M/%D/입니다.
실패 폴더: 실패 파일이 저장되는 폴더입니다. 이 위치는 항상 감시 폴더를 기준으로 합니다. 결과 폴더에 대해 설명된 대로 파일 패턴을 사용할 수 있습니다.
읽기 전용 파일은 처리되지 않으며 실패 폴더에 저장됩니다.
기본값은 failure/%Y/%M/%D/입니다.
실패 시 보존: 서비스에서 작업 실행에 실패할 경우 입력 파일을 보존합니다. 기본값은 true입니다.
중복된 파일 이름 덮어쓰기: True로 설정하면 결과 폴더와 보존 폴더에 있는 파일을 덮어씁니다. False로 설정하면 숫자 색인 접미사가 있는 파일과 폴더가 이름으로 사용됩니다. 기본값은 False입니다.
제거 기간: (필수) 결과 폴더에 있는 파일과 폴더가 이 값보다 오래되면 제거됩니다. 이 값은 일 단위로 측정됩니다. 이 설정은 결과 폴더가 가득 차지 않도록 하는 데 유용합니다.
-1일 값은 결과 폴더를 삭제하지 않음을 나타냅니다. 기본값은 -1입니다.
작업 이름: (필수) 감시 폴더 엔드포인트에 할당할 수 있는 작업 목록입니다.
입력 매개변수 매핑: 서비스 및 작업을 처리하는 데 필요한 입력을 구성하는 데 사용됩니다. 사용 가능한 설정은 감시 폴더 엔드포인트를 사용하는 서비스에 따라 달라집니다. 입력에는 다음과 같은 두 가지 유형이 있습니다.
리터럴: 감시 폴더는 표시되는 대로 필드에 입력된 값을 사용합니다. 모든 기본 Java 유형이 지원됩니다. 예를 들어 API가 String, long, int, Boolean과 같은 입력을 사용하는 경우 해당 문자열은 적절한 유형으로 변환되고 서비스가 호출됩니다.
변수: 입력된 값은 감시 폴더가 입력을 가져오는 데 사용하는 파일 패턴입니다. 예를 들어 암호화 암호 서비스가 있고 입력 문서가 PDF 파일이어야 하는 경우 사용자는 *. pdf를 파일 패턴으로 사용할 수 있습니다. 감시 폴더에서 이 패턴과 일치하는 감시 폴더 내의 모든 파일을 가져오고 각 파일에 대한 서비스를 호출합니다. 변수를 사용하면 모든 입력 파일이 문서로 변환됩니다. 입력 유형으로 문서를 사용하는 API만 지원됩니다.
출력 매개변수 매핑: 서비스 및 작업 출력을 구성하는 데 사용됩니다. 사용 가능한 설정은 감시 폴더 엔드포인트를 사용하는 서비스에 따라 달라집니다.
감시 폴더 출력은 단일 문서, 문서 목록 또는 문서 맵일 수 있습니다. 이러한 출력 문서는 출력 매개변수 매핑에 지정된 패턴을 사용하여 결과 폴더에 저장됩니다.
%F.%E
(입력 파일의 파일 이름과 확장자)에 매핑하는 경우를 생각해 보십시오. 이 경우 사용자가 1분마다 이름이 동일한 파일을 추가하고, 결과 폴더가 result/%Y/%M/%D
로 구성되고, 중복된 파일 이름 덮어쓰기 설정이 꺼져 있으면 감시 폴더에서 중복된 파일 이름을 해결하려고 시도합니다. 중복된 파일 이름을 해결하는 프로세스는 성능에 영향을 미칠 수 있습니다. 이러한 상황에서는 출력 매개변수 매핑을 %F_%h_%m_%s_%l
로 변경하여 이름에 시, 분, 초, 밀리초를 추가하거나 추가되는 파일에 고유한 이름이 지정되도록 하면 성능이 향상될 수 있습니다.파일 패턴 정보 about-file-patterns
관리자는 서비스를 호출할 수 있는 파일 유형을 지정할 수 있습니다. 각 감시 폴더에 대해 여러 파일 패턴을 설정할 수 있습니다. 파일 패턴은 다음과 같은 파일 속성 중 하나일 수 있습니다.
-
특정 파일 이름 확장자를 가진 파일. 예: *.dat, *.xml, *.pdf
-
특정 이름을 가진 파일. 예: data.*
-
다음 예와 같이 이름과 확장자에 복합 표현식이 포함된 파일:
- Data[0-9][0-9][0-9].[dD][aA]'port'
- *.[dD][Aa]'port'
- *.[Xx][Mm][Ll]
관리자는 결과를 저장할 출력 폴더의 파일 패턴을 정의할 수 있습니다. 출력 폴더(결과, 보존, 실패)의 경우 관리자는 다음과 같은 파일 패턴을 지정할 수 있습니다.
- %Y = 연도(전체)
- %y = 연도(마지막 두 자리)
- %M = 월
- %D = 날짜
- %d = 일(연간)
- %h = 시간
- %m = 분
- %s = 초
- %R = 난수(0~9)
- %J = 작업 이름
예를 들어 결과 폴더의 경로는 C:\Adobe\Adobe_Experience_Manager_forms\BarcodedForms\%y\%m\%d
일 수 있습니다.
출력 매개변수 매핑은 다음과 같은 추가 패턴을 지정할 수도 있습니다.
- %F = 소스 파일 이름
- %E = 소스 파일 이름 확장자
출력 매개변수 매핑 패턴이 'File. separator'(경로 구분자)로 끝나면 폴더가 생성되고 콘텐츠가 해당 폴더에 복사됩니다. 패턴이 'File. separator'로 끝나지 않으면 해당 이름으로 콘텐츠(결과 파일 또는 폴더)가 생성됩니다. 출력 매개변수 매핑에 대한 자세한 내용은 감시 폴더에 대한 팁과 요령을 참조하십시오.
제한 정보 about-throttling
감시 폴더 엔드포인트에 대해 제한이 활성화되면 특정 시점에 처리할 수 있는 감시 폴더 작업 수가 제한됩니다. 최대 작업 수는 배치 크기 값에 따라 결정되며 이 값은 감시 폴더 엔드포인트에서도 구성할 수 있습니다. 감시 폴더의 입력 디렉터리에 있는 수신 문서는 제한에 도달하면 폴링되지 않습니다. 다른 감시 폴더 작업이 완료되고 다시 폴링을 시도할 때까지 해당 문서는 입력 디렉터리에 남아 있습니다. 동기 처리가 있는 경우 단일 폴에서 처리되는 모든 작업은 작업이 단일 스레드에서 연속적으로 처리되더라도 제한에 포함됩니다.
제한 작동 방식 how-throttling-works
감시 폴더는 반복 간격마다 입력 폴더를 스캔하고 배치 크기에 지정된 수의 파일을 가져오며 이러한 각 파일에 대한 대상 서비스를 호출합니다. 예를 들어 배치 크기가 4인 경우 감시 폴더는 스캔할 때마다 파일 4개를 가져오고 호출 요청 4개를 만들며 대상 서비스를 호출합니다. 해당 요청이 완료되기 전에 감시 폴더가 호출되면 이전 작업 4개가 완료되었는지 여부와 관계없이 작업 4개가 다시 시작됩니다.
제한은 이전 작업이 완료되지 않은 경우 감시 폴더가 새 작업을 호출하지 못하도록 합니다. 감시 폴더는 진행 중인 작업을 감지하고 배치 크기에서 진행 중인 작업 수를 뺀 값을 기준으로 새 작업을 처리합니다. 예를 들어 두 번째 호출에서 완료된 작업 수가 3개뿐이고 한 작업은 아직 진행 중인 경우 감시 폴더는 작업 3개만 더 호출합니다.
- 감시 폴더는 스테이지 폴더에 있는 파일 수를 기준으로 현재 진행 중인 작업 수를 파악합니다. 파일이 스테이지 폴더에 처리되지 않은 채로 남아 있으면 감시 폴더는 더 이상 작업을 호출하지 않습니다. 예를 들어 배치 크기가 4이고 작업 3개가 중단된 경우 감시 폴더는 후속 호출에서 한 작업만 호출합니다. 파일이 스테이지 폴더에서 처리되지 않은 채로 남아 있을 수 있는 시나리오는 여러 가지가 있습니다. 작업이 중단되면 관리자는 Forms Workflow 관리 페이지에서 프로세스를 종료하여 감시 폴더가 파일을 스테이지 폴더 밖으로 이동하도록 할 수 있습니다.
- 감시 폴더가 작업을 호출하기 전에 Forms 서버가 다운되면 관리자는 파일을 스테이지 폴더 밖으로 이동할 수 있습니다. 자세한 내용은 실패 지점 및 복구를 참조하십시오.
- 작업 관리자 서비스가 다시 호출할 때 Forms 서버가 실행 중이지만, 감시 폴더는 실행 중이 아닌 경우(서비스가 정해진 순서대로 시작되지 않을 때 발생) 관리자는 파일을 스테이지 폴더 밖으로 이동할 수 있습니다. 자세한 내용은 실패 지점 및 복구를 참조하십시오.
성능 및 확장성 performance-and-scalability
감시 폴더는 단일 노드에서 총 100개의 폴더를 처리할 수 있습니다. 감시 폴더의 성능은 Forms 서버의 성능에 따라 달라집니다. 비동기 호출의 경우 성능은 시스템 부하와 작업 관리자 대기열에 있는 작업에 따라 더 크게 달라집니다.
클러스터에 노드를 추가하면 감시 폴더 성능을 향상할 수 있습니다. 감시 폴더 작업은 Quartz 스케줄러를 통해 클러스터 노드에 분산되고 비동기 요청이 있는 경우에는 작업 관리자 서비스를 통해 분산됩니다. 모든 작업은 데이터베이스에 영구적으로 보관됩니다.
감시 폴더는 작업 예약, 예약 취소, 예약 변경을 위해 스케줄러 서비스에 의존합니다. 이벤트 관리 서비스, 사용자 관리자 서비스, 이메일 공급자 서비스와 같이 스케줄러 서비스 스레드 풀을 공유하는 다른 서비스도 있습니다. 해당 서비스는 감시 폴더 성능에 영향을 미칠 수 있습니다. 모든 서비스에서 스케줄러 서비스 스레드 풀을 사용하기 시작하면 해당 풀을 조정해야 합니다.
클러스터의 감시 폴더 watched-folders-in-a-cluster
클러스터에서 감시 폴더는 부하 분산 및 장애 조치를 위해 Quartz 스케줄러와 작업 관리자 서비스에 의존합니다. Quartz 클러스터 동작에 대한 자세한 내용은 Quartz 설명서를 참조하십시오.
감시 폴더는 각 폴에서 다음과 같은 세 가지 주요 작업을 수행합니다.
- 폴더 스캔
- 대상 서비스 호출
- 결과 처리
부하 분산 및 장애 조치 동작은 감시 폴더가 동기 호출 또는 비동기 호출로 구성되어 있는지 여부에 따라 달라집니다.
클러스터의 동기 감시 폴더 synchronous-watched-folder-in-a-cluster
동기 호출의 경우 Quartz 로드 밸런서는 어떤 노드가 폴링 이벤트를 받을지를 결정합니다. 폴링 이벤트를 받는 노드는 폴더 스캔, 대상 서비스 호출, 결과 처리와 같은 모든 작업을 수행합니다.
동기 호출의 경우 한 노드가 실패하면 Quartz 스케줄러는 다른 노드로 새로운 폴링 이벤트를 보냅니다. 실패한 노드에서 시작된 호출은 손실됩니다. 실패한 작업과 연결된 파일을 복구하는 방법에 대한 자세한 내용은 실패 지점 및 복구를 참조하십시오.
클러스터의 비동기 감시 폴더 asynchronous-watched-folder-in-a-cluster
비동기 호출의 경우 Quartz 로드 밸런서는 어떤 노드가 폴링 이벤트를 받을지를 결정합니다. 폴링 이벤트를 받는 노드는 입력 폴더를 스캔하고 작업 관리자 서비스 대기열에 요청을 넣어 대상 서비스를 호출합니다. 그러면 작업 관리자 서비스 로드 밸런서가 호출 요청을 처리할 노드를 결정하는 역할을 합니다. 노드 A가 호출 요청을 만들었더라도 결국 노드 B가 해당 요청을 처리할 수도 있습니다. 또는 호출 요청을 시작한 노드가 결과적으로 해당 요청을 처리할 수도 있습니다.
비동기 호출의 경우 한 노드가 실패하면 Quartz 스케줄러는 다른 노드로 새로운 폴링 이벤트를 보냅니다. 실패한 노드에서 생성된 호출 요청은 작업 관리자 서비스 대기열에 추가되고 처리를 위해 다른 노드로 전송됩니다. 호출 요청이 생성되지 않은 파일은 스테이지 폴더에 남아 있습니다. 실패한 작업과 연결된 파일을 복구하는 방법에 대한 자세한 내용은 실패 지점 및 복구를 참조하십시오.
실패 지점 및 복구 failure-points-and-recovery
각 폴 이벤트에서 감시 폴더는 입력 폴더를 잠그고 포함 파일 패턴과 일치하는 파일을 스테이지 폴더로 이동한 후 입력 폴더를 잠금 해제합니다. 두 개의 스레드가 동일한 파일 집합을 가져와서 두 번 처리하지 못하도록 하려면 잠금이 필요합니다. 잠금이 발생할 가능성은 반복 간격이 짧고 배치 크기가 클수록 커집니다. 파일이 스테이지 폴더로 이동하면 입력 폴더의 잠금이 해제되어 다른 스레드가 해당 폴더를 스캔할 수 있습니다. 이 단계는 한 스레드가 파일을 처리하는 동안 다른 스레드가 스캔할 수 있기 때문에 높은 처리량을 제공하는 데 도움이 됩니다.
파일이 스테이지 폴더로 이동한 후 각 파일에 대한 호출 요청이 생성되고 대상 서비스가 호출됩니다. 감시 폴더가 스테이지 폴더의 파일을 복구할 수 없는 경우가 있을 수 있습니다.
- 감시 폴더가 호출 요청을 만들기 전에 서버가 다운되면 스테이지 폴더의 파일은 스테이지 폴더에 남아 있으며 복구되지 않습니다.
- 감시 폴더가 스테이지 폴더의 각 파일에 대한 호출 요청을 만든 후 서버가 충돌하는 경우 호출 유형에 따라 두 가지 동작이 발생합니다.
동기: 감시 폴더가 서비스를 동기식으로 호출하도록 구성된 경우 스테이지 폴더에 있는 모든 파일은 스테이지 폴더에서 처리되지 않은 상태로 남아 있습니다.
비동기: 이 경우 감시 폴더는 작업 관리자 서비스에 의존합니다. 작업 관리자 서비스가 감시 폴더를 다시 호출하면 호출 결과에 따라 스테이지 폴더의 파일이 보존 폴더나 실패 폴더로 이동합니다. 작업 관리자 서비스가 감시 폴더를 다시 호출하지 않으면 해당 파일은 스테이지 폴더에서 처리되지 않은 상태로 남아 있게 됩니다. 이 상황은 감시 폴더가 실행되고 있지 않은 상태에서 작업 관리자가 다시 호출할 때 발생합니다.
스테이지 폴더에서 처리되지 않은 소스 파일 복구 recovering-unprocessed-source-files-in-the-stage-folder
감시 폴더가 스테이지 폴더의 소스 파일을 처리할 수 없는 경우 처리되지 않은 파일을 복구할 수 있습니다.
-
애플리케이션 서버나 노드를 다시 시작합니다.
-
(선택 사항) 감시 폴더가 새로운 입력 파일을 처리하지 못하도록 합니다. 이 단계를 건너뛰면 스테이지 폴더에서 어떤 파일이 처리되지 않았는지 파악하기가 훨씬 더 어려워집니다. 감시 폴더가 새로운 입력 파일을 처리하지 못하도록 하려면 다음 작업 중 하나를 수행합니다.
- 애플리케이션 및 서비스에서 감시 폴더 엔드포인트에 대한 포함 파일 패턴 매개변수를 새로운 입력 파일과 일치하지 않는 항목으로 변경합니다(예:
NOMATCH
입력). - 새로운 입력 파일을 만드는 프로세스를 일시 중단합니다.
AEM Forms가 모든 파일을 복구하여 처리할 때까지 기다립니다. 대부분의 파일이 복구되어야 하며 새로운 입력 파일은 모두 올바르게 처리되어야 합니다. 감시 폴더가 파일을 복구하고 처리하는 데 걸리는 시간은 호출할 작업 길이와 복구할 파일 수에 따라 달라집니다.
- 애플리케이션 및 서비스에서 감시 폴더 엔드포인트에 대한 포함 파일 패턴 매개변수를 새로운 입력 파일과 일치하지 않는 항목으로 변경합니다(예:
-
처리할 수 없는 파일을 확인합니다. 적절한 시간을 기다렸다가 이전 단계를 완료했는데도 스테이지 폴더에 처리되지 않은 파일이 여전히 남아 있다면 다음 단계로 이동하십시오.
note note NOTE 스테이지 디렉터리에서 파일 일자 및 타임스탬프를 볼 수 있습니다. 파일 수와 일반적인 처리 시간에 따라 어떤 파일이 멈춘 것으로 간주될 만큼 오래된 것인지 판단할 수 있습니다. -
처리되지 않은 파일을 스테이지 디렉터리에서 입력 디렉터리로 복사합니다.
-
2단계에서 감시 폴더가 새로운 입력 파일을 처리하지 못하도록 한 경우 포함 파일 패턴을 이전 값으로 변경하거나 비활성화한 프로세스를 다시 활성화합니다.
감시 폴더에 대한 보안 고려 사항 security-considerations-for-watched-folders
각 감시 폴더는 사용자 이름 및 암호로 구성됩니다. 이러한 자격 증명은 서비스를 호출할 때 사용됩니다. 감시 폴더는 공유 폴더가 기본 보안 파일 시스템으로 보호되어 감시 폴더 소유자만 공유 폴더에 액세스할 수 있다는 사실에 의존합니다.
감시 폴더에 대한 팁과 요령 tips-and-tricks-for-watched-folders
감시 폴더 엔드포인트를 구성할 때 유용한 몇 가지 팁과 요령은 다음과 같습니다.
-
Windows에 이미지 파일을 처리하는 감시 폴더가 있는 경우 포함 파일 패턴 또는 제외 파일 패턴 옵션에 대한 값을 지정하여 Windows에서 자동 생성된 Thumbs.db 파일이 감시 폴더에서 폴링되지 않도록 합니다.
-
Cron 표현식이 지정되면 반복 간격은 무시됩니다. Cron 표현식 사용법은 Quartz 오픈 소스 작업 예약 시스템 버전 1.4.0을 기반으로 합니다.
-
배치 크기는 감시 폴더에서 스캔할 때마다 가져올 파일 또는 폴더 수입니다. 배치 크기가 2로 설정되어 있고 파일 또는 폴더 10개가 감시 폴더 입력 폴더에 추가되어 있는 경우 스캔할 때마다 2개만 가져옵니다. 반복 간격에서 지정한 시간 이후에 수행되는 다음 스캔에서는 다음 두 파일을 가져옵니다.
-
파일 패턴의 경우 관리자는 와일드카드 패턴이 추가로 지원되는 정규 표현식을 지정하여 파일 패턴을 지정할 수 있습니다. 감시 폴더는 *.* 또는 *.pdf와 같은 와일드카드 패턴을 지원하도록정규 표현식을 수정합니다. 이러한 와일드카드 패턴은 정규 표현식에서 지원되지 않습니다.
-
감시 폴더는 입력을 위해 입력 폴더를 스캔하지만, 소스 파일이나 폴더를 처리하기 전에 해당 파일이나 폴더가 입력 폴더에 완전히 복사되었는지는 알 수 없습니다. 소스 파일이나 폴더를 가져오기 전에 해당 파일이나 폴더가 감시 폴더의 입력 폴더에 완전히 복사되도록 하려면 다음 작업을 수행하십시오.
- 대기 시간을 사용합니다. 대기 시간은 감시 폴더가 마지막 수정 시간부터 대기하는 시간(밀리초)입니다. 처리할 파일이 큰 경우 이 기능을 사용하십시오. 예를 들어 파일을 다운로드하는 데 10분이 걸리는 경우 대기 시간을 10*60 *1000밀리초로 지정합니다. 이렇게 하면 감시 폴더가 10분이 지나지 않은 파일을 가져오지 않습니다.
- 제외 파일 패턴과 포함 파일 패턴을 사용합니다. 예를 들어 제외 파일 패턴이
ex*
이고 포함 파일 패턴이in*
인 경우 감시 폴더는 'in'으로 시작하는 파일을 가져오고 'ex'로 시작하는 파일은 가져오지 않습니다. 큰 파일이나 폴더를 복사하려면 먼저 파일이나 폴더의 이름을 'ex'로 시작하도록 바꿉니다. 'ex'라는 파일이나 폴더가 감시 폴더에 완전히 복사된 후 해당 파일이나 폴더의 이름을 'in*'로 바꿉니다.
-
제거 기간을 사용하여 결과 폴더를 깔끔하게 유지합니다. 감시 폴더는 제거 기간에 지정된 기간보다 오래된 파일을 모두 정리합니다. 제거 기간은 일 단위입니다.
-
감시 폴더 엔드포인트를 추가할 때 작업 이름을 선택하면 입력 매개변수 매핑이 채워집니다. 각 작업 입력에 대해 하나의 입력 매개변수 매핑 필드가 생성됩니다. 다음은 입력 매개변수 매핑의 예입니다.
com.adobe.idp.Document
입력: 서비스 작업에Document
유형의 입력이 있는 경우 관리자는 매핑 유형을Variable
로 지정할 수 있습니다. 감시 폴더는 입력 매개변수에 지정된 파일 패턴을 기반으로 감시 폴더의 입력 폴더에서 입력을 가져옵니다. 관리자가 매개변수로*.pdf
를 지정하면 확장자가 .pdf인 각 파일을 가져와서com.adobe.idp.Document
로 변환하고 서비스를 호출합니다.java.util.Map
입력: 서비스 작업에Map
유형의 입력이 있는 경우 관리자는 매핑 유형을Variable
로 지정하고*.pdf
와 같은 패턴으로 매핑 값을 입력할 수 있습니다. 예를 들어 서비스에는 입력 폴더에 있는 1. pdf 및 2. pdf와 같은 두 개의 파일을 나타내는 두 개의com.adobe.idp.Document
오브젝트 맵이 필요합니다. 감시 폴더는 키를 파일 이름으로, 값을com.adobe.idp.Document
로 지정하여 맵을 만듭니다.java.util.List
입력: 서비스 작업에 목록 유형의 입력이 있는 경우 관리자는 매핑 유형을Variable
로 지정하고*.pdf
와 같은 패턴으로 매핑 값을 입력할 수 있습니다. PDF 파일을 입력 폴더에 추가하면 감시 폴더는 해당 파일을 나타내는com.adobe.idp.Document
오브젝트 목록을 만들고 대상 서비스를 호출합니다.java.lang.String
: 관리자에게는 두 가지 옵션이 있습니다. 첫째, 관리자는 매핑 유형을Literal
로 지정하고hello.
와 같은 문자열로 매핑 값을 입력합니다. 감시 폴더는hello
문자열을 사용하여 서비스를 호출합니다. 둘째, 관리자는 매핑 유형을Variable
로 지정하고*.txt
와 같은 패턴으로 매핑 값을 입력할 수 있습니다. 후자의 경우 .txt 확장자를 가진 파일은 서비스를 호출하기 위해 문자열로 강제 변환된 문서로 읽힙니다.- Java 기본 유형: 관리자는 매핑 유형을
Literal
로 지정하고 값을 제공할 수 있습니다. 감시 폴더는 지정된 값으로 서비스를 호출합니다.
-
감시 폴더는 문서 작업을 위해 설계되었습니다. 지원되는 출력은
com.adobe.idp.Document
,org.w3c.Document
,org.w3c.Node
와 해당 유형의 목록과 맵입니다. 다른 유형을 사용하면 실패 폴더에 실패 출력이 생성됩니다. -
결과가 결과 폴더에 없는 경우 실패 폴더를 확인하여 실패가 발생했는지 확인합니다.
-
감시 폴더는 비동기 모드에서 사용하면 가장 효과적입니다. 이 모드에서는 감시 폴더가 호출 요청을 대기열에 추가하고 다시 호출합니다. 그러면 대기열이 비동기식으로 처리됩니다. 비동기 옵션이 설정되지 않은 경우 감시 폴더는 대상 서비스를 동기식으로 호출하고 Process Engine은 서비스가 요청을 완료하고 결과가 생성될 때까지 기다립니다. 대상 서비스가 요청을 처리하는 데 시간이 오래 걸리는 경우 감시 폴더에 시간 초과 오류가 발생할 수 있습니다.
-
가져오기 및 내보내기 작업을 위해 감시 폴더를 만들면 파일 이름 확장자 추상화가 허용되지 않습니다. 감시 폴더를 사용하여 양식 데이터 통합 서비스를 호출할 때 출력 파일의 파일 이름 확장자 유형이 문서 오브젝트 유형의 의도된 출력 형식과 일치하지 않을 수 있습니다. 예를 들어 내보내기 작업을 호출하는 감시 폴더의 입력 파일이 데이터가 포함된 XFA 양식인 경우 출력은 XDP 데이터 파일이어야 합니다. 올바른 파일 이름 확장자를 가진 출력 파일을 얻으려면 출력 매개변수 매핑에서 해당 확장자를 지정할 수 있습니다. 이 예에서는 출력 매개변수 매핑에 %F.xdp를 사용할 수 있습니다.
-
감시 폴더는 입력 파일이 폴더에 완전히 복사되기 전에 해당 파일을 처리할 수 있습니다. UNIX에서는 파일 잠금이 필수가 아니지만 Windows에서는 필수입니다. 따라서 파일이 감시 폴더에 복사되는 동안 감시 폴더는 파일 복사가 완료될 때까지 기다리지 않고 해당 파일을 스테이지로 이동할 수 있습니다. 이 동작으로 인해 입력 파일의 일부만 처리됩니다. 현재 두 가지 해결 방법이 있습니다.
-
해결 방법 1
- 제외 파일 패턴에 대해 temp*.ps와 같은 패턴을 지정합니다.
- temp로 시작하는 파일(예: temp1.ps)을 감시 폴더에 복사합니다.
- 파일이 감시 폴더에 완전히 복사된 후 포함 파일 패턴에 지정된 패턴에 맞게 파일 이름을 바꿉니다. 감시 폴더가 완료된 파일을 스테이지로 이동합니다.
-
해결 방법 2
감시 폴더에 파일을 복사하는 데 걸리는 최대 시간을 알고 있는 경우 대기 시간에 해당 시간을 초 단위로 지정합니다. 그러면 감시 폴더가 파일을 스테이지로 이동하기 전에 지정된 시간 동안 기다립니다.
Windows에서는 한 스레드가 쓰기 작업을 할 때 파일을 잠그므로 Windows에 있는 파일은 문제가 되지 않습니다. 하지만 Windows에 있는 폴더는 문제가 됩니다. 폴더의 경우 해결 방법 1의 단계를 따라야 합니다.
-
-
감시 폴더의 보존 폴더 이름 엔드포인트 속성이 null 디렉터리 경로로 설정되어 있으면 스테이징 디렉터리가 제대로 정리되지 않습니다. 해당 디렉터리에는 처리된 파일과 임시 폴더가 여전히 포함되어 있습니다.
감시 폴더의 서비스별 권장 사항 service-specific-recommendations-for-watched-folders
모든 서비스에 대해 감시 폴더의 배치 크기와 반복 간격을 조정하여 감시 폴더가 처리를 위해 새 파일과 폴더를 가져오는 속도가 AEM Forms 서버에서 처리할 수 있는 작업 속도를 초과하지 않도록 해야 합니다. 실제로 사용할 매개변수는 구성된 감시 폴더 수, 감시 폴더를 사용하는 서비스, 작업이 프로세서에 가하는 부하에 따라 달라질 수 있습니다.
PDF 생성 서비스 권장 사항 generate-pdf-service-recommendations
- PDF 생성 서비스는 다음 파일 유형에 대해 한 번에 하나의 파일만 변환할 수 있습니다. Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Microsoft Project, AutoCAD, Adobe Photoshop®, Adobe FrameMaker®, Adobe PageMaker®. 이러한 작업은 장시간 실행되므로 배치 크기를 작게 유지해야 합니다. 클러스터에 노드가 더 많으면 반복 간격도 늘리십시오.
- PS(PostScript), EPS(Encapsulated PostScript) 및 이미지 파일 유형의 경우 PDF 생성 서비스는 여러 파일을 동시에 처리할 수 있습니다. 서버 용량과 클러스터의 노드 수에 따라 세션 빈 풀 크기(동시에 수행되는 변환 수를 결정함)를 신중하게 조정해야 합니다. 그런 다음, 변환하려는 파일 유형의 세션 빈 풀 크기와 동일한 숫자로 배치 크기를 늘립니다. 폴링 빈도는 클러스터의 노드 수에 따라 결정되어야 합니다. 그러나 PDF 생성 서비스는 이러한 종류의 작업을 매우 빠르게 처리하므로 반복 간격을 5 또는 10과 같이 낮은 값으로 구성할 수 있습니다.
- PDF 생성 서비스는 한 번에 하나의 OpenOffice 파일만 변환할 수 있지만 변환 속도는 매우 빠릅니다. 위에 명시된 PS, EPS 및 이미지 변환 논리는 OpenOffice 변환에도 적용됩니다.
- 클러스터 내에서 균일한 부하 분산을 가능하게 하려면 배치 크기를 작게 유지하고 반복 간격을 늘립니다.
Barcoded Forms Service 권장 사항 barcoded-forms-service-recommendations
-
바코드가 있는 양식(작은 파일)을 처리할 때 최상의 성능을 얻으려면 배치 크기에
10
, 반복 간격에2
를 입력합니다. -
입력 폴더에 많은 파일이 추가되면 thumbs. db 라는 숨겨진 파일에 오류가 발생할 수 있습니다. 따라서 포함 파일의 포함 파일 패턴을 입력 변수에 지정된 값(예:
*.tiff
)과 동일하게 설정하는 것이 좋습니다. 이렇게 하면 감시 폴더가 DB 파일을 처리하지 못합니다. -
일반적으로 일괄 처리 크기 값은
5
이고 반복 간격은2
이면 충분합니다. Barcoded Forms Service 는 보통 바코드 하나를 처리하는 데 약 0.5초가 걸립니다. -
감시 폴더는 Process Engine이 작업을 완료할 때까지 기다리지 않고 새 파일이나 폴더를 가져옵니다. 감시 폴더를 계속 스캔하면서 대상 서비스를 호출합니다. 이러한 동작은 엔진에 과부하를 일으켜 리소스 조달 문제와 시간 초과를 초래할 수 있습니다. 반복 간격과 배치 크기를 사용하여 감시 폴더 입력을 제한해야 합니다. 감시 폴더가 더 많은 경우 반복 간격을 늘리고 배치 크기를 줄이거나 엔드포인트에서 제한을 활성화할 수도 있습니다. 제한에 대한 자세한 내용은 제한 정보 참조하십시오.
-
감시 폴더는 사용자 이름과 도메인 이름에 지정된 사용자를 가장합니다. 감시 폴더는 직접 호출되거나 단기 프로세스인 경우 이 사용자로 서비스를 호출합니다. 장기 프로세스의 경우 해당 프로세스는 시스템 컨텍스트를 통해 호출됩니다. 관리자는 감시 폴더에 대한 운영 체제 정책을 설정하여 어떤 사용자에게 액세스를 허용하거나 거부할지를 결정할 수 있습니다.
-
파일 패턴을 사용하여 결과 폴더, 실패 폴더, 보존 폴더를 구성합니다. (파일 패턴 정보를 참조하십시오.)
-
감시 폴더는 감시 폴더를 스캔하기 위해 Quartz 스케줄러에 의존합니다. Quartz 스케줄러에는 감시 폴더를 스캔하기 위한 스레드 풀이 있습니다. 감시 폴더의 반복 간격이 매우 짧고(5초 미만) 배치 크기가 큰 경우(2개 초과) 경합 상태가 발생할 수 있습니다. 경합 상태가 발생하면 두 개의 Quartz 스레드가 파일 하나를 가져옵니다.
- 스레드 중 하나가 파일을 찾고 해당 파일을 사용하여 대상 서비스를 호출합니다.
- 두 번째 스레드가 파일을 발견하지만, 해당 파일이 유효한지(읽기 또는 쓰기 가능한 파일) 확인하려고 하면 실패합니다. 이로 인해 파일이 읽기 전용이어서 처리할 수 없다는 거짓 실패가 발생합니다. 이 현상은 반복 간격이 짧고 배치 크기가 큰 경우에만 발생합니다.