RDS 오류 해결

dongeranguk·2021년 12월 20일
0

RDS 의 보안그룹 인바운드 규칙에서 Oracle-RDS 유형의 포트번호 1521을 사용하는 규칙을 내 IP로 지정해서 RDS를 재부팅하면 RDS가 구동되어 웹 어플리케이션이 정상적으로 작동한다.

war파일을 webapps 디렉터리로 이동하게 되면 톰캣이 자동적으로 war 파일의 압축을 해제하여 배포하게 된다. 이 과정에서 maven이 해당 웹 어플리케이션이 사용하는 라이브러리들을 lib 디렉터리에 자동으로 다운로드 받아오는데, ojbc14.jar를 사용한다. 따라서, 다음과 같은 오류가 발생하게 된다.

1.

The Network Adapter could not establish the connection

위와 같은 오류는 DB에 접속하지 못하는 오류인데 윈도우에서 1521 포트를 추가하거나, listener.ora 을 텍스트 에디터로 열어서, HOST 부분에 내 컴퓨터 이름이 지정되어 있는지 확인한다. 그런 뒤에 서비스에서 listner를 재시작해준다.

1.

context-datasource.xml 에 지정한 접속할 정보가 틀렸을 때도 발생한다. context-datasource.xml에는 DB에 접속하기 위한 정보를 작성하게 되는데 작성하는 내용으로는 크게 4가지가 있다. 드라이버, URL, 아이디, 비밀번호 이 중에서 하나라도 틀린다면, DB에 접속하지 못한다.

나와 같은 경우에는 DB이름이 올바르게 지정되어 있지 않아서 발생했다.
DB 이름이 MUSCLE로 지정 되어 있어서, 접속 URL에는 IP:1521:MUSCLE로 지정했지만, 올바른 지정 형식이 아니기 때문에 접속 오류가 발생했고, DB이름을 수정할수 없어서 ORCL로 지정한 RDS를 새로 만들어 접속 URL에 IP:1521:ORCL로 다시 지정했더니 오류가 발생하지 않았다!

2.

ORA-28040: No matching authentication protocol

위와 같이 오류를 해결하고 다시 URL을 입력했더니 위와 같은 오류가 발생했다. 이와 같은 오류는 클라이언트 버전보다 높은 DB에 접속할때, 또는 DB의 버전과 맞지않는 ojdbc 버전을 사용할 때 발생한다. 나와 같은 경우는 둘 다 해당되었고, 따라서, 내 컴퓨터의 listener.ora 맨 밑에 아래와 같이 작성했다.

SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
SQLNET.ALLOWED_VERSION_CLIENT=11

혹시 몰라서, RDS의 파라미터도 위와 같이 수정했다.

이로써 하나의 문제는 해결했고, 남은 문제는 ojdbc의 버전이 알맞지 않아 발생하는 문제이다. 이것 때문에 골머리를 굉장히 앓았는데 내가 올바른 디렉터리에 ojdbc6.jar을 추가하지 않아 오류가 계속 발생했다.
tomcat8에 lib란 디렉터리에 추가했기 때문에 오류가 고쳐지지 않았고 올바른 경로 /usr/local/tomcat8/webapps/muscle/WEB-INF/lib 에 추가해주니 정상적으로 구동했다!!!!!!!!

0개의 댓글