잘 돌아가던 톰캣 서버에서 아래와 같은 Exception을 확인하였다. 잘 떠있던 놈이.. 갑자기 왜. 물론 재시작 하면서 이슈는 해결되었지만 원인을 찾기 위해서 삽질을 하고, 아래와 같은 로그를 드디어 재현하였다. 원인은, 프로세스가 떠 있는 상태에서 yum 업데이트로 jdk버전을 업데이트 해버려서, 이 프로세스에서 잡고 있던 java lib들을 알 수 없었기 때문에 오류가 났던 것이다. tomcat started -> yum update jdk* -> curl http://url -> occured Exception . java.lang.UnsatisfiedLinkError: no net in java.library.path at java.lang.ClassLoader.loadLibrary(Class..
웹사이트를 구축할때는 동적인 영역과 정적인 영역을 나누어, 정적인 데이터는 미리 캐싱해두었다가 사용자의 요청이 있을때 데이터를 전송하는 것이 효율적이다. 동적데이터 - 프로그램이 포함되는 jsp, php, asp 등 서버언어 정적데이터 - html, css, image 등 자주 변하지 않는 데이터 그래서 정적인 데이터는 주로 웹서버로만 따로 운영을 하게 된다. 하지만, 따로 분리해서 운영할만큼 큰 프로젝트가 아니라면 동적인영역에 정적데이터를 포함시켜야 할때가 있는데 이또한 작업 하다보면 크로스도메인문제로 어플리케이션 설정에 cors(cross origin access sharing)이 필요할때가 있다. 자바 스프링에서는 다음과 같이 추가해줄 수 있따. @Component public class CorsF..
Spring + Mybatis @MapperScan의 sqlSessionFactoryRef 속성지정시, Tomcat을 실행시키면 다음과 같은 WARN 메세지가 미친듯이 뜨고 start 된다. 실행이 안되는건 아니지만, 찝찝한 경고 메세지 2017-03-07 13:18:59.821 WARN 25580 [main] --- org.springframework.beans.factory.support.AbstractBeanFactory.getTypeForFactoryBean:1480 : Bean creation exception on FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean ..
절차지향언어냐 객체지향언어냐 그것이 문제로다. 절차지향은 뭐고 객체지향은 뭘까. 이미 그 차이를 알고는 있지만 개념으로 딱 떨어지게 정의하기에는 좀 어려운 부분이 있어 이렇게 정리해본다. 절차지향이란.순차지향으로도 표현할 수 있다. 위에서 아래로 실행될 순서대로 코딩하는것을 말하며 쉽고 빠르고 간단하게 프로그래밍을 할 수 있지만 코드의 재사용은 어렵다. 객체지향이란. 객체중심으로 코드를 만들어 실제 필요한 부분에서 각 객체들을 호출해 사용한다. 캡슐화 상속 다형성 등의 특징이 있고 코드의 재사용성이 좋다. 하지만 설계를 하기까지는 그만큼 복잡하고 어려울 수 있다.
개발을 하다보면 이런경우가 많이 생긴다. 동일한 데이터를 가지고 오지만 조회하고자 하는 컬럼에 따라 where 구문만 다르게 하고 싶을때. 예를들면 SELECT name, id FROM user Where name = ?SELECT name, id FROM user Where id = ? 각 동일한 select 구절이지만 Where 조건이 다르다. 이럴때 overload를 사용하면 되겠지라고 간단하게 생각했다가 낭패가 생겼다. SELECT name, id FROM user WHERE name = #{name} WHERE id = #{id} 다음과 같은 오류를 확인할 수 있다. org.mybatis.spring.MyBatisSystemException: nested exception is org.apach..
로컬에서 신규 프로젝트 생성하고 생각없이 호스트명을 http://my_project/~~ 언더하이픈을 포함하여 임시로 작명을 하였다. 헌데... 웹서블릿 호출시 GET방식으로는 문제 없으나 POST방식으로 호출시 아래와 같은 오류가 발생하였다. java.lang.IllegalStateException: Could not get HttpServletRequest URI: Illegal character in hostname at index 12: http://my_project/list at org.springframework.http.server.ServletServerHttpRequest.getURI(ServletServerHttpRequest.java:96) at org.springframework...
Aspectj로 공통로깅 만들기 개발을 하다보면 꼭 필요한것 중에 한가지가 디버깅에 필요한 로깅을 하는것이다. 그리고 자바, 스프링의 좋은것중 한가지가 다양한 라이브러리를 지원하고 개발자는 의존성만 주입하면 손쉽게 해당 기능을 가져다가 쓸수 있다는 것이 개인적으로 느꼈던 장점중 한가지였다. spring boot aspectjweaver library 의존성 추가 Java Config 방식 dependencies { // spring compile("org.springframework.boot:spring-boot-starter-web") compile("org.springframework:spring-context-support") compile("org.aspectj:aspectjweaver:1.8.8..
톰캣을 shutdown하면 아래와 같은 오류메세지를 확인할 수 있다. 내용인즉슨.톰캣을 종료할때 jdbcDriver를 미등록상태로 변경할때 오류가 나고 메모리 누수를 막기 위해 강제로 jdbcDriver를 미등록 상태로 만들겠다라는 내용. Sep 05, 2016 7:35:56 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreadsSEVERE: The web application [] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory..
문제해결 방안 1.1. 쓰레드의 생성과 소멸은 구현되어 있으나, 작업중인 쓰레드가 있으면 소멸시키지 못하여 그 쓰레드는 waiting 상태로 남는다. 2. 그럼 쓰레드가 실행된것을 확인 후 소멸을 구현하자. => 실행된 것을 확인하고 소멸시키는 과정의 수행시간이 1초 이상걸려 발송이 지연되는 현상3. 쓰레드 소멸 실행 후 일정시간뒤에 여전히 작업중으로 소멸되지 못하면 강제로 소멸시킨다. => 소멸시키는 과정에서 새로운 작업요청이 들어올 경우 RejectedExecutionException 발생할 가능성4. 이 상황을 모니터링하기 위해 쓰레드에 이름을 부여한다. => thread - XXX 형식의 이름 부여하여, 쓰레드 모니터링 비교적 쉬워짐5. 쓰레드가 정상작동했는지 여부는 예상되는 작업건수와, 최종 쓰..
목표서비스되는 시스템 사양에 맞게 적절한 메모리 값을 설정하여 성능을 최적화 하고 자원낭비를 줄임Heap 메모리 사이즈 설정 - 기준 1. minorGC의 발생빈도는 10초 내외로 하고, 발생소요시간은 50ms 미만으로 한다. - 기준 2. majorGC의 발생빈도는 자주발생하지 않는다를 기준으로 하고, 발생했을경우 소요시간을 1초 미만으로 한다. - 기준 3. og의 가용률의 증가치를 체크하여, ng의 적절한 메모리용량을 적용한다. 2016-04-28 jvm 현황 그래프 해석1. 53과 14는 ratio 1:2, 1:9 정도의 비율로 53서버는 ngc의 영역이 14번에 비해 상대적으로 크므로 ygc 발생 빈도가 적다. 그러므로 ogc에는 ngc로부터 온 객체가 적다2. ogc의 크기는 53, 14번서버..
- Total
- Today
- Yesterday
- 원격접속 무료툴
- 스프링 마이바티즈 연동오류
- jenkins asyncpeople
- 작은거에소스라치게놀라는나
- 객체지향언어 자바
- jenkins user list
- response server header
- java.lang.UnsatisfiedLinkError
- 젠킨스 윈도우 설치
- mysql count
- nested exception is org.apache.ibatis.binding.BindingException\
- google vm ssh
- BeanCreationException
- no net in java.library.path
- oauth sso 차이
- mysql 인덱스
- 인덱스 자료구조
- select count(*) performence
- 스프링 크로스도메인
- jenkins remote api
- a태그 onclick이벤트
- common-dbcp
- mybatis overloading
- mysql count 성능
- 젠킨스 api
- Google ssh console
- 원격접속툴
- mybatis overload
- springboot server header
- spring mybatis
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |