본문 바로가기

트러블슈팅

(54)
MySQL에서 트랜잭션 중인지 확인하는 방법 운영 환경에서 대용량의 Data가 Insert되는 데 1시간이 넘는 시간이 걸리고 있었다. 서버 로그에서 어떤 에러 로그를 발견할 수 없었다. MySQL에서 대용량의 Data가 트랜잭션 중인 지 확인이 필요했다. 아래 명령어를 입력하면 실행 중인 트랜잭션 목록과 실행 중인 Query가 나온다. SELECT * FROM information_schema.innodb_trx; 아래 명령어를 입력하면 실행 중인 트랜잭션에 걸리고 있는 시간을 알 수 있다. SHOW PROCESSLIST; 트랜잭션 정보를 확인했을 때, 아직 트랜잭션 진행 중이었기 때문에 기다리니 프로그램이 정상적으로 동작 완료하였다.
Vue에서 npm run dev 시, getaddrinfo ENOTFOUND '로컬 호스트 주소' at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js) 문제 문제 Vue 프로젝트를 로컬에서 실행시키는 데, 아래와 같이 'getaddrinfo ENOTFOUND' 에러가 났다. 해결 'getaddrinfo ENOTFOUND'는 인식할 수 없는 host가 설정되었을 때 발생한다. Mac에서는 터미널에 아래 명령어를 입력하여 hosts에 local-host.com을 추가해주면 된다. sudo vi /etc/hosts i를 누르면 insert 모드로 바뀌어 내용을 수정할 수 있다. 저장은 esc를 누르고 wq 를 입력하면 내용을 저장하고 vi 편집기가 종료된다.
Oracle에서 'Create Table ... AS Select ...'을 사용해 테이블을 복사할 때, 제약 조건과 인덱스는 복사되지 않는다. 백업 테이블만들 때 주의해야한다. 문제 Oracle에서 백업 테이블을 만들 일이 있어, 아래와 같이 'Create Table ... AS Select ...'을 이용해 백업 테이블을 만들었다. CREATE TABLE test_backup_20230823 AS SELECT * FROM test; 아래는 test 테이블의 스키마이다. create table TEST ( ID VARCHAR2(10 char) not null, COUNTRY VARCHAR2(10 char), NAME VARCHAR2(100 char), USE_YN CHAR default 'Y', REG_USER VARCHAR2(10 char) default 'SYSTEM' not null, REG_TIME TIMESTAMP(6) WITH TIME ZONE default SYST..
java.lang.ClassNotFoundException: org.apache.jsp.jsp.login_jsp 에러 문제 페이지에 로그인하려고 했는데, 아래와 같이 ClassNotFoundException이 났다. login_jsp가 있는 것을 보아 login.jsp 파일과 관련된 에러인 거 같다. java.lang.ClassNotFoundException: org.apache.jsp.jsp.login_jsp at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128) at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:59) at org.apache.catalin..
서버 Restart 시, nginx: [emerg] chown("/dev/shm/nginx_proxy_temp", 503) failed (1: Operation not permitted)nginx: configuration file /home/www/etc/nginx.conf test failed 에러. 문제 서버를 Restart할 때, 아래와 같이 nginx 문제로 Restart가 실패했다. Restart할 때 서버 2개를 차례로 진행하는 데, 서버#1은 성공하고 서버#2는 실패했다. 아래는 실패 시, 서버#2의 로그이다. 원인 chown은 linux에서 파일 소유권을 변경하는 명령어인데, /dev/shm/nginx_client_temp 파일에 chown을 실행할 수 있는 권한이 없어 Operation not permitted 에러가 나왔다고 생각했다. 서버#1과 서버#2 각각 /dev/shm 경로로 접근하고 아래 명령어로 파일의 권한을 확인했다. ls -l 서버 #1은 아래와 같이 drwxrwxrwx 권한을 가진 것을 알 수 있다. 서버 #2는 drwx------ 권한으로, 서버#1과 다른 권한을 가..
JOOQ에서 코드 생성할 때, JDBC 드라이버 문제. 로케일을 인식할 수 없습니다. 문제 JOOQ는 Java Object Oriented Querying의 약자로 자바 개발자들이 JAVA로 SQL Query를 쉽게 작성할 수 있도록 도와주는 라이브러리이다. JOOQ를 이용하면 DB의 정보를 기반으로 JAVA 소스 파일을 생성해준다. Oracle Database를 사용하고 있고, 아래 Script를 이용해 JOOQ로 Oracle Database 정보를 기반으로 한 JAVA 소스를 생성하려고 했다. #!/bin/sh JOOQ_HOME=${HOME}/.m2/repository/org/jooq/pro JOOQ_VERSION=3.11.5 JDBC_DRIVER_HOME=${HOME}/.m2/repository/com/oracle/jdbc/ojdbc8 JDBC_DRIVER_VERSION=12.2.0..
Error. org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다. The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit Stacktrace: 문제 JSP 프로젝트에서 어떤 화면에 들어가려고 하는데, 아래와 같은 에러가 브라우저에 떴다. Error. org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: 코드 생성된 자바 파일 [/Users/user/Library/Caches/JetBrains/IntelliJIdea2023.1/tomcat/.../work/Catalina/localhost/ROOT/org/apache/jsp/WEB_002dINF/jsp/.../test_jsp.java]의 [110] 행에서 오류가 발생했습니다. The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 6553..
MySQL 쿼리 속도 향상. Explain으로 실행 계획 보기. Index 설정 문제 테스트 환경에서 5000건 조회 시, 2분 22초 걸렸던 조회 쿼리가, Real 환경에선 18분 4초가 소요되었다. 쿼리 구성은 대략적으로 아래와 같았다. SELECT customer.account_name, order.account_id, order_item.item_id order_item.item_name order_item.net_amount FROM order_item INNER JOIN order ON order.id = order_item.order_id INNER JOIN customer ON customer.account_id = order.account_id WHERE customer.account_id = 'accountId' AND order.country = 'KOREA' A..
Swagger 빌드 문제. Unable to load URL ref: https://opensource.zalando.com/problem/schema.yaml 문제 프로젝트를 Jenkins를 이용해 build 하는 데, 아래와 같은 에러가 났다. 확인을 해보니, Connection timed out과 https://opensource.zalando.com/problem/schema.yaml 을 load할 수 없다는 에러였다. 원인 우선, Connection Out이니 해당 페이지에 접속이 안되거나 네트워크 문제라 생각되었다. 접속 문제 확인 https://opensource.zalando.com/problem/schema.yaml 에 들어가니, 접속이 되었다. swagger 분석 해당 URL이 Swagger 어디에서 사용되는 건지 궁금해서 분석하였다. pom.xml에서 swagger 관련 설정을 찾아보았다. inputSpec은 입력으로 사용할 OpenAPI 스..
Logback의 filepath 설정으로 인한 에러. ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS] - Failed to create parent directories 문제 로컬에서 프로젝트를 받아서 실행하려고 하니 아래와 같은 에러가 나왔다. java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS] - Failed to create parent directories for [/home/www/logs/project/access/access.log] ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS] - openFile(/home/www/logs/project/access/access.log,true) call failed..