• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 1502
2009.09.28 (09:14:17)
데이터 건수에 따라 조회가 되고 되지 않고는 거의 대부분
데이터 해더 사이즈 제약때문에 발생한 문제입니다.
DataSet Header의 Column Size를 체크하셔서 제약에 넘지 않는지 확인해 보시기 바랍니다.

주의사항)
DataSet은 데이터 처리를 담당하는 컴포넌트입니다. 사용자가 입력한 Data를 Server에 전달하거나 Server에서 생성된 Data를 수신하는 역할을 수행합니다. 이런 Data처리를 담당하는 DataSet은 처리할 수 있는 Data size에 제약을 가지고 있는데 한 컬럼당 최대 6K, 한 로우당 8K의 제약을 가지고 있습니다. 예를 들어 컬럼 A, B, C 로 구성된 DataSet에 첫번째 Row의 Data로 A : 6K, B: 3K, C: 2K의 Data를 담아 Client로 전송하게 되면 한 Row의 Data량이 11K가 되어   한 Row에서 처리할 수 있는 8K의 용량을 초과하게 됩니다. 이럴 경우 Client에서는 Memory 문제가 발생될 수 있습니다. 이를 방지하기 위해서는 개발시 Data를 세팅하는 부분에 유효한 Data의 Size를 알고(보통 DB Schema 참조) 적정한 사이즈를 세팅해 주어야 합니다.

한 컬럼, 컬럼들의 합인 한 로우에 대한 사이즈 제약은 있지만, DataSet에서 처리할 수 있는 전체 size에 대한 제약은 없습니다.

단, 유니코드인 경우 Data Type이 String일 경우 Column Size에 *2를 하게 됩니다. 예를 들어 A:STRING(3000), B:STRING(2000), C: INT(10)의 Data를 담아 Client로 전송하게 되면 한 3000*2 + 2000*2 + 10 되어 10.01K가 되어 처리할 수 있는 8K의 용량을 초과하게 됩니다.


>게시판을 이용해 주셔서 감사합니다.
>다음양식에 맞게 입력해주세요.
>
>* 고객시스템명 :
>* GAUCE 버전 :
>* WAS 종류(WebLogic 등등) :
>* DB 종류 :
>* 문의 유형(질문/요청/참조) :
>* 내용 :
>
>안녕하세요
>2만건 정도는 무리없이 데이터를 display 하는데
>4만건 정도 되면 아래와 같이 display 되지 않는데
>
>혹시 가우스 전송 단위라던지 무슨 환경 설정을 바꿔야 하는지 알고 싶습니다.
>
>감사합니다.
>
>윈도우에서는 데이터를 Display 하다가 오브젝트오류 alert 창이 뜨고 브라우저가 닫힙니다.
>아래는 서버 에러 메세지 입니다.
>
>DEVH_5 16:58:26[044] Unexpected Exception occurred - devonframework.bridge.gauce.util.LGauceException: Unhandled Exception.
>DEVH_5 16:58:26[045] devonframework.bridge.gauce.util.LGauceException: Unhandled Exception.
>        at devonframework.bridge.gauce.util.LGauceConverter.convertToGauceDataSet(Unknown Source)
>        at devonframework.bridge.gauce.util.LGauceConverter.convertToGauceDataSet(Unknown Source)
>        at devonframework.bridge.gauce.util.LGauceConverter.extractToGauceDataSet(Unknown Source)
>        at cpf.mst.cmd.RetrieveMst020CustomerModelMappingCmd.execute(RetrieveMst020CustomerModelMappingCmd.java:30)
>        at devonframework.front.command.LCommandEngine.a(Unknown Source)
>        at devonframework.front.command.LCommandEngine.execute(Unknown Source)
>        at devonframework.front.channel.interceptor.LCommandInterceptor.doIntercept(Unknown Source)
>        at devonframework.front.channel.interceptor.LInterceptorChain.doIntercept(Unknown Source)
>        at devonframework.front.channel.interceptor.LConverterInterceptor.doIntercept(Unknown Source)
>        at devonframework.front.channel.interceptor.LInterceptorChain.doIntercept(Unknown Source)
>        at devonframework.front.channel.interceptor.LFileUploadInterceptor.doIntercept(Unknown Source)
>        at devonframework.front.channel.interceptor.LInterceptorChain.doIntercept(Unknown Source)
>        at devonframework.bridge.gauce.channel.LAbstractGauceServlet.process(Unknown Source)
>        at devon.lge.foundation.servlet.GauceServlet.catchService(GauceServlet.java:76)
>        at devonframework.front.channel.LAbstractServlet.doGet(Unknown Source)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226)
>        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
>        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
>        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
>        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>        at cpf.filter.LocaleFilter.doFilter(LocaleFilter.java:38)
>        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>        at cpf.filter.CharsetEncodingFilter.doFilter(CharsetEncodingFilter.java:168)
>        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>        at com.gauce.filter.GauceFilter.doFilter(Unknown Source)
>        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3393)
>        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
>        at weblogic.security.service.SecurityManager.runAs(Unknown Source)
>        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2140)
>        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2046)
>        at weblogic.servlet.internal.ServletRequestImpl.run(Unknown Source)
>        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
>        at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
>Caused by: java.lang.RuntimeException: 컴포넌트로 GauceDataSet을 출력하는 동안에 오류가 발생하였습니다.
>         java.net.SocketException: Broken pipe
>        at com.gauce.io.bin.H.bufferFilled(Unknown Source)
>        at com.gauce.GauceDataSet.addDataRow(Unknown Source)
>        ... 36 more
>
>gauce.xml
>
><configuration>
>    <global compressed="false" fragment="40">
>        <charset default="UTF-8" get="UTF-8" post="UTF-8"/>
>        <col-def integer="6" decimal="7.3" string="255" round="R"/>
>
>        <crypto spi="com.gauce.common.crypto.impl.SecuiAdapter"/>
>
>        <connector>
>            <request className="com.gauce.filter.HttpGauceRequestWrapper"/>
>            <response className="com.gauce.filter.HttpGauceResponseWrapper"/>
>        </connector>
>    </global>
></configuration>
 
Tag List
XE Login