SNR#3164 소나를 MariaDB·MySQL보다 먼저 기동하면 이후 데이터베이스가 기동되어도 정상 동작하지 않는 문제 해결
버전: 4.0.2609.0
MariaDB 또는 MySQL이 아직 기동되지 않은 상태에서 소나를 먼저 기동하면, 이후 데이터베이스를 정상적으로 기동해도 소나가 데이터베이스 연결 실패 상태에서 벗어나지 못하고 계속 비정상 상태로 남아 있는 문제가 있었습니다. 이 경우 소나를 재시작해야만 정상화되었습니다.
- 원인: 소나는 기동 시점에 데이터베이스 연결 가능 여부를 한 번만 확인하고, 그 이후에는 데이터베이스 연결 정보(프로파일)가 변경되는 시점에만 연결 상태를 다시 확인했습니다. 기동 시점에 데이터베이스가 아직 켜지지 않았다면 이 최초 확인은 실패합니다. 이후 데이터베이스가 켜져도 연결 정보는 바뀌지 않으므로 연결 상태를 다시 확인할 계기가 없어, 소나가 계속 연결 실패 상태로 남았습니다.
- 해결: 데이터베이스 연결 가능 여부를 주기적으로 다시 확인하는 처리를 추가했습니다. 연결이 복구되면 연결 상태와 서비스 준비 상태를 갱신하고 기본 회사 정보를 다시 불러오므로, 소나를 별도로 재시작하지 않아도 정상적으로 동작합니다. 아울러 종료 중에는 이 확인 작업이 연결 복구 이벤트를 발생시키지 않도록 처리하고, 확인 작업의 동시 실행과 종료 절차도 함께 보강했습니다.