Etc/Test

OCI Instance Run command의 Delivery State

김컴맹 2023. 4. 6. 14:30
반응형

오라클 클라우드 인스턴스의 Run Command 서비스에서 Delivery State 중에 "Visible"은 Run Command의 실행 결과가 즉시 콘솔에 표시되도록 하는 옵션입니다. 이 옵션을 사용하면 명령을 실행한 후 즉시 결과를 확인할 수 있습니다.

만약 Delivery State를 "Hidden"으로 설정하면 결과가 콘솔에 표시되지 않으며, 대신 결과를 저장할 수 있는 위치를 지정할 수 있습니다. 이 경우에는 실행 결과를 나중에 확인할 수 있습니다.

 

"Expired"와 "Acked"는 메시지 브로커에서 메시지 처리 상태를 나타내는 용어입니다.

"Expired"는 메시지가 유효기간을 초과하여 브로커에서 삭제된 상태를 나타냅니다. 메시지 브로커는 메시지가 도착한 시간부터 일정 기간 동안만 메모리나 디스크 공간에 보관하며, 이 기간을 TTL (Time To Live)이라고 합니다. TTL이 지나면 메시지는 자동으로 삭제되며, 이때 해당 메시지의 상태는 "Expired"가 됩니다.

"Acked"는 메시지가 성공적으로 처리되어 해당 메시지가 더 이상 브로커에서 사용되지 않는 상태를 나타냅니다. 메시지 브로커는 메시지를 받은 구독자가 해당 메시지를 성공적으로 처리한 후에만 해당 메시지를 삭제하고, 해당 메시지의 상태를 "Acked"로 변경합니다. 이렇게 함으로써 메시지 브로커는 구독자에게 메시지가 성공적으로 전달되었음을 보장합니다.

 

OCI(Run Command)에서는 "Delivery State"가 "Visible" > "Acked" > "Expired" 순서로 변경됩니다.
먼저, 명령을 실행하면 "Delivery State"가 "Visible" 상태가 됩니다. 이때 명령이 실행되며, 콘솔에 결과가 표시됩니다.
그리고 명령의 실행 결과를 확인한 후, 사용자가 명령의 처리를 확인하면 "Delivery State"가 "Acked" 상태로 변경됩니다. 이는 명령이 성공적으로 처리되었음을 나타냅니다.

마지막으로, 명령의 "Time To Live (TTL)"이 만료되면 "Delivery State"가 "Expired" 상태로 변경됩니다. 이는 명령이 브로커에서 삭제되었음을 나타냅니다.

 

OCI(Run Command)에서 "Delivery State"가 "Visible"에서 "Acked"로 변경되는 시간은 명령을 실행한 인스턴스의 성능, 명령이 실행하는 작업의 복잡도 등 여러 가지 요인에 따라 다를 수 있습니다.

일반적으로 명령이 빠르게 실행되는 경우 몇 초 내에 "Delivery State"가 "Acked"로 변경될 수 있지만, 명령이 오래 걸리는 경우 몇 분 이상 걸릴 수도 있습니다.

따라서, 현재 "Delivery State"가 "Visible" 상태인 명령의 경우 몇 분 정도 기다렸다가 다시 확인해보시기를 권장합니다. 만약 "Delivery State"가 여전히 "Visible" 상태이고, "Acked"로 변경되지 않았다면 해당 명령이 아직 실행 중이거나 실행 중 문제가 발생한 것일 수 있습니다. 이 경우에는 인스턴스의 로그를 확인하거나, OCI(Run Command) 서비스에서 제공하는 상세한 명령 실행 로그를 참조하여 문제를 해결할 수 있습니다.

 

OCI(Run Command)에서 "Delivery State"가 "Acked" 상태가 된 후에도 해당 명령의 실행 결과를 확인할 수 있는 기간은 기본적으로 30일입니다.

이 기간 동안은 OCI 콘솔을 통해 명령의 실행 결과를 언제든지 확인할 수 있습니다. 하지만 이 기간이 지나면 명령의 "Delivery State"가 "Expired"로 변경되며, 명령의 실행 결과는 더 이상 확인할 수 없게 됩니다.

따라서, 만약 명령 실행 결과를 장기적으로 보관해야 하는 경우에는 명령 실행 결과를 저장할 수 있는 외부 스토리지를 이용하거나, OCI(Run Command) 서비스에서 제공하는 API를 사용하여 명령 실행 결과를 자동으로 다운로드하도록 설정하는 것이 좋습니다.

 

"Delivery State"가 "Visible" 상태에서 바로 "Expired" 상태로 변경되는 경우는 몇 가지 이유가 있을 수 있습니다. 명령이 실행 중 문제가 발생하거나, 브로커의 처리에 실패한 경우 등이 그러한 예입니다.

OCI(Run Command) 서비스에서는 명령이 실행되는 동안 브로커에 대한 연결이 끊기거나, 브로커가 다운될 경우 자동으로 다른 브로커로 재연결을 시도합니다. 하지만 이러한 상황에서도 "Delivery State"가 "Expired"로 변경될 수 있으며, 이 경우에는 재시도나 다른 방법으로 명령을 다시 실행해야 합니다.

만약 이전 명령의 "Delivery State"가 "Expired"로 변경되었고, 해당 명령의 실행 결과를 다시 확인해야 하는 경우에는 OCI(Run Command) 서비스에서 제공하는 API를 사용하여 명령 실행 결과를 다운로드하거나, 이전에 실행한 명령과 동일한 명령을 다시 실행하여 결과를 확인할 수 있습니다.

반응형

'Etc > Test' 카테고리의 다른 글

ASP.NET Core AddHttpClient<T>  (0) 2023.04.07
레이트레이싱(Ray Tracing)  (0) 2023.04.07
WPF INotifyPropertyChanged  (0) 2023.04.06
WPF DataBinding  (0) 2023.04.06
Array, ArrayList, List의 차이점  (0) 2023.04.06