Tag Archives: 자바

톰캣의 메모리 확장

SI 구조에서는 외면을 받고 있는 톰캣이지만 거듭되는 버젼업을 통해 단점을 많이 개선했다고 생각한다.

물론 사용이나 관리상의 이점이 다른 사용 WAS에 비하면 아무것도 없다(?)는게 큰 단점이긴 하다.

많은 사용자의 접속이나 꽤 무거운 프로세스중에 가끔씩 Out of Memory를 만날 수 있다.

요즘 서버는 메모리가 큰 편이니 톰캣에게 많은 메모리를 할당해 주어도 괜찮을것이다.

/etc/profile 에 다음과 같은 내용을 추가한다.

무리한 감이 있지만 현재 램 2기가의 실무 서버에 설정하여 사용하고 있으며 아무런 문제없이 사용중인 설정이다.

[code]export JAVA_OPTS=”-Xms256m -Xmx1024m -XX:MaxPermSize=128m”[/code]

이후 톰캣을 재시작하면 JAVA_OPTS의 설정 내용을 추가적으로 읽는다.

[iBatis] LIKE 검색 구문 사용하기

iBatis를 사용하다 보니 또하나의 문제에 봉착했다.. LIKE 검색의 %기호를 인식하지 못하는 것이었다.

구글신에게 검색해 보고 다음과 같은 해결책을 얻을 수 있었다.

MySQL :
[code]SELECT * FROM tbl_name WHERE column_name LIKE “%$username$%”[/code]

ORACLE :
[code]SELECT * FROM tbl_name WHERE column_name LIKE  ‘%’ || #username# || ‘%'[/code]

SYBASE/SQL SERVER
[code]SELECT * from tbl_name WHERE column_name LIKE  ‘%’ + #username# + ‘%'[/code]

여기서 변수명을 #로 둘러싸는 것과 $로 둘러싸는것의 차이점을 알 필요가 있다.

#의 경우에는 Prepare Statement로 등록이 된다. 디버그를 찍어봐도 ?로 치환된 이후 값이 대입된다.

하지만 $의 경우 바로 값이 치환된다. 특정 변수가 바로 DB에 입력되므로 보안에 좀더 신경을 써야 할것으로 생각된다.