현재 상황을 말씀드릴게요
1. 로컬
OS : 윈도우7
WAS : 톰캣6.0
JDK : 1.5
2.WAS 서버
OS : 리눅스 레드햇Enterprise6
WAS : 톰캣6.0
JDK : 1.5
3.DB : unisql6.3
로컬과 WAS서버 에서 unisqljdbc205.jar jdbc driver 를 사용했습니다.
그리고 2대는 동일한 네트웍상에 있습니다. 그렇니까 속도차이나 이런건 차이가 없겠죠???
DB 는 다른곳에 있습니다.
1.2번과 3번에 방화벽은 없습니다.
1.로컬에서는 잘 실행됐던게 2.WAS서버 로 옮겨서 실행을 하니 아래 같은 에러가 납니다.
java.sql.SQLException: The size of data received from server is different from the expected
이걸 검색해 보니
해결 방법:
1. 이와 같은 문제는 쉽게 해결점을 찾아내기 쉽지 않습니다. 네트웍 중간에 있는 방화벽, IDS에서 문제를 유발할 수 있습니다. 이 부분에서 socket을 강제 종료시키는지 확인할 필요가 있습니다.
2. UniCAS의 cas 프로세스가 cuserid 시스템 함수를 호출하고 있는데 이때 사용하는 Write Device를 /dev/null로 전환시켜주면 문제가 발생하지 않습니다.
기존 uc 명령어를 uc.d로 바꾸고 uc는 다음과 같은 쉘로 만들어 놓는 것이 방법이 될 수 있습니다. (~/unicas/bin 경로에서)
uc shell
#!/bin/sh
uc.d $* < /dev/null > /dev/null 2>&1
이렇게 검색이 되더라구요 1번에서 막혔다면 로컬이나 was나 막혀야 하지 않나요?
2번도 마찬가지인거 같긴 한대 자세하게 설명을좀 해주세요. 이게 DB쪽 서버를 수정하라는 애기신지
몇칠동안 미치겠습니다. 차이라고는 리눅스냐 윈도우냐 밖에 없는거 같은대
혹시 약간이라도 집히는게 있으시면 알려주세요...
꼭좀 부탁드립니다. |