게시판을 이용해 주셔서 감사합니다.
다음양식에 맞게 입력해주세요.
* 고객시스템명 : 윈도우 XP
* GAUCE 버전 : 3.1
* WAS 종류(WebLogic 등등) : 제우스
* DB 종류 : 인포믹스
* 문의 유형(질문/요청/참조) : 질문
* 내용 : 가우스 toinbdata.dll 런타임 오류 발생에 대한 문의
현재 웹개발중에 toinbdata.dll 런타임 오류가 발생되어 적당한 해결을
찾지 못하고 있습니다. 프로그램의 문제는 아닌 것 같아서 이렇게 글을
올립니다. 전체 소스는 아니더라고 지금 작성중인 소스의 구성과 내용을
자세히 올려드립니다. 참고로 첨부파일은 toinbdata.dll 오류 발생시
보이는 익스플로어 대화창의 이미지 파일입니다. 3 개의 그림을 앞축한
파일입니다.
개발환경과 내용은 다음과 같습니다.
1) 사용환경 : MS-IE, 가우스, 티맥스, 제우스, 인포믹스
* 운영체제
Microsoft Windows-XP Professional sp2
* 웹브라우저 버전
Microsoft Internet Explore : 6.0.2900.2180.xpsp_sp2_gdr.050301-1519
* 가우스 Client OCX 버전
DataSet Vertion : 1.1.0.29
Transaction Version : 1.1.0.27
* 가우스 Service Servlet 버전
gauce version : 3.1
주 : 가우스는 package 를 com.gauce.* 은 사용하지 않고 아래 두 개의 package 만
사용합니다.
gauce.lib.*
gauce.util.*
* 티맥스 버전
webT Servlet : 1.8.1
Tmax Service : 3.1.4
* 인포믹스 버전
Informix version : 9.1
2) 가우스 런타임 오류 상황
현재 개발과 운영 환경은 3-Tire 구성으로 대략적으로 아래와 같습니다.
Client[PC: gauce OCX] <--> Web Server[gauce, webT] <--> Tmax[Service] <--> Informix
그리고 사용되는 언어는 HTML, Jscript 와 JSP, JAVA 로 작업중입니다.
위의 1) 환경에서 많은 웹 응용프로그램이 지금 운영중에 있습니다. 일반적으로 가우스
DataSet 을 사용한 조회나 가우스 Transaction 을 사용하여 data를 추가/수정/삭제
등은 별 이상없이 작동합니다.
이번에 추가되는 웹 화면중에 SQL 실행중 오류의 내용( 인포믹스 오류 메세지 )를
간단히 Client 웹 브라우저에 출력하기 위해 jsp 다음처럼 exception 발생시에
printResult 함수를 사용하여 해당 메세지를 Client ( Web Browser ) 에 넘겨 주고
있습니다. 소스 구성은 출력용 jsp 와 sql 실행 jsp 가 분리되어 작성되었습니다.
< 소스 구성 >
----------------------------------------
view.jsp : 출력용 소스
test.jsp : sql 실행 소스
----------------------------------------
< test.jsp >
--------------------------------------------------------------------------
<%@ page import="gauce.lib.*"%>
<%@ page import="gauce.util.*"%>
<%
try
{
:
dataBuf = new gauceControlObj(request, out, gauceDefine.TB_WORK_NORMAL);
dataSet = dataBuf.createDataSet();
:
} catch(Exception e) {
:
dataBuf.printResult("AUJF31111100R","ERROR", errMsg);
:
} finally {
:
}
--------------------------------------------------------------------------
test.jsp 에서와 같이 별다른 내용은 없고 exception 발생시 printResult 함수로
해당 내용을 웹 브라우저로 전송합니다.
그리고 화면 출력용 jsp 에서는 해당 DataSet의 OnLoadError 이벤트 핸들러에서
아래처럼 단순히 alert 로 printResult 보내온 오류 메세지를 출력합니다.
< view.jsp >
--------------------------------------------------------------------------
:
<object id="ds_test" classid="clsid:3267EA0D-B5D8-11D2-A4F9-00608CEBEE49">
<param name="DataID" value="test.jsp">
</object>
<script language="javascript" for=ds_test event=OnLoadError() >
var msg = ds_test.ErrorMsg;
alert( msg );
</script>
:
--------------------------------------------------------------------------
이렇게 gauce service의 gauceControlObj.printResult 함수를 사용할 경우 gauce
OCX 의 런타임 오류가 발생합니다. 이 오류가 발생되면 현재 실행중인 모든 웹
브라우저가 닫히게 됩니다.
실제 오류는 마이크로 소프트 익스플로어 대화창에 아래와 같은 내용을 보여주며
종료됩니다.
< 가우스 오류 발생시 보이는 웹브라우저의 대화창 내용>
---------------------------------------------------------------------------
* Internet Explore의 추가 기능에 문제가 발생하여 추가 기능을 닫아야
합니다.
* 문제 발생시 실행되고 있던 추가 기능 :
파일: toinbdata.dll
회사이름: (확인되지 않음) SHIFT Information ToinbData Component
설명: ToinbData Component
---------------------------------------------------------------------------
위 오류 내용의 그림은 앞축파일로 첨부하였습니다.
현재 오류 내용을 장황하게 작성한 이유는 서버의 SQL 오류내용을 웹에 출력하는 기능이
지금 진행중인 프로젝트에 반듯이 포함되야 하는 부분이기 때문입니다.
이런 오류발생이 저 뿐만 아니라 printResult 가 사용되는 다른 개발자의 PC 에서도
동이랗게 발생되며 작성된 화면을 조회하는 사용자 PC 에서도 발생되는 것으로 보아
저 개인 PC 환경문제는 아닌 것 같습니다.
jsp 컴파일에 어떤 오류도 없으며 실행에도 기능상의 오류는 없이 잘동작 합니다. 하지만
웹브라우저에서 printResult 으로 발생된 내용을 alert 으로 출력 이후에는 위와 같은
실시간 오류가 발생됩니다. 이 오류가 alert 으로 오류 내용을 출력한 직후 바로 발생되
는 것은 아니고 일정 시간이 지난후(대략 20초~1분) 발생됩니다.
실제 toinbdata.dll 이 문제인 경우 printResult 함수사용 외에 다른 방법이 있는지
설명해주시면 감사하겠습니다.
참고로 가우스 FAQ 에 등록된 writeException 을 사용한 사용자 메세지 처리는
패키지 gauce.lib, gauce.util 에서 사용할 수 없는 것 같습니다.
감사합니다.