20 file job.conf 설정
hanmj edited this page 7 months ago

file-job.conf란?

file-job.conf 파일은 FileJobBean을 확장하여 정의하는 클래스가

  • 전송할 파일을 준비하는 작업
  • 수신한 파일을 처리하는 작업

을 구현하기 위한 정보를 설정하는 파일이다. 구체적으로

  • 작업관련 디렉토리
    • 전송/수신하는 파일이 위치하는 디렉토리
    • 파일 처리를 위한 작업 디렉토리
  • 파일작업별 설정
    • 필수정보
    • 파일작업별 고유정보
등을 설정한다.

위 내용들은 다음 레이아웃으로 정의한다.

{
    "dirs": {
        ...
    },

    "dirCodes": {
        ...
    },
    "jobs": [
        {
            ...
        },
        ...
    ]
}

작업관련 디렉토리 설정

"dirs": {
    "receive": "수신파일 최상위 디렉토리",
    "send": "전송파일 최상위 디렉토리",

    "working": "파일 작업 최상위 디렉토리",
    "success": "작업 성공한 파일의 최상위 디렉토리",
    "fail": "작업 실패한 파일의 최상위 디렉토리"
},

"dirCodes": {
    "디렉토리 코드 0": "파일종류별 경로 0",
	...
}
  • 'dirs'는 전송/수신 작업별 최상위 디렉토리를 설정한다.
  • 파일유형별 하위 작업 디렉토리는 'dirsCode'로 설정한다.
  • 파일유형별 실제 작업 디렉토리는 'dirs' + '코드로 선택한 dirCodes 경로'가 된다.

다음은 설정 사례이다.

"dirs": {
    "receive": "C:\\ESB_AGENT\\RCV",     /* 수신 파일 최상위 디렉토리 */
    "send": "C:\\ESB_AGENT\\SND",        /* 전송 파일 최상위 디렉토리 */

    "working": "C:\\workspace\\work",    /* 파일 작업 최상위 디렉토리 */
    "success": "C:\\workspace\\success", /* 작업 성공한 파일의 최상위 디렉토리 */
    "fail": "C:\\workspace\\fail"        /* 작업 실패한 파일의 최상위 디렉토리 */
},

"dirCodes": {
    "smg": "CG131000000768",             /* 국민신문고 기관코드 */
    ...
}

위 예에서 dirCodes'의 'smg를 선택하면

  • 수신파일 디렉토리: C:\ESB_AGENT\RCV\CG131000000768
  • 전송파일 디렉토리: C:\ESB_AGENT\SND\CG131000000768
  • 작업 디렉토리: C:\workspace\work\receive\CG131000000768
  • 작업 성공 디렉토리: C:\workspace\success\receive\CG131000000768
  • 작업 실패 디렉토리: C:\workspace\fail\receive\CG131000000768

등이 된다.

파일작업별 설정

"jobs": [
    {
        "name": "작업이름",
        "dirCode": "하위디렉토리 경로", /* <-- dirCodes */
		...
    },
	...
]

파일작업별 설정은 'jobs' 항목 아래에 정의한다.

필수정보

파일작업 설정 중 다음 항목은 필수다.

  • name: 작업이름, 'jobs' 항목 아래에서 유일해야 한다.
  • dirCode: 'dirCodes' 중 작업에서 사용할 하위 디렉토리 코드 선택

파일작업별 고유정보

필수항목 외에 작업에서 필요한 추가정보를 정의하려면 '키-값'의 쌍으로 나열한다.

다음은 국민신문고 전문을 전송/수신하는 작업을 정의한 예다.

"jobs": [
    {    /* 국민신문고 수신 */
        "name": "smg-receive",
        "dirCode": "smg", /* <-- dirCodes */
        "infoType": "010",
        "alert": "http://localhost:8080/xit-filegate/api/smg/petition/receive.do" /* 업무 통보 url */
    },
    {    /* 국민신문고 전송 */
        "name": "smg-send",
        "dirCode": "smg", /* <-- dirCodes */
        "alert": "http://localhost:8080/xit-filegate/api/smg/petition/reply.do"   /* 업무 통보 url */
    },
    ...
]

위 예에서 infoType, alert는 각 작업에서 사용하는 추가정보들이다.

설정 예제

위 예제를 정리하면 다음과 같다.

{
    "dirs": {
        "receive": "C:\\ESB_AGENT\\RCV",         /* 수신 파일 최상위 디렉토리 */
        "send": "C:\\ESB_AGENT\\SND",            /* 전송 파일 최상위 디렉토리 */

        "working": "C:\\workspace\\work",    /* 파일 작업 최상위 디렉토리 */
        "success": "C:\\workspace\\success", /* 작업 완료한 파일의 최상위 디렉토리 */
        "fail": "C:\\workspace\\fail"        /* 작업 실패한 파일의 최상위 디렉토리 */
    },

    "dirCodes": {
        "smg": "CG131000000768",                            /* 국민신문고 기관코드 */
        ...
    },

    "jobs": [
        {    /* 국민신문고 수신 */
            "name": "smg-receive",
            "dirCode": "smg", /* <-- dirCodes */
            "infoType": "010",
            "alert": "http://localhost:8080/xit-filegate/api/smg/petition/receive.do" /* 업무 통보 url */
        },
        {    /* 국민신문고 전송 */
            "name": "smg-send",
            "dirCode": "smg", /* <-- dirCodes */
            "alert": "http://localhost:8080/xit-filegate/api/smg/petition/reply.do"   /* 업무 통보 url */
        },
        ...
    ]
}