![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bY9dWT/btrV0RmTKKP/QZHjDQEJG39KCUJl1Y1TKK/img.png)
Communications link failure 에러는 디비 연결이 끊어진 경우에 쿼리를 실행 한 경우 나는 에러이다. 아래와 같이 SELECT 1이라는 vaildation query를 실행하는데 이미 db connection이 꾾어졌기 때문에 validation query를 실행하는데 에러가 발생한 것이다. DB서버에서 연결을 끊어버리는 기준이 되는 시간과 관련 된 설정값은 wait_timeout이다. 아래의 명령어를 입력하면 wait_timeout이 몇초로 설정되어있는지 확인 가능하다.(기본값 : 28800초) 나는 개발서버에서 Communications link failure 가 자주 나타나서 (사실 validation query를 실행시키고 나서 컨넥션을 맺고 다음 쿼리를 실행시키기 때문에 무시..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Ad9Xu/btskZU7iuG2/7drAi93MWgvQl1B4iAStRk/img.png)
🚀Tomcat 로그 종류 tomcat9는 기본적으로 6가지의 로그를 생성해준다. 지금까지 내가 사용한 로그는 catalina.out 뿐이었는데, 이번에 3년지난 로그를 지우면서 톰캣로그에 대해서 자세히 알아보기로 했다. 1. catalina.out Tomcat 기동 시 /bin/catalina.sh 에 의해 생성되는 로그 파일 콘솔에 표시되는 모든 것을 기록한다. (톰캣에 의해 생성되는 로그, DB로그 등등) 2. catalina.yyyy-mm-dd.log 톰캣에 의해 생성되는 로그만 기록 Standard output(표준 스트림), Standard error(표준 에러)의 로깅은 제외 단순히 catalina.out을 일별로 나누어놓은 파일이라고 생각했는데 아니었다. 1과 2를 동일한 기준으로 로그를 확..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b1ClJa/btrVWfNAxUS/MpuIlu41eJQBtelUDfjzSK/img.png)
docker로 centos 8을 설치하고 필요한 패키지들을 다운로드 받기 전 yum update를 해주었는데 다음과 같은 에러가 나왔다. 🤔 이유가 뭐인가 하니.. centos 8은 2021년 12월 31일에 공식적으로 지원을 종료했는데 이로 인해서, mirrors를 CentOS Vault Mirror로 변경을 해주어야한다고 한다. 사실...mirrors 가 정확히 뭔지는 모르겠다.. 아무튼 Centos Vault Mirror로 변경하기 위해서는 아래 명령어를 실행해주면 된다. sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-* sed -i 's|#baseurl=http://mirror.centos.org|base..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/qSojf/btrVWfmuzwj/2BYUudWZWNDFk4hkNgCk00/img.png)
톰캣 실행, 종료, 로그 확인 같은 자주 쓰이는 명령어들을 매번 처음부터 끝까지 작성하기에는 지루하기도 하고, 불편하다. //톰갯 종료 sh /tomcat/bin/shutdown.sh //톰캣 시작 sh /tomcat/bin/startup.sh //톰캣 로그 확인 tail -900f /tomcat/logs/catalina.out 위와 같은 명령어들을 alias로 등록해 간단하게 사용 할 수 있다. 🍯 등록 방법 1. alias 명령어 사용 - 아주 아주 간단하다! alias 별칭='명령어' 맨 위의 톰캣관련 명령어를 등록을 해본다면 아래와 같이 할 수 있다. alias tstart='sh /tomcat/bin/startup.sh' alias tend='sh /tomcat/bin/shutdown.sh' a..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/oFCKs/btrSbT3E7am/nOPx825U4E8BK0L7l7ZrS1/img.png)
🔎 상황 - 하나의 property로 설정값들을 관리하니, 매번 주석처리를 하는게 불편하고, 갯수가 많아지다보니 실수가 잦아졌다. 맨 처음에는 로컬,개발,운영 이렇게 세가지로만 나누어져있었는데, 점점 고객사별로 개발, 운영이 추가되고..관리가 힘들어졌다. 따라서 properties를 분리 할 필요성이 생겼다. 1. properties 분리하기 기본 globals.properties에는 active 만 놓고, local용 aws-dev용으로 별도 파일을 생성하여 DB정보 API연동 정보 등을 작성했다. *active에는 빌드시 사용할 properties의 이름을 작성한다. 2. 설정파일 변경 2.1 properties 파일 변수로 등록하기. util은 properties를 변수로 사용할 수 있게끔 등록을 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cWlHGb/btrSahJ99TL/pu3NanszXkXsDixN81bOwk/img.png)
🔎상황 동일한 프로그램이 올라가는 세대의 서버가 있고, 이 세대의 서버는 각각 개별적으로 존재하고 L4로 묶여있지 않다. 어떤 서버에 요청을 해도 동일한 응답값이 오기 때문에 원하는 응답값을 얻기 위해서는 단 하나의 서버에만 요청을 해도 된다. 그러나, 이런 경우 서버가 죽었을 경우 로드밸런싱이 되지 않기 때문에 하나의 서버에 요청 후 TIMEOUT이 떨어지면 다른 서버에 요청을 해야한다. 서버 요청 시간제한을 2초로 놓는다고 해도 운이 좋지 않으면 6초나 걸리는 상황이다. 그래서, 비동기통신을 고려해봤다. 🔎 코드 ExecutorService는 JDK API로 작업을 비동기 모드로 실행 할 수 있다. ExcutorService는 쓰레드 풀을 자동으로 제공한다. public Map requestInfor..
🔧 환경 - java 1.8 - spring - jsp - javascript - sweetalert 🔎 요구사항 - 사용자의 마지막 동작으로 부터 1시간이 지나면 세션을 만료하되, 만료되기 1분전에 세션 만료 알림을 띄어 연장할 수 있어야 한다. 🔎 idea - server에 filter를 등록하여 요청이 올 때마다 response에 마지막 요청시간을 cookie를 저장하고, front단에서는 cookie를 1초마다 확인하여 세션 만료 1시간 전 알림을 보내준다. - 세션 만료 시간 = 마지막 요청 시간 + 1시간 📌 구현 💻 server 1. web.xml 설정 - web.xml에 기본 세션 만료 시간을 설정한다. - web.xml에 설정한 timeout의 단위는 '분' 이다. 60 2. filter..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/stgRi/btsk2figLpS/K2BktB9cuRDMr5ew9d2UUk/img.png)
🔎 상황 OS : CentOs Linux release 7.9.2009 tomcat : apatch-tomcat-9.0.67 웹 서비스를 톰캣으로 포트 80을 사용하여 올리는데 다음과 같은 에러가 발생했다. root 권한으로 tomcat을 시작했을 때는 나지 않고 일반사용자로 시작한 경우에만 오류가 발생했다. tomcat 관련 폴더의 소유자및 그룹은 일반사용자로 되어있다. ps -ef|grep'tomcat' 을 사용하여 프로세스를 확인하면 프로세스는 떠있지만. netstat -tnlp 를 사용하여 확인하면 관련 포트가 없다. 🔎 원인 linux는 일반사용자에게 포트 1024이하에 대해서는 사용권한을 주지 않는다. 따라서 일반사용자 계정으로 80포트에 대해 서비스를 시작하려고 해서 정상적으로 시작이 되지 ..
- Total
- Today
- Yesterday
- springboot
- tomcat
- javascript
- softeer
- java
- 리액트
- 자바코테
- mysql
- 코딩테스트
- Linux
- 현대
- 전자정부프레임워크
- centos
- Kubernetes
- 자바
- 스프링
- 코테
- 오토에버코테
- react
- 아파치카프카
- 톰캣
- 쿠버네티스
- 현대코테
- Spring
- 현대오토에버
- softeer java
- java 코테
- 자바스크립트
- Docker
- 도커
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |