

AWS Mainframe Modernization Service(관리형 런타임 환경 환경 환경)는 더 이상 신규 고객에게 공개되지 않습니다. AWS Mainframe Modernization Service(관리형 런타임 환경 환경)와 유사한 기능은 AWS Mainframe Modernization Service(자체 관리형 환경)를 참조하세요. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [AWS Mainframe Modernization 가용성 변경을](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html) 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 메인프레임 사용자의 AWS 변환을 위한 데이터 구조
<a name="ba-endpoints-apx"></a>

다음 섹션에서 메인프레임 엔진용 AWS 변환의 다양한 데이터 구조에 대해 알아볼 수 있습니다.

**Topics**
+ [작업 실행 세부 정보 메시지 구조](#job-execution-details)
+ [트랜잭션 시작 결과 구조](#transaction-outcome)
+ [거래 시작 기록 결과 구조](#transaction-record-outcome)
+ [큐에 있는 작업의 가능한 상태](#jobs-status)
+ [작업 제출 및 작업 입력 예약](#submit-job)
+ [예정된 작업 응답 목록](#list-scheduled-jobs)
+ [반복 작업 응답 목록](#list-on-hold-jobs)

## 작업 실행 세부 정보 메시지 구조
<a name="job-execution-details"></a>

각 작업 실행 세부 정보에는 다음 필드가 있습니다.

scriptId  
호출된 스크립트의 식별자.

caller  
호출자의 IP 주소.

식별자  
고유한 작업 실행 식별자.

startTime  
작업 실행이 시작된 날짜와 시간입니다.

endTime  
작업 실행이 종료된 날짜와 시간입니다.

status  
작업 실행에 대한 상태입니다. 다음 중 한 가지 가능한 값은 다음과 같습니다.  
+ `DONE`: 작업 실행이 정상적으로 종료되었습니다.
+ `TRIGGERED`: 작업 실행이 트리거되었지만 아직 시작되지 않았습니다.
+ `RUNNING`: 작업 실행이 실행 중입니다.
+ `KILLED`: 작업 실행이 중단되었습니다.
+ `FAILED`: 작업 실행에 실패했습니다.

executionResult  
작업 실행에 대한 결과를 요약하는 메시지입니다. 이 메시지는 작업 실행이 아직 완료되지 않은 경우의 단순 메시지이거나 다음 필드가 포함된 JSON 구조일 수 있습니다.  
+ exitCode: 숫자로 구성된 종료 코드입니다. 음수 값은 실패 상황을 나타냅니다.
+ 프로그램: 작업에서 실행한 최신 프로그램입니다.
+ 상태: 다음 중 한 가지 가능한 값:
  + `Error`: exitCode = -1인 경우, 이는 작업 실행 중에 발생하는 (기술적) 오류에 해당합니다.
  + `Failed`: exitCode = -2 인 경우, 이는 서비스 프로그램 실행 중에 발생한 장애(예: ABEND 상황)에 해당합니다.
  + `Succeeded`: exitCode >= 0인 경우
+ stepName: 작업에서 가장 최근에 실행된 단계의 이름입니다.

executionMode  
작업이 시작된 방식에 따라 동기식 또는 비동기식입니다.

샘플 출력:

```
{
    "scriptId": "INTCALC",
    "caller": "127.0.0.1",
    "identifier": "97d410be-efa7-4bd3-b7b9-d080e5769771",
    "startTime": "06-09-2023 11:42:41",
    "endTime": "06-09-2023 11:42:42",
    "status": "DONE",
    "executionResult": "{ \"exitCode\": -1, \"stepName\": \"STEP15\", \"program\": \"CBACT04C\", \"status\": \"Error\" }",
    "executionMode": "ASYNCHRONOUS"
  }
```

## 트랜잭션 시작 결과 구조
<a name="transaction-outcome"></a>

 이 구조에는 다음과 같은 필드가 포함될 수 있습니다.

outCome  
트랜잭션 실행 결과를 나타내는 문자열. 가능한 값은 다음과 같습니다.  
+ `Success`: 트랜잭션 실행이 제대로 끝났습니다.
+ `Failure`: 트랜잭션 실행이 제대로 종료되지 않았습니다. 몇 가지 문제가 발생했습니다.

commarea  
COMMAREA 최종 값을 바이트64로 인코딩된 바이트 배열로 나타내는 문자열. 빈 문자열일 수도 있습니다.

containerRecord  
(선택 사항) 컨테이너의 레코드 내용을 바이트64로 인코딩된 바이트 배열로 나타내는 문자열.

serverDescription  
요청을 처리한 서버에 대한 정보를 포함할 수 있습니다(디버깅 목적). 빈 문자열일 수도 있습니다.

abendCode  
(선택 사항) 비정상 종료된 거래에서 참조한 프로그램이 승인된 경우, 비정상 종료 코드 값이 이 필드에 문자열로 반환됩니다.

샘플 응답:

Success

```
{
    "outCome": "Success",
    "commarea": "",
    "serverDescription": ""
  }
```

실패

```
{
    "outCome": "Failure",
    "commarea": "",
    "serverDescription": "",
    "abendCode": "AEIA"
  }
```

## 거래 시작 기록 결과 구조
<a name="transaction-record-outcome"></a>

이 구조에는 다음과 같은 필드가 포함될 수 있습니다.

recordContent  
COMMAREA의 레코드 내용을 바이트64로 인코딩된 바이트 배열로 나타내는 문자열.

containerRecord  
CONTAINER의 레코드 내용을 바이트64로 인코딩된 바이트 배열로 나타내는 문자열.

serverDescription  
요청을 처리한 서버에 대한 정보를 포함할 수 있습니다(디버깅 목적). 빈 문자열일 수도 있습니다.

샘플 응답:

Success

```
{
    "recordContent": "",
    "serverDescription": ""
}
```

## 큐에 있는 작업의 가능한 상태
<a name="jobs-status"></a>

대기열에서 작업의 상태는 다음과 같습니다.

ACTIVE  
작업이 현재 큐에서 실행되고 있습니다.

EXECUTION\$1WAIT  
작업이 스레드를 사용할 수 있을 때까지 기다리고 있습니다.

SCHEDULED  
작업은 특정 날짜 및 시간에 실행되도록 예약됩니다.

HOLD  
작업이 실행되기 전에 릴리즈되기를 기다리고 있습니다.

COMPLETED  
작업이 성공적으로 실행되었습니다.

FAILED  
작업 실행에 실패했습니다.

UNKNOWN  
상태를 알 수 없습니다.

## 작업 제출 및 작업 입력 예약
<a name="submit-job"></a>

작업 제출 및 작업 예약 입력은 `com.netfective.bluage.gapwalk.rt.jobqueue.SubmitJobMessage` 객체의 JSON 직렬화입니다. 아래 샘플 입력에는 해당 Bean의 모든 필드가 나와 있습니다.

작업 제출을 위한 샘플 입력:

```
{
    "messageQueueName":null,
    "scheduleDate":null,
    "scheduleTime":null,
    "programName":"PTA0044",
    "programParams":
     {"wmind":"B"},
    "localDataAreaValue":"",
    "userName":"USER1",
    "jobName":"PTA0044",
    "jobNumber":9,
    "jobPriority":5,
    "executionDate":"20181231",
    "jobQueue":"queue1",
    "jobOnHold":false
}
```

작업 예약을 위한 샘플 입력:

```
{
     "scheduleCron": "*/2 * * * * ?",
     "programName":"LOGPGM",
     "programParams": {
         "cl_sbmjob_param_json": "[\"./output/schedule-job-log.txt\", \"Every 2 seconds!\"]"
     },
     "localDataAreaValue":"",
     "userName":"PVO",
     "jobName":"LOGGERJOB",
     "jobPriority":5,
     "jobQueue":"queue1",
     "scheduleMisfirePolicy": 4,
     "startTime": "2003/05/04 07:00:00.000 GMT-06:00",
     "endTime": "2003/05/04 07:00:07.000 GMT-06:00"
 }
```

jobNumber  
작업 번호가 0인 경우 작업 번호 시퀀스의 다음 번호를 사용하여 작업 번호가 자동으로 생성됩니다. 이 값은 0으로 설정해야 합니다(테스트용 제외).

jobPriority  
AS400 기본 작업 우선 순위는 5입니다. 유효 범위는 0-9이며, 0이 가장 높은 우선 순위입니다.

jobOnHold  
작업이 보류 상태로 제출되면 즉시 실행되지 않고 누군가 작업을 “해제”할 때만 실행됩니다. REST API(/release 또는 /release-all) 를 사용하여 작업을 릴리스할 수 있습니다.

scheduleDate 및 scheduleTime  
이 값들이 null이 아닌 경우 작업은 지정된 날짜 및 시간에 실행됩니다.

Date  
MMddyy 또는 ddMMyyyy 형식으로 제공할 수 있습니다(입력 크기에 따라 사용되는 형식이 결정됨).

Time  
HHmm 또는 HHmmss 형식으로 제공할 수 있습니다(입력 크기에 따라 사용되는 형식이 결정됨).

programParams  
프로그램에 맵으로 전달됩니다.

scheduleMisfirePolicy  
트리거가 잘못 실행될 때 사용되는 전략을 정의합니다. 사용 가능한 값은 다음과 같습니다.  

1. 첫 번째 잘못된 실행을 해제하고 다른 잘못된 실행을 폐기합니다.

1. 첫 번째 잘못된 실행에 대해 보류 중인 작업을 제출하고 다른 잘못된 실행은 폐기합니다.

1. 잘못된 실행을 폐기합니다.

1. 모든 잘못된 실행을 해제합니다. 작업 대기열은 모든 작업을 실행합니다.

## 예정된 작업 응답 목록
<a name="list-scheduled-jobs"></a>

 목록 작업 큐 엔드포인트의 구조입니다. 해당 작업을 제출하는 데 사용된 작업 제출 메시지는 응답의 일부입니다. 추적 또는 테스트/재제출 목적으로 사용할 수 있습니다. 작업이 완료되면 시작 날짜와 종료 날짜도 입력됩니다.

```
[
  {
    "jobName": "PTA0044",
    "userName": "USER1",
    "jobNumber": 9,
    "jobPriority": 5,
    "status": "HOLD",
    "jobDelay": 0,
    "startDate": null,
    "endDate": null,
    "jobQueue": "queue1",
    "message": {
      "messageQueueName": null,
      "scheduleDate": null,
      "scheduleTime": null,
      "programName": "PTA0044",
      "programParams": {"wmind": "B"},
      "localDataAreaValue": "",
      "userName": "USER1",
      "jobName": "PTA0044",
      "jobNumber": 9,
      "jobPriority": 5,
      "executionDate": "20181231",
      "jobQueue": "queue1",
      "jobOnHold": true,
      "scheduleCron": null,
      "save": false,
      "scheduleMisfirePolicy": 4,
      "omitdates": null
    },
    "executionId": 1,
    "jobScheduledId": 0,
    "jobScheduledAt": null
  },
  {
    "jobName": "PTA0044",
    "userName": "USER1",
    "jobNumber": 9,
    "jobPriority": 5,
    "status": "COMPLETED",
    "jobDelay": 0,
    "startDate": "2022-10-13T22:48:34.025+00:00",
    "endDate": "2022-10-13T22:52:54.475+00:00",
    "jobQueue": "queue1",
    "message": {
      "messageQueueName": null,
      "scheduleDate": null,
      "scheduleTime": null,
      "programName": "PTA0044",
      "programParams": {"wmind": "B"},
      "localDataAreaValue": "",
      "userName": "USER1",
      "jobName": "PTA0044",
      "jobNumber": 9,
      "jobPriority": 5,
      "executionDate": "20181231",
      "jobQueue": "queue1",
      "jobOnHold": true,
      "scheduleCron": "*/20 * * * * ?",
      "save": false,
      "scheduleMisfirePolicy": 4,
      "omitdates": null
    },
    "executionId": 2,
    "jobScheduledId": 0,
    "jobScheduledAt": null
  }
]
```

## 반복 작업 응답 목록
<a name="list-on-hold-jobs"></a>

/schedule/list 작업 대기열 엔드포인트의 구조입니다.

```
[
  {
    "id": 1,
    "status": "ACTIVE",
    "jobNumber": 1,
    "userName": "PVO",
    "msg": {
      "messageQueueName": null,
      "scheduleDate": null,
      "scheduleTime": null,
      "startTime": "2024/03/07 21:12:00.000 UTC",
      "endTime": "2024/03/07 21:13:59.000 UTC",
      "programName": "LOGPGM",
      "programParams": {"cl_sbmjob_param_json": "[\"./output/schedule-job-log.txt\", \"Every 20 seconds!\"]"},
      "localDataAreaValue": "",
      "userName": "PVO",
      "jobName": "LOGGERJOB",
      "jobNumber": 1,
      "jobScheduleId": 1,
      "jobPriority": 5,
      "executionDate": null,
      "jobQueue": "queue1",
      "jobOnHold": false,
      "scheduleCron": "*/20 * * * * ?",
      "save": false,
      "scheduleMisfirePolicy": 4,
      "omitdates": null
    },
    "lastUpdatedAt": "2024-03-07T21:11:13.282+00:00",
    "lastUpdatedBy": ""
  }
]
```