GetTransactionStatus 개요
GetTransactionStatus는 중앙 시스템(CSMS)이 충전소에게 특정 트랜잭션의 현재 상태를 조회할 때 사용하는 메시지입니다. 이 메시지를 통해 트랜잭션의 진행 상황, 충전량, 현재 단계 등의 실시간 정보를 확인할 수 있어 충전 인프라의 모니터링과 관리에 필수적입니다.
메시지 구조
Request (CSMS → 충전소)
{
"transactionId": "TXN-2024-001234"
}
Response (충전소 → CSMS)
{
"messagesInQueue": false,
"ongoingIndicator": true
}
주요 필드 설명
Request 필드들
필드명 |
필수여부 |
타입 |
설명 |
transactionId |
선택사항 |
String |
조회하려는 특정 트랜잭션의 고유 식별자 (생략 시 모든 트랜잭션 상태 조회) |
Response 필드들
필드명 |
필수여부 |
타입 |
설명 |
messagesInQueue |
필수 |
Boolean |
해당 트랜잭션과 관련된 메시지가 큐에 대기 중인지 여부 |
ongoingIndicator |
선택사항 |
Boolean |
지정된 트랜잭션이 현재 진행 중인지 여부 |
messagesInQueue 필드 값
값 |
설명 |
true |
트랜잭션 관련 메시지가 전송 대기 중 (네트워크 문제 등으로 인한 지연) |
false |
대기 중인 메시지 없음 (정상 상태) |
ongoingIndicator 필드 값
값 |
설명 |
true |
트랜잭션이 현재 진행 중 |
false |
트랜잭션이 종료되었거나 존재하지 않음 |
실제 사용 예제
예제 1: 특정 트랜잭션 상태 조회 (진행 중)
// Request
{
"transactionId": "TXN-2024-08-14-001"
}
// Response
{
"messagesInQueue": false,
"ongoingIndicator": true
}
예제 2: 네트워크 지연으로 메시지 대기 중인 경우
// Request
{
"transactionId": "TXN-2024-08-14-002"
}
// Response
{
"messagesInQueue": true,
"ongoingIndicator": true
}
예제 3: 종료된 트랜잭션 조회
// Request
{
"transactionId": "TXN-2024-08-14-COMPLETED"
}
// Response
{
"messagesInQueue": false,
"ongoingIndicator": false
}
예제 4: 모든 트랜잭션 상태 조회 (transactionId 생략)
// Request
{}
// Response
{
"messagesInQueue": true,
"ongoingIndicator": true
}
처리 흐름
- 상태 확인 필요: CSMS가 트랜잭션 상태 확인이 필요하다고 판단
- 요청 전송: 특정 트랜잭션 ID 또는 전체 트랜잭션에 대해 GetTransactionStatus 전송
- 충전소 검증: 충전소가 해당 트랜잭션의 현재 상태 확인
- 상태 응답:
messagesInQueue
: 전송 대기 중인 관련 메시지 존재 여부
ongoingIndicator
: 트랜잭션 진행 상태
- 후속 처리: CSMS가 응답을 바탕으로 필요한 조치 수행
중요 포인트
- 이 메시지는 CSMS에서 충전소로 보내는 상태 조회 메시지입니다
transactionId
를 생략하면 충전소의 모든 트랜잭션 상태를 종합적으로 확인할 수 있습니다
messagesInQueue: true
인 경우 네트워크 문제나 통신 지연이 있을 수 있음을 의미합니다
- 트랜잭션 동기화 문제 해결을 위한 진단 도구로 활용됩니다
- 정기적인 상태 확인을 통해 충전 인프라의 안정성을 모니터링할 수 있습니다
- 트랜잭션이 예상과 다르게 동작할 때 문제 진단에 유용합니다
- 실시간 대시보드나 모니터링 시스템에서 활용 가능합니다
이 메시지를 통해 중앙 시스템은 충전소의 트랜잭션 상태를 실시간으로 모니터링하고, 필요시 적절한 조치를 취할 수 있어 충전 서비스의 안정성과 신뢰성을 확보할 수 있습니다.