java 13

JDK 1.5 부터 등장한 ThreadPool

Thread Pool이라는 것이 얼핏 생각하면 구현이 간단할 수 도 있지만, 막상 구현하려면 상당히 귀찮은데, JDK 1.5에 이 내용이 포함되어 있다. 상당히 설계도 잘한것 같아서 마음에 드는데.. 이정도면 쉽게 웹서버정도는 만들 수 있지 않을까? http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ThreadPoolExecutor.html#execute(java.lang.Runnable) 생성자를 잠깐 살펴보면 ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, ThreadFactory ..

EJOSA (Enterprise Java Open Source Architecture)

진짜 별게 다 나온다. 오픈 소스가 많이 발전하고, 이제 J2EE 급의 각종 오픈소스 프레임웍들이 나오더니.. 이런것에 대한 통합과 정리의 필요성을 생각하고 있었는데. 실제로 Spring의 경우는 오픈소스들의 컨테이너와 같은 역할을 하면서 수많은 커넥터 들을 만들어 내고 있었다. 그런데 왠걸? SourceForge에서 EJSOA로 Enterprise용 Java Open Source 아키텍쳐를 내 놓았다. 얼마나 실용적일까는 두고봐야할 일이지만, 상용 J2EE 벤더 입장에서는 그리 반갑지 않은 오픈소스가 아닐까 싶다. 이대로 가다가는 상용벤더들은 Middleware보다는 솔루션과 컨설팅등에 집중해야 하지 않을까? 다음은 EJOSA 관련 자료들에 대한 링크 http://blog.naver.com/comsna..

Java Application의 Locking 처리문제

Java AP에서 Locking처리 방법은 Synchronized 를 사용하는 방법이 대표적인데 이 경우에는 하나의 JVM Instance 내에서만 동기화 처리가 가능하다. 시스템을 설계할때, 다중 인스턴스 구조의 부하 분산 환경을 고려한다면, 인스턴스내의 Locking 처리인지 아니면 인스턴스간의 Locking처리가 필요한지를 먼저 결정해야 하고, 인스턴스간의 Locking처리인 경우에는 DB나 아니면 기타 (RMI,JMS등) 방법을 사용하는 방식이 있다. 특히 DB의 Lock 처리 메커니즘을 생각할때 고려할 부분은 보통 다음과 같은 구조로 만드는 경우가 많다. 1: select LOCK 2: if( unlocked){ 3: update set LOCK 4: }else { return "Lock이 걸려..