네트워크 서버의 성능테스트용으로 netty(http://netty.io)기반으로 테스트툴을 만들었는데, 테스트툴 내부에서 여러개의 소켓 생성시 문제가 발생. 이를 step by step으로 확인해 봄~ * 윈도우에서는 괜찮았는데, 리눅스(centos 6.3)에서는 10개이상의 소켓을 생성하려고 하면 오류발생. 오류 : org.jboss.netty.channel.ChannelException: Failed to create a selector. at org.jboss.netty.channel.socket.nio.AbstractNioSelector.openSelector(AbstractNioSelector.java:343) at org.jboss.netty.channel.socket.nio.AbstractN..
메시지큐(message queue)를 사용 할 일이 생길거 같아 관련 내용들을 급하게(!) 찾아봄.사실 전부터 메시지큐잉에 대해 관심(?)이 있긴 했지만, 이제야 살짝 맛을 보게 됨. ㅡ.ㅡ;;;하지만 이번 글도 역시나 퀵가이드에 가까운.. 그냥 수박 겉핥기 식! 임.. :) * 일단, jms 관련 간단설명 블로그http://www.openeg.co.kr/238 메시지큐잉을 위해 RabbitMQ 를 사용하기로 함.홈페이지 : http://www.rabbitmq.com/다운로드 : http://www.rabbitmq.com/download.html 다양한 언어로 client를 지원하고, 더더군다나 홈페이지에서 예제로 설명하는 client 가 자바와 파이썬이라 자바기반의 앱을 개발하는 나로썬 괜찮은 선택이라..
구글링 해도 잘 안 나와서 영어울렁증에도 불구하고 logback 사이트에서 찬찬히 찾아보니 방법이 있네~ 역시 이래서 원조(?!)가 좋은 거구나.. 쿨럭.시간 또는 분(minute) 별로 서비스 로그를 저장하기 위해 logback.xml에서 rolling-policy 부분 설정내용을 한번 적어 본다.보다 자세한 건 아래 사이트 참고~~ :)http://logback.qos.ch/manual/appenders.html true D:/wizardee/develop/app_logs/test/service.log [%d{ISO8601}] %c{1}:%M:%L [%p] %m%n D:/wizardee/develop/app_logs/test/%d{yyyy,aux}/%d{MM,aux}/%d{dd,aux}/service..
apache의 HttpClient를 사용할 때 요청에 대한 응답시 content-length 설정방법에 대해 기록차원에서 간단히 적어 본다. HttpResponse에서 Conents-length를 헤더에 넣어줘야 할 경우,BufferedReader를 이용하여 읽을 수 있는 Content의 길이를 읽어들여 처리를 해 본 코드.(mark(), reset() 을 이용하여 처리)BufferedInputStream bis = null; try { bis = new BufferedInputStream(entity.getContent()); int length = 0; logger.debug("\n\n ====111111 in.available["+ length +"] ====\n\n"); bis.mark(0); w..
현재 netty3.8.0_final을 사용 중에 있는데, netty에서 Bootstrap 생성, 설정 한 후, connect() 를 하고 동기식으로 다음 로직을 실행할 때원래는 외부에 connect()의 결과를 리턴 해 주기 위해 아래처럼 await 관련 메소드를 썼었는데, 이럴 경우, 하나의 프로그램에서 여러 netty클라이언트를 사용해서 처리할 경우, dead lock이 걸릴 수도 있다는 예외(?)를 netty가 친절(?)하게 알려 준다. ㅜㅜ;// Wait until the connection attempt succeeds or fails.ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));channel = futu..
jedis 사용시 여러 스레드에서 동시에 jedis.exist() 를 호출할 경우, 아래의 예외가 간헐적으로 발생..java.lang.ClassCastException: [B cannot be cast to java.lang.Long at redis.clients.jedis.Connection.getIntegerReply(Connection.java:188) at redis.clients.jedis.Jedis.exists(Jedis.java:93) at boazcmt.tip.common.cache.JedisFactory.getCache(JedisFactory.java:74) jedis git(https://github.com/xetorthio/jedis)에 가 보니 2.2.x 버전에서는 버그가 해결되었다..
예전엔 HashMap에 바로 지원해 주는 메소드가 없어서 그냥 루프 돌리면서 List에 넣었었는데,오늘에서야 다시 한번 찾아보니 방법이 있었다. ㅡㅡ; HashMap hmResult = new HashMap();// 작업 어쩌구 저쩌구..// 작업한 hmResult를 List로 변환한다.List list = new ArrayList(hmResult .values())); 역시나 아직 멀었구나 난.. javadoc만 잘 좀 살펴봤어도 되었던걸 흑.. ㅜㅜ;
우선, 오라클 사이트에서 맥용 jdk1.7.0 을 다운 받는다..http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u4-downloads-1591156.html 다운받은 후, 실행시키면 설치화면(캡쳐 못함.. 아놔..ㅡㅡ;)이 뜨고 설치를 하는데, 이클립스에서 참조하는 디렉토리에 설치를 하지 않는다.. 그래서 설치된 1.7.0.jdk 디렉토리를 아래의 디렉토리로 이동하던가 아니면 심볼릭 링크를 걸어서 이클립스에서 참조하도록 한다.이클립스에서 참조하는 디렉토리 :/System/Library/Java/JavaVirtualMachines/ Java -> Installed JRE -> Add -> StandardVM -> JRE Directory에 아래..
일반적인 싱글톤 구현 코드~!public class Singleton { // Private constructor prevents instantiation from other classes private Singleton() { } /** * SingletonHolder is loaded on the first execution of Singleton.getInstance() * or the first access to SingletonHolder.INSTANCE, not before. */ private static class SingletonHolder { public static final Singleton instance = new Singleton(); } public static Singlet..
- Total
- Today
- Yesterday
- MySQL
- 자바
- 개화예술공원
- 중도
- spring
- http
- 중도캠핑장
- SVN
- socket
- network
- 오토캠핑
- netty
- 스프링
- 무제
- 이클립스
- json
- java
- 주저리주저리
- 단상
- db
- 안드로이드
- myBatis
- 캠핑
- JavaScript
- 개발
- 주저리
- 발번역
- QR코드
- 톰캣
- 스마트tv
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |