허니몬 동지. 일단 원인은 알았소. HttpClient 인스턴스를 재활용하지 않고 매번 새로 만들면 문제가 안 생깁니다. ResponseHandler 구현에 문제가 있나 좀 봐야겠소. 11.09.27 22:09
24 개의 댓글이 있습니다.
험... 이번 일을 위원회가 잘 처리해 주리라 믿소
안돌에서 계속 만들기 부담스럽지 않을까요?
백일몽 네네. 그래서 지금 뭐가 문제인지 봐야해요. 아마 이전 요청의 결과를 정리하면서 깔끔하게 처리하지 않아서 그렇지 않나 싶어요. http client가 종종 그러더라구요.
그거 httpclient옵션을 멀티ㅛ청 처리가능하게 해두면 괜찮지 않나요? 비싼 자원인데 ... 정확한 현상은 뭐에요?
fupfin restTemplate 같은 넘 쓰면 문제가 덜 할듯도 싶은데요
백일몽 restTemplate은 서버가 정확히 restful하게 설계되지 않으면 작동을 안 하는데 서버 api가 야매라서요. ^^ 대충했더니..;;;
fupfin ㅠㅠ
꼬룸 안드로이드 2.2에서는 잘 도는데 2.1에서 먹통이 되는 현상입니다. httpclient.execute()에서 먹통되요.
우호홍...
저 그 문제 겪었었는데 ... 뭐 일단 ThreadSafeClientConnManager를 이용해서 DefaultHttpClient 인스턴스를 만들도록 했고요.
일부 기종 먹통되는 문제가 발생해서 HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_0);으로 HTTP 버전 낮춰서 문제 해결했어요. HTTP 버전 낮춘거는 다른 이유 때문이었던 것 같기도 하고 기억 잘 안나네요.
꼬룸 고맙습니다. ThreadSafeClientConnManager는 이미 쓰고 있고요. 버전을 함 낮춰봐야겠네요.
그거 execute에 들어가는데 블록 걸리는 현상이면 그 문제 맞는 것 같아요. 이거 제가 고친게 아니라 다른 동료가 소가 뒷걸음질 하면서 잡았다고 좋아했던 기억이 어렴풋 나네요. 이거 재현되는 기기가 있었는데 ... 안드로이드 너무 어려운 것 같아요 :)
꼬룸 지금 애뮬레이터에서도 재현은 되는데 버전을 낮춰도 마찬가지네요. ㅠㅠ
꼬룸 제가 보기엔 ThreadSafeClientConnManager의 커넥션이 정상적으로 release되지 않아서 max까지 차면 block되는 것 같습니다.
ㅠ_ㅠ 그나저나 안드로이드를 에뮬레이터에서 대단하십니다! 제가 겪은 제일 난해했던 문제 1번이 AsyncTask 바보 되는거(execute에 안들어가는거), 2번이 요문제, 3번이 뷰만 바꿔쓸 요량으로 조금만 쌓아둬도 엄청 느려지는 현상이었어요.
mClient.getConnectionManager().closeExpiredConnections();로 expire된거 close해주는건 어떨까요?
꼬룸 저도 폰으로 개발하고 싶지만 휴가라서 장비를 다 삼실에 두고 나왔어요. ㅠㅠ
꼬룸 오호. 고맙습니다. 함 해볼께요.
릴리즈코드를 넣어도 실제로 릴리즈가 안되는 커넥션들이 있데요... 전 안드로이드는 아닌데 서버에서 이상하게 돌길래 구글링했더니... ㅠㅠ
stella 저도 HttpClient 가지고 웹 크롤러까지 만들어봐서 대략 뭔 일이 있는지는 아는데 이게 버전마다 또 다르고... 아주 거시기합니다.
엄.. 전 이런 문제를 겪어보진 않았는데 무섭군요... 언제 터질 지 모르는 -_-;;
오리대마왕 원인을 찾았어요. 제 실수... 헤헤 (퍽!)
이런건 댓글이 귀합니다. 댓글들 보고 참고하겠습니다. ^^
험... 이번 일을 위원회가 잘 처리해 주리라 믿소
11.09.27 22:11안돌에서 계속 만들기 부담스럽지 않을까요?
11.09.27 22:13백일몽 네네. 그래서 지금 뭐가 문제인지 봐야해요. 아마 이전 요청의 결과를 정리하면서 깔끔하게 처리하지 않아서 그렇지 않나 싶어요. http client가 종종 그러더라구요.
11.09.27 22:19그거 httpclient옵션을 멀티ㅛ청 처리가능하게 해두면 괜찮지 않나요? 비싼 자원인데 ... 정확한 현상은 뭐에요?
11.09.27 22:22fupfin restTemplate 같은 넘 쓰면 문제가 덜 할듯도 싶은데요
11.09.27 22:25백일몽 restTemplate은 서버가 정확히 restful하게 설계되지 않으면 작동을 안 하는데 서버 api가 야매라서요. ^^ 대충했더니..;;;
11.09.27 22:36fupfin ㅠㅠ
11.09.27 22:37꼬룸 안드로이드 2.2에서는 잘 도는데 2.1에서 먹통이 되는 현상입니다. httpclient.execute()에서 먹통되요.
11.09.27 22:37우호홍...
11.09.27 22:48저 그 문제 겪었었는데 ... 뭐 일단 ThreadSafeClientConnManager를 이용해서 DefaultHttpClient 인스턴스를 만들도록 했고요.
11.09.27 23:00일부 기종 먹통되는 문제가 발생해서 HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_0);으로 HTTP 버전 낮춰서 문제 해결했어요. HTTP 버전 낮춘거는 다른 이유 때문이었던 것 같기도 하고 기억 잘 안나네요.
11.09.27 23:01꼬룸 고맙습니다. ThreadSafeClientConnManager는 이미 쓰고 있고요. 버전을 함 낮춰봐야겠네요.
11.09.27 23:04그거 execute에 들어가는데 블록 걸리는 현상이면 그 문제 맞는 것 같아요. 이거 제가 고친게 아니라 다른 동료가 소가 뒷걸음질 하면서 잡았다고 좋아했던 기억이 어렴풋 나네요. 이거 재현되는 기기가 있었는데 ... 안드로이드 너무 어려운 것 같아요 :)
11.09.27 23:07꼬룸 지금 애뮬레이터에서도 재현은 되는데 버전을 낮춰도 마찬가지네요. ㅠㅠ
11.09.27 23:08꼬룸 제가 보기엔 ThreadSafeClientConnManager의 커넥션이 정상적으로 release되지 않아서 max까지 차면 block되는 것 같습니다.
11.09.27 23:11ㅠ_ㅠ 그나저나 안드로이드를 에뮬레이터에서 대단하십니다! 제가 겪은 제일 난해했던 문제 1번이 AsyncTask 바보 되는거(execute에 안들어가는거), 2번이 요문제, 3번이 뷰만 바꿔쓸 요량으로 조금만 쌓아둬도 엄청 느려지는 현상이었어요.
11.09.27 23:12mClient.getConnectionManager().closeExpiredConnections();로 expire된거 close해주는건 어떨까요?
11.09.27 23:13꼬룸 저도 폰으로 개발하고 싶지만 휴가라서 장비를 다 삼실에 두고 나왔어요. ㅠㅠ
11.09.27 23:14꼬룸 오호. 고맙습니다. 함 해볼께요.
11.09.27 23:15릴리즈코드를 넣어도 실제로 릴리즈가 안되는 커넥션들이 있데요... 전 안드로이드는 아닌데 서버에서 이상하게 돌길래 구글링했더니... ㅠㅠ
11.09.28 00:30stella 저도 HttpClient 가지고 웹 크롤러까지 만들어봐서 대략 뭔 일이 있는지는 아는데 이게 버전마다 또 다르고... 아주 거시기합니다.
11.09.28 00:31엄.. 전 이런 문제를 겪어보진 않았는데 무섭군요... 언제 터질 지 모르는 -_-;;
11.09.28 00:55오리대마왕 원인을 찾았어요. 제 실수... 헤헤 (퍽!)
11.09.28 00:58이런건 댓글이 귀합니다. 댓글들 보고 참고하겠습니다. ^^
11.09.28 14:17