'2014/02/25'에 해당되는 글 2건

  1. 2014.02.25 ResultSet FetchSize
  2. 2014.02.25 Timeout increase for axis soap client

Client support 이슈로 작성하게 된 Data Dump API.
기능적으로는 문제가 없었는데.. Performance가 생각만큼 나오지 않았다.
DBA 팀에 속도가 너무 느리다고 문의 해 보니, Query 자체는 빠르게 실행된다고..
그러면서 fetch size를 증가시켜 보란다.

Googling 해보니, Oracle JDBC의 default FetchSize가 10이다.
Query 자체는 Optimize 되어서 빠르게 실행되고 있는데, 한 번 가져올 때 10개만 가져오다보니 Data Entry 개수가 많을 경우에 DB에 Revisiting 하는 회수가 증가하면서 Query 실행시간은 빠른데 JDBC side 에서는 느릴 수 밖에 없었던 것이다.

일단은 ResultSet에 fetchSize를 100으로 늘려 주어서 8초 걸리던 Query가 1초 이내에 실행되게 되었는데, fetchSize는 Statement level에서도 설정해 줄 수 있는 config 이다.

흐... 10 년 넘게 Java 개발하면서 이런 부분을 모르고 있었다니..
좀 많이 쪽 팔리는 일이..
뭐 그래도 어쩃든 DBA 도움 덕분에 성능을 크게 향상시키고 새로운 걸 알게 되었으니,
그게 어디여....

'개발자세상 > 자바세상' 카테고리의 다른 글

Control character in XML  (0) 2014.05.28
jboss db pooling timeout  (0) 2014.03.01
Timeout increase for axis soap client  (0) 2014.02.25
자바 DEBUGGING  (0) 2013.11.20
Spring property  (0) 2013.10.15
Posted by headiron
,

이번에 Client support를 진행하는 중에 큰 데이터를 사용하는 것 때문에 10분 이상의 timeout 세팅을 사용해야 하는 Client issue 가 발생했다.

일단 Timeout은 Apache의 Timeout에 설정되어 있어서 해당 Config를 증가 시키면 되었는데,
문제는 Client side의 timeout 관련 이슈가 계속 발생하는 것이다.

뭐.. 우리 Google 님에게 문의 했고 결과는 아래와 같이 Timeout property를 증가시켜 주면 되었다.

ServiceFactory factory = ServiceFactory.newInstance ();
Service service = factory.createService (url, qname);
Call call = service.createCall (port, operation);
call.setProperty(org.apache.axis.client.Call.CONNECTION_TIMEOUT_PROPERTY, 1800000);
...


위의 Setting은 Axis 에서 Timeout을 설정해 주는 코드 인데..
결국은 다른 Client를 사용하는 Client에 대해서는 다른 코드를 찾아야 한다는..





'개발자세상 > 자바세상' 카테고리의 다른 글

jboss db pooling timeout  (0) 2014.03.01
ResultSet FetchSize  (0) 2014.02.25
자바 DEBUGGING  (0) 2013.11.20
Spring property  (0) 2013.10.15
human readable 한 json 출력  (0) 2013.03.22
Posted by headiron
,