• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 5998
2015.07.02 (14:58:23)

게시판을 이용해 주셔서 감사합니다.
다음양식에 맞게 입력해주세요.

**필수입력사항**

* 고객(업체)명 : 한국 서부발전
* 제품 버전 : gauce 4.0
* 문의 유형(질문/요청/참조) : clob 데이터 처리 및 저장  
* 내용 : 

clob 데이터 저장관련 해서 질문을 드릴려고 합니다.


소스 :

저장 버튼 클릭 시 호출 스크립트

function on_save() {

ta_content1.Enable = truel;

ta_content2.Enable = true2;

ta_content3.Enable = true3;

ta_content4.Enable = true4;

ta_content5.Enable = true5;

ds_01.NameValue(ds_01.RowPosition, "CONTENT1") = "ta_content1"


tr_01.ExtProp("UseActionBlank") = "T";

tr_01.Post();

}


tr 오브젝트 선언

<object id=tr_01 classid="">

<param name="ServerIP value="">

<param name="Action"  value="transaction.jsp">

<param name="KeyName" value="toinb_dataid4">

<param name="KeyValue" value="JSP(I::IN_DS1=ds_01)">

</object>


textarea 오브젝트 선언

<object classid="" id="ta_content1" width="100%" height="100>

<param name=CacheLoad value=true>

<param name=Enable value=true>

<param name=ApplyRTF value=true>

</object>


bind 오브젝트 선언

<object id="bd_01" classid="">

<param name=DataID value=ds_01>

<param nameBindInfo value='

<C>Col="CONTENT1" Ctrl="ta_content1" Param=Src</C>

'

</object>


이렇게 코딩을 하고 저장을 할려고 하니 CLOB 데이터가 1byte로 생성이 되면서 글 내용을 사라지는 현황이

발생을 합니다.


어디서 잘못 된건인지 알고 싶은데... CLOB 관련된 모든 소스를 확인해 봐도 정확한 원인을 알 수가 없네요..

혹시 다른 부분에 설정을 해야 하는 부분이 있는 것인지.. 궁금 합니다.


답변 기다리겠습니다.

2015.07.06 (08:52:21)
shift

1. 저장 전 데이터가 정상적으로 들어있는지 확인해 보시기 바랍니다.

alert(ds_01.text);

tr_01.Post();

 

2. OndataError를 사용하여 포멧에 이상이 있는지 확인해 보시기 바랍니다.

http://member.shift.co.kr/ComponentManual/AMX/Basic/DataSet/Event/OnDataError/OnDataError.htm

 

3. 또한 콜론(:)을 하나만 사용하시기 바랍니다.

 I::IN_DS1=ds_01 > I:IN_DS1=ds_01

 

감사합니다.

(*.234.186.58)
2015.07.06 (13:34:45)
황기석

답변 감사드립니다. 


alert(ds_01) 해본 결과 다음과 같이 나오더군요 


CONTENT1:URL:NORMALTYPE:NORMALKEY

"ta_content1" 


textarea 앞에 내용을 입력하고 저장 버튼을 누르면 내용이 없어지면서 


transaction.jsp에서 

CONTENT1_size로 사이즈를 체크해 보면 1byte로 나오네요.. 


WEB-INF\tmp에 생성되는 파일을 체크해 봐도 1byte로 파일만 생성이 되어 있구요.. 

저장을 하기 전에 다른 작업이나 설정을 해야 되는 부분이 있는지 궁금합니다.

(*.227.22.57)
2015.07.06 (17:42:34)
황기석

저장시 서버 로직 


req = service.getGauceRequest();

req = service.getGauceResponse();


GauceDataSet cds = req.getGauceDataSet("IN_DS1"); 


if(cds != null) {

int iContent1 = cds.indexOfColumn("CONTENT1");

int iContent1_size = cds.indexOfColumn("CONTENT1_size");

int iContent1_type = cds.indexOfColumn("CONTENT1_type");


GauceDataRow[] rows = cds/getDataRows();


for(int i=0; i<rows.length;i++) {

sql = "insert query"; 


is = (InputStream) rows[i].getInputStream(iContent1);

                StringBuffer sb = new StringBufffer();

                byte[] buf = new byte[1024]; 

while(true) {

int bread = is.read(buf); 

                        if(bread == -1) break; 

                        sb.append(new String(buf)); 

}


String content1_data = sb.toString();

                StringReader sr = new StringReader(content1_data); 


stmt = con.prepareStatement(sb.toString()); 


stmt.setCharacterStream(1, sr, content1_data.length());


stmt.executeUpdate();

is.close();

}

stmt.close();

}


이런식으로 서버 소스는 코딩 하였습니다... 다른 샘플 소스들과 비교해 보아도 다른 부분을 찾지 못해 이렇게 글을 올립니다. 


내용 확인해 주시고 

아래 번호로 연락 주시면 감사하겠습니다. 


02-3429-6824 : 황기석

(*.227.22.57)
2015.07.07 (08:28:17)
shift

소스상의 이상은 확인할 수 없습니다.

 

화면에서 전달시 HTTP Analyzer와 같은 패킷 확인할 수 있는 툴에서 데이터가 정상적으로 전달되는지 확인한 후

서비스에서 전달된 URL, Size, Type 등을 로그에 남겨 데이터를 확인해야 할 것 같습니다.

 

FAQ의 샘플이 먼저 정상적으로 동작하는지 확인해보시기 바라며, 해당 소스를 기준으로 적용해보시기 바랍니다.

blob sample : http://member.shift.co.kr/index.php?search_target=title&search_keyword=blob&document_srl=230156

clob sample : http://member.shift.co.kr/index.php?search_target=title&search_keyword=clob&document_srl=230314

 

문제가 해결되지 않으시면 유지보수 담당자에게 원격지원을 받으시기 바랍니다.

 

감사합니다.

(*.234.186.58)
2015.07.15 (13:02:21)
황기석

안녕하세요. 저번에 문의 드렸던 내용들은 어느정도 해결이 된거 같은데

다른 문제가 있어서 질문을 드립니다.


CLOB 저장 시 TMP 에 저장 된 내용을 가져와서 파싱을 하게 되는데.

파싱해서 저장 시 일정 용량 이상이 될 경우


Didn't meet stated Content-Length, wrote 메세지가 나오면서 저장이 안되 현상이 발생하더군요...


이 경우 해결 방법이 있는지 궁금 합니다.

(*.227.22.57)
2015.07.17 (16:55:09)
shift

"Didn't meet stated Content-Length, wrote" 화면에서 보여 주려는 것과 실제로 전송되는 콘텐츠 길이를 확인 시켜 주기 위해 웹로직에 추가된 기능입니다.

참고 : http://dae0park.blog.me/140175583885

 

servlet code에서 아래 code를 추가해 보시기를 권장합니다.

response.setContentLength(0);

............................

............................

response.flushBuffer();

return;

(*.234.186.71)
번호 제목 닉네임 조회 등록일
7389 CLOB 데이터 처리에 관한 질문입니다. [1]
매표
5320 2015-08-28
7388 호환성 관련 문의 드립니다. [1]
speedup
5573 2015-08-20
7387 그럼 보안모듈 구매안하면 패킷암호화는 어떻게하나요 [1]
ESP
5124 2015-08-19
7386 패킷암호화 하려는데 보안모듈 어떻게구하나요 [1]
ESP
4499 2015-08-19
7385 TreeView.EnableCheckBoxes 질문 [1]
카레이서곰
6359 2015-08-13
7384 전자정부프레임워크 적용시 InnoXyncView.java에서 오류 파일 [5]
jang218
5833 2015-08-05
7383 CloseFrame() 이벤트 문의 파일 [1]
노시진
5083 2015-08-04
7382 window8 , explorer11 환경에서 파일 업로드 불가 [1]
c1138
4461 2015-07-30
7381 그리드 헤더 관련 질문 입니다. [1]
웰컴
4865 2015-07-29
7380 GridToOffice 한글깨짐 관련 문의 드립니다 파일 [1]
증기기관차
5082 2015-07-10
7379 GridToExcel 사용 시 오류 관련 문의 드립니다. [1]
증기기관차
4930 2015-07-10
7378 request 캐스팅 문제 [1]
타이판
4984 2015-07-08
7377 엑셀 다운로드시 내용이 보이지 않습니다. [1]
메론맛우유
5123 2015-07-06
Selected CLOB 데이터 저장 관련 질문 [6]
황기석
5998 2015-07-02
7375 potential.dll 관련 오류입니다. 파일 [1]
리오넬미실
4705 2015-07-01
7374 [문의] csv 파일 db에 업로드하는 기능 관련 문의 [1]
임주이
4378 2015-06-29
7373 가우스 서버 라이선스 재발급 요청 [1]
김태진
4391 2015-06-29
7372 산술 계산 문의 파일 [1]
박태호
4280 2015-06-29
7371 가우스 서버 4.0이 설치상의 OS와 다른 OS에 설치되었습니다. [1]
딩동링
6960 2015-06-25
7370 Gauce 라이센스 관련 문의 [1]
임선재
5921 2015-06-25
Tag List
XE Login