• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 955
2007.03.31 (01:10:29)
트랜잭션 수행시에는 GauceOutputStream을 전혀 사용하지 않습니다.
SELECT 수행시에만 GauceOutputStream을 사용하고 있습니다.
SELECT 수행시에는
GauceOutputStream을 열고 DB에서 읽어온 데이터를 쓰고 GauceOutputStream을 close()합니다.


이것 저것 테스트하다가 하나의 현상을 발견했습니다.
일단 무조건 GauceOutputStream을 HttpGauceResponse에서 얻어옵니다.
그리고 커맨드를 수행 시킵니다.
GauceOutputStream을 닫습니다.
위의 루틴을 거치니까 정상적으로 작동하는 군요
에러가 발생했을 경우 addException() 한 내용이 HTML 페이지에서 잘 나오고
에러가 없을 경우에 이전까지 발생하던 에러메시지가 나오지 않습니다.


<예제코드>
HttpGauceResponse gres = (HttpGauceResponse)request;
GauceOutputStream gos = gres.getGauceOutputStream();  // <-- 왜 이 놈을 꼭 실행시켜 주어야하나요?
try {
    job.execute();
} catch(Exception ex) {
    gres.addException(new GauceException(...));
} finally {
    gos.close();
}


이 상황에서 궁금한  점은
1. 왜 꼭 addException()을 호출하기 전에 HttpGauceResponse에서 getGauceOutputStream()을 읽어와야
    정상적으로 작동하는지 ...

2. getGauceOutputStream()과 gres.addException()과의 관계가 궁금합니다.
    gres.addException()을 호출하기 전에 GauceOutputStream이 반드시 열려 있어야하는 것인지 ...


답변을 부탁드립니다. ~~~~





>안녕하세요?
>
>소스를 검토해 보니
>
>GauceOutputStream gos = null;
>
>위와 같이 GauceOutputStream을 사용하셨는데
>
>트랜젝션 완료후에
>
>gos.close();
>
>해주셔야 화면에서 오류로 떨어지지 않습니다.
>
>그럼 수고하세요.
>
>>>게시판을 이용해 주셔서 감사합니다.
>>>다음양식에 맞게 입력해주세요.
>>>
>>>* 고객시스템명 :
>>>* GAUCE 버전 : 4.0(JAVA)
>>>* WAS 종류(WebLogic 등등) : JEUS5.0 Fix13
>>>* DB 종류 : Oracle 9i
>>>* 문의 유형(질문/요청/참조) : 질문
>>>* 내용 :
>>>
>>>구조는 대충 이렇습니다.
>>>ActionServlet(입력받은 Action을 검증하고 분기시킬 조건 검사)
>>>Request의 getMethod()가 GET일 경우에는 SELECT 루틴을 태우고
>>>Request의 getMethod()가 POST일 경우에는 예제 샘플에 있는 fireTxEvent()내용을 참조하여
>>>Command(수행할 JOB)을 생성합니다.
>>>
>>>    --> CommanderFactory(UserTransaction을 생성하여 Commander에게 셋팅하여 리턴)
>>>
>>>        --> Commander(UserTransaction 객체를 가지고 있으며 실제 Job을 실행시킨다.)
>>>              작업개수에 따라서 루핑을 돌면서 Job을 실행한다. (Command 패턴으로 실행)
>>>              실제 UserTransaction을 commit / rollback 하는 역할을 담당한다.
>>>              등록된 모든 Job을 수행하다가 에러가 생기면 rollback, 정상완료이면 commit
>>>
>>>            --> AbstractDAO(모든 DAO의 최상위 클래스로 기본기능을 가지고 있다.)
>>>                  AbstractDAO는 하나의 Connection 인스턴스를 가지고 있으며
>>>                  SubClass에서 getConnection() 요청시에 Connection을 리턴시켜준다.
>>>
>>>                --> DAOs(각각의 단위업무들. AbstractDAO를 상속받아서 추가 메소드 구현)
>>>                      Connection이 필요할 경우 AbstractDAO에게 Connection을 요청하여 사용
>>>                      
>>>대충 위와 같은 구조인데 트랜잭션이 정상적으로 모두 수행되고 난 다음
>>>에러가 없음에도 불구하고 HTML 페이지에는 에러가 있는 것으로 계속 메시지가 뜹니다.
>>>트랜잭션 수행후 특별히 해 주어야할 일이 없는것 같은데
>>>왜 그런것일까요?
>>>
>>>첨부파일
>>>1. 입력페이지
>>>2. DAO(실제 Transaction을 수행하는 클래스들)
>>>
>>
>
번호 제목 닉네임 조회 등록일
7449 호환성 보기 설정 이후에도 메뉴 깨짐 현상
kiarakim
8816 2017-02-15
7448 Shift DEMO 사이트 에서 IE11 다운됨
정성호
9042 2017-02-10
7447 엑셀 업로드 속도 문의
jokerrain
9071 2016-12-15
7446 차트 질문 파일
신현철
8997 2016-10-04
7445 java.io.IOException/java.lang.NullPointerException 발생
윤재국
9813 2016-07-13
7444 호환성 보기
kiarakim
8603 2016-07-11
7443 가우스 그리드에 문자입력시 한글/영문 우선순위 변경
hthink
8572 2016-04-21
7442 레포트 DFooter영역 이미지 태그
FKSS
9140 2016-04-20
7441 좌/우측으로 데이터 이동
헐랭이
7725 2016-04-15
7440 가우스 리포트를 PDF로 저장 가능한가요?
안순주
9969 2016-04-12
7439 중간소계 필드 제외 문의
김은영2
7623 2016-04-08
7438 가우스 그리드 범위지정 선택 가능여부 문의 [1]
hthink
9849 2016-03-29
7437 그리드에 이미지표현 파일 [1]
홍혜련
8937 2016-03-23
7436 Internet Explorer의 작동이 중지되었습니다. 파일 [1]
김태성2
8620 2016-03-18
7435 특정 index (row) 삭제 [1]
c1138
8884 2016-03-17
7434 was교체시 업그레이드 재설치 문의 [1]
박서영
7768 2016-03-15
7433 파일 업로드 문의(핸들이 잘못 되었습니다)
임종훈
8692 2016-03-15
7432 개발서버 라이센스 갱신 문의 [1]
정민75
9810 2016-03-07
7431 문의합니다 파일 [1]
c1138
9121 2016-03-07
7430 EnterpriseMode 적용이 되지 않습니다. 파일 [1]
동긔나긔
10293 2016-03-03
Tag List
XE Login