반응형

컴퓨터활용 238

JEUSMain.xml 과 web.xml

web.xml 서블릿리스너, 서블릿, 서블릿매핑, 서블릿필터, 서블릿필터매핑 등이 web.xml 에 정의되어 있다. 서블릿매핑 : URL 로 들어오는 이름에 따른 정의를 하고 이에 따라 실행될 서블릿을 지정한다. HttpServiceStartpoint gpsb.service.http.HttpServiceStartpoint 1 HttpServiceStartpoint /service/* 이 예제에서 보듯이 /service/ 이라는 URL 로 들어오는 모든 요청은 gpsb.service.http.HttpServiceStartpoint 라는 서블릿이 받게 된다. 서블릿 리스너와 필터에 대한 설정은 아래와 같다. 프로젝트에 따라서 서로 다르겠지만~~ gbsb.service.http.HttpServiceStartp..

svn 사용자 추가

svn 설치 루트 하위에 conf 디렉토리 아래에 보면 passwd 파일이 있다. passwd 파일에 id와 비밀번호를 = 로 구분하여 등록한다. (한줄에 한 유저씩) ### This file is an example password file for svnserve. ### Its format is similar to that of svnserve.conf. As shown in the ### example below it contains one section labelled [users]. ### The name and password for each user follow, one account per line. [users] minho = minho brdori = brdori 같은 디렉토리에 있는 ..

ORA-00604 나 ORA-01000 오류가 날 때

java.sql.SQLException: ORA-00604: 순환 SQL 레벨 1 에 오류가 발생했습니다ORA-01000: 최대 열기 커서 수를 초과했습니다 위와 같은 오류가 날 때는 Statement 나 ResultSet 을 open 하기만 하고 close 가 없어서 나는 오류 입니다. 특히 while, for 같은 루프문에서 적절한 위치에서 close 를 하고 있는 지 확인할 필요가 있습니다. 아래와 같은 샘플 코드가 있다고 했을 때 rsColumns.close(); 를 누락시켰을 때 위와 같은 오류가 발생되었다. 실제 코드는 while loop 가 길어서 ResultSet 닫는 것을 놓쳐도 눈에 잘 띄지 않아서 오류를 찾는데 어려움이 있었다. ResultSet rsTables = dbMeta.get..

JVM Garbage Collection 순간 포착

자바머신에서는 일정시간이 지나면 GC(Grabage Collection)라는 작업을 해 준다. 개발자로서는 일일이 메모리를 해제하지 않아도 된다는 생각에 마음껏 오브젝트를 생성해서 사용하겠지만 이정도의 출렁임임을 안다면 경계해야 할 것이다. 그래프에서 보듯이 이 순간에 시스템의 성능이 현저히 떨어지는 현상을 경험하게 된다. (거의 50%로 떨어짐) 안정적인 거래가 보장되어야 하는 금융거래에서 이런 출렁임은 정말 끔찍한 경우가 될 것이다. JVM 을 띄울 때 heap memory를 충분히 잡아 준다하더라도 이런 출렁임의 시간간격을 줄일 수 있을 뿐이다. heap메모리가 적을 경우 이런 멈칫 하는 출렁임을 더 자주 경험하게 되는 것이다. 이런 GC 작동은 예측할 수 없는 순간에 갑자기 찾아온다는 것이 치명적..

시스템 모니터링 전문 솔루션 온튠 설정법

온튠은 팀스톤이라는 회사에서 개발한 시스템 모니터링 솔루션이다. 설치가 간단하고 사용법도 어렵지 않아서 프로젝트 초기 오픈할 때 설치해서 시스템을 상황을 모니터링하는 용도로 활용하면 좋은 제품이다. 제품 설치 후 라이센스는 회사로 메일을 보내면 바로 받을 수 있다.부지런한 개발자라면 프로젝트 초기부터 설치해서 사용하면 더욱 좋다. 온튠은 시스템 상황을 모니터링하고 분석하는데 타의 추종을 불허할 만큼 탁월한 제품이기 때문이다. 분석 자료를 파워포인트 문서로 이쁘게 리포팅을 해 주는 기능은 정말 신기하다. 온튠시스템은 모니터링을 할 서버에 설치되는 에이전트 프로그램과 각 서버에서 수집된 정보를 전송받아 집계하는 매니저 프로그램으로 구성되어 있다. 또한 매니저서버에 접속하여 그래픽환경으로 보여주는 TeemVi..

디렉토리별 디스크 사용량 조사하여 정리하기

디스크가 꽉 차게 되면 로그를 쓸 수가 없어서 시스템이 멈춰 서게 된다. 그 전에 미리미리 디스크 스페이스를 관리해 줘야 한다. 예를 들어 /user01 디스크가 96% 사용되고 있는데 누가 이렇게 많이 쓰고 있을까? [/user01/app]df -k 파일시스템 1024블록 사용가능 %사용 Iused %Iused 마운트위치 /dev/hd4 5242880 4789020 9% 12024 2% / /dev/hd2 10485760 3058428 71% 73460 10% /usr /dev/hd9var 3145728 2775232 12% 7487 2% /var /dev/hd3 3145728 2078792 34% 289 1% /tmp /dev/hd1 3145728 3144680 1% 60 1% /home /dev/h..

java 문자열 처리

C에서는 strcpy 를 쓰면 간단히 해결될 일을 java 에서는 아주 어렵게 해결한다. 아직 자바가 익숙하지 않아서 인가?일단 String 은 char 의 배열이 아니라 객체 이므로 C 에서 처리 한글자를 지정해서 바꿀 수 없다. toCharArray() 메소드를 통해서 char[]로 변환한 다음에라야 C에서처럼 한글자를 바꾸거나 할 수 있다. 아래 로직은 매번 째 숫자에 정해진 가중치를 곱한 후 누적 합한 다음에 10으로 나눈 나머지를 구하여 체크디지트를 한자리 만드는 로직이다. class test { public static void main(String args[]) { String ticket1 = "123456789012"; String ticket2 = " "; int i, sum, rema..

Transaction rolled back because it has been marked as rollback-only

오픈을 앞둔 시점에 transaction 관리를 강화하기 위하여 transaction.xml 에 아래와 같은 AOP 를 추가하였다. 여기서 ${service.basePackage} 는 profile.properties 에 정의 되어 있다. 파일명이 Service로 끝나는 파일은 일괄 적용한다는 의미이다. 물론 이것의 구현체도 대상에 포함된다. 그랬더니 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has ..

중복 로그인 방지 로직

중복 로그인을 체크하는 로직을 구현하는 미션이 프로젝트 마지막 단계에 주어졌다. 중복 로그인했을 때 먼저 로그인한 사용자가 세션 아웃 되는 것을 표준으로 정하였다. 이 때 최종 접속자의 IP와 로그인시각을 안내 받아야 한다는 전제조건이 있다. 스프링에서 제공하여 security 기능을 이용하여 구현해 보고자 했으나 생각대로 잘 되지 않았다. 스프링 설정으로 중복 로그인을 체크할 수는 있었으나 최종 접속자의 IP와 접속시각을 보여주고자 하는 곳에서 난관을 만났다. 세션이 invalid 되었기 때문에 세션아이디를 비롯한 사용자아이디, 접속IP등 세션에 보관되어 있는 정보가 싸그리 사라져 버린 상황이었기 때문이다. 그래서 결국 로그인 히스토리를 보관하고 있는 테이블에서 정보를 추출하여 중복로그인을 체크하도록 ..

반응형