안녕하세요클라우드 서버 전환 후에 발생된 문제에 대해 정리를 해보려고 합니다.하고 있는 시스템의 개발과 운영 서버가 원래는 물리적인 장치로 이루어진 온프레미스 서버에서 도커& 리눅스 환경으로 구성되어 있었어요. 그리고 시장 트렌드상으로, 시스템들이 점차 클라우드 서버로 옮겨가고 있어서, 제가 있는 곳에서도 내부적으로 클라우드 전환을 시작하고 있었어요. 말이 나온 김에 클라우드의 장단점을 간단하게 언급하면 아래와 같아요.장점 : 가격이 저렴하다. 더불어 공간적인 여유도 생긴다.단점 : 좀 더 복잡한 세팅 작업이 필요하다. 중앙 컨트롤러가 마비되면 예하 시스템이 모두 마비된다. 그래도 IT는 트렌드를 따라가는 업종이기 때문에, 기존의 방식보다 가격과 기술적인 측면들을 고려했을 때, 클라우드 전환의 장점이 무..
다음 오라클 에러에 대해서 알아보도록 하자. ORA-00054: 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다. resource busy and acquire with NOWAIT specified. 1. commit을 안해서 LOCK걸린 경우 나의 경우에는 테이블 특정 컬럼의 길이를 변경하는 스크립트를 실행을 시키다가 에러가 발생하였다. 발생되는 원인을 확인해보니 다음과 같았다. 나를 포함한 누군가가 해당 테이블에 스크립트를 실행하고 커밋을 하지 않은 경우. 때문에, 해당 테이블에 진행 중인 트랜잭션이 완료되기 전까지는 LOCK에 걸려 작업을 할 수 없게 된다. 작업 중인 사용자를 찾아서 해당 테이블에 진행 중인 트랜잭션을 commit처리를 해야 한다. DB d..
Q0. 개요 이클립스에서 개발 환경을 세팅하거나 또는 갑자기 잘 되던 로컬 환경에서 에러가 발생하는 경우가 있다.에러의 내용을 확인해보면 Publishing failed with multiple errors May be locked by another process. 퍼블리싱하는 과정에서 프로세스에 락이 걸렸다는 문구가 꽤나 자주 발생되었다. 특별한 소스를 고치거나 작업을 하진 않았기 때문에 원인 파악이 안되어서 여러 글들을 찾아보았다. 정확한 원인을 파악하진 못하였지만, 해결 방법은 대부분 동일하게 처리되었다. 되도록이면 순서대로 처리하는 것이 좋다. 1. 이클립스 상단 > Project 탭 > 톰캣 서버 구동 시, 에러가 나는 프로젝트를 Clean한다. 2. 구동 시, 에러가 나는 서버 우클릭한다 >..
Q0. 개요 스프링 프레임워크로 개발하면서 Mybatis기반의 XML파일에서 아래와 같은 에러가 발생한 적이 있다. java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for ~ 호출해야 할 mapper id를 못찾은 경우이다.1. 자바파일 작성한 Mapper Id와 Mapper파일에서 작성한 Id가 다른 경우.2. 자바파일에서 Mapper파일을 호출할 네임스페이스를 잘못 작성한 경우.3. Mapper파일의 상단에 네임스페이스가 잘못 작성된 경우.4. Mybatis 환경설정에 해당하는 폴더경로에 파일이 존재하지 않는 경우.5. Mapper파일의 네임스페이스가 동일하게 중복되는 경우. Q1. 결론적으..
Q0. 개요 흔히 사용하는 DML (Data Manipulation Language)에서 기존 자료를 조합해서 한번에 여러개를 저장하는 경우가 있다. 나의 경우에는 Insert ~ Select를 이용하여 기존에 존재하는 Select에 조회조건을 걸어 Insert할 때, PK를 비롯한 몇 가지의 데이터를 제외하고는 동일하게 생성시키는데 사용했다. 그런데, Insert ~ Select가 N건으로 실행되면서 Max(PK)+1가 계속 동일한 값으로 출력되는 문제가 발생되었다. 오늘은 이 문제가 발생하였을 때 처리했던 방법에 대해 정리하였다. - INSERT ~ SELECT문 INSERT ~ SELECT란, 이미 존재하는 테이블을 조회해서 나온 데이터를 일괄 등록하는 방법이다. (단, 전체 복사를 하려면 A와 B..
Q0. 개요 다음 오라클 에러에 대해서 알아보도록 하자. ORA-06576: 함수 또는 프로시저 이름이 부적합합니다. not a valid function or procedure name 프로시저를 호출할 때 에러가 나는 경우를 의미한다. 몇 가지 경우의 에러를 정리하자면 아래와 같다. 1. 프로시저가 컴파일 에러가 발생한 경우. 2. 프로시저의 body에서 begin - end가 없는 경우. 3. 프로시저가 시논임 또는 DB링크가 제대로 부여되지 않은 경우. 4. 프로시저를 호출시 파라미터의 개수를 잘못지정하여 호출하는 경우. 5. 프로시저명을 잘못 호출한 경우. Q1. 결론적으로 프로시저의 이름이 부적합하다는 에러는 프로시저를 찾지 못하고 있다는 에러이다. 대부분의 주된 에러는 명칭 또는 파라미터를 ..