반응형 [개발] Programming/Java21 톰캣 세션 수 설정하는 방법 - maxActiveSessions maxActiveSessions 세션 설정 서비스를 운영하다 보면 서버나 디비 자원이 풍족하지 않을 때도 있습니다. 이때 적절하게 세션 수를 설정해주는 것도 자원을 늘리지 않고 서비스를 유지할 수 있는 하나의 방법입니다. 디비나 서버 자원이 100% 찍고 행 걸려서 서비스가 다운되는 것보다는 세션 수를 제한하는 게 좋겠죠? 윈도우 서버의 경우 초간단하게 iis 설정으로 서버 재기동 이 필요 없지만, 리눅스나 윈도우 서버에서 톰캣으로 서비스를 돌리는 경우 context 파일에 설정을 해주어야 합니다. 방법은 톰캣 디렉토리 > conf > context.xml 파일 수정 파일 내부에 아래 소스 한 줄만 추가해주면 끝~! 100은 최대 100개의 세션을 허용한다는 의미이며, 이 수를 넘어가면 익셉션이 발생하고.. 2020. 9. 29. 자바 실행 시간(시간 차이) 구하기 - currentTimeMillis() 자바에서 currentTimeMillis() 함수를 이용하면 간단하게 시간 차이를 구할 수 있다. 해당 메소드는 system 클래스에 포함되어 있어 별도로 선언할 건 없다. 프로그램이 시작하는 시점에 실행하고 종료 시점에 실행해서 각각의 차를 구하면 된다. 함수: System.currentTimeMillis(); 예제 소스) 1. 시작 시점에 시간을 밀리 세컨드로 측정하고 - startTime 2. 5초간 실행했다고 가정하고 3. 종료 시점에 시간을 밀리 세컨드로 측정하고 - startTime 4. 마지막에 경과 시간을 미리 세컨드와 초로 출력 1 2 3 4 5 6 7 8 9 10 11 12 13 long startTime = System.currentTimeMillis(); try { // 5초간 지연.. 2020. 4. 23. 자바 String, StringBuffer, StringBuilder 차이 점 String, StringBuffer, StringBuilder 문자열을 저장하기 위한 클래스 3가지. 나오는 결과물은 동일하나 완전 다른 특성을 갖는다. 별거 아닌 것 같은데 정신력이 흐려지면 헷갈린다. 그래서 이참에 셋을 비교 분석해본다. 차이점 String은 immutable 즉 불변 객체이다. 선언하면 저장된 문자열을 가공해도 여전히 동일한 공간이 할당되어 있다. 소스로 예를 들면 스트링 타입에 값을 선언하면 해당 사이즈로 메모리에 할당이 된다. String tmp = "test string"; 데이터를 바꾸면 Heap 메모리 내 String pool에 새로 공간을 할당하게 된다. tmp + " adding a new string"; 기존 객체는 null로 초기화해주기 전까지는 메모리를 차지하고 .. 2020. 4. 7. 자바 현재 날짜, 시간 구하고 형식 지정 (getInstance, Date, currentTimeMillis) 하는 방법 자바 현재 날짜, 시간 구하는 방법 시스템 유지보수를 하다 보면 현재 시간을 구해야 되는 경우가 가끔 있습니다. 그런데 할 때마다 헷갈려서 이번에는 포스팅하여 기록해봤습니다ㅎㅎ 자바에서 날짜와 시간을 구하는 방법은 여러 가지가 있겠지만, 대표적으로 3가지를 소개하겠습니다. Date(), currentTimeMillis(), getInstance() 위 세가지 방법 모두 동일한 기본 형식으로 현재 날짜와 시간을 리턴해 줍니다. 세 가지 타입 다 기본 날짜, 시간 형식으로 리턴되기 때문에 우리에게 맞는 형식으로 표시하기 위해서는 반드시 변환하는 과장이 추가되어야 합니다. 포맷은 'SimpleDateFormat'을 이용하면 간단하게 원하는 형식으로 지정할 수 있습니다. SimpleDateFormat 으로 날짜.. 2019. 12. 29. 자바 Cannot invoke compareTo(int) on the primitive type int 자바에서 .compareTo() 메소드를 사용하려니 발생한 오류. 'Cannot invoke compareTo(int) on the primitive type int' 원인: primitive type은 클래스가 아니라 메소드를 호출할 수 없는데, 호출을 시도했기 때문. 오류가 발생하는 소스 1 2 3 4 5 6 7 8 9 // 숫자를 입력할 수 있는 vo가 있다고 가정 NumVo vo = new NumVo(); vo.setNumA(1); vo.setNumB(1); int result = vo.getNumA().compareTo(vo.getNumB()); // 결과: compareTo에서 오류 발생 Colored by Color Scripter cs 오류를 해결하기 위해서는 2가지 해결 방법이 있다. 1.. 2019. 7. 11. 자바 BigDecimal to int, 값 비교하는 방법 오라클에서 COUNT를 사용하면 해당 컬럼의 데이터 타입은 bigdecimal로 리턴된다. 그렇게 되면 해당 값으로 컨트롤러 단에서 int 값과 바로 비교할 수 없게 된다. 이 경우 우선 bigdecimal의 int 값을 구해서 비교를 해주면 해결된다. 사용 함수: intValue(); 예시, 1 2 3 testVo vo = new TestVo(); tmp = vo.getCnt(); cs 데이터 세트 testVo에 cnt라는 bigdecimal 변수가 있다고 가정, 이 값이 int 형인 0보다 큰지 비교하고 싶은 경우. cnt의 int 값을 구해야 된다. 아래 예제를 보면 첫 번째 if 조건문에서는 타입이 일치하지 않아 오류가 발생하며, 두 번째 if 조건문의 경우 bigdecimal을 int로 변환하였.. 2019. 6. 12. 이전 1 2 3 4 다음 728x90