'DBSessionCreateFail' 로 구글 검색을 하면 단 한건의 검색결과도 나오지 않는다!
그래서 작성했다.
티베로에서는 DB에 접근하기 위해 DO Factory를 사용한다.
그런데 가끔 DBSessionCreateFail 이란 오류가 뜨면서 DOF에서 오류가 난다.
에러 로그를 보면 DBDataObjectFactory 안 라인에서 오류가 난다고 나온다.
때문에 에러로그를 보고 원인을 파악하기 쉽지 않다.
오류 원인은 DOF를 new할때 argument로 DB jndi명을 넘겨주었기 때문이다.
(단, ProObject 버전에 따라 오류가 나지 않을 수 있다.)
오류 나는 이유는 @DataSource로 설정된 Dofactory 변수를 new 할때 아래와 같이 "ptask"를 넘겨줬기 때문이다.
"ptask"를 빼주면 오류는 발생하지 않는다.
----------------------------------------------------------------------------
원인은 알고보니 다른데 있었다.
proobject studio는 A서버에 dbio_config.xml을 참고하고 있다
내가 서비스를 call하는 서버는 B서버에 dbio_config.xml을 참고하고 있었는데
B 서버에는 ptask가 등록되어 있지 않았다.
실제로 @DataSource(name="ptask") 어노테이션은 런타임에서 영향이 없는 것 같다.
실제로 dbio_config에 jndi를 통해 연결을 요청하는 것은 new의 인풋 args의 값에 영향을 받는 것 같다.
ex) new DOFPTaskChannel("ptask")
'Back-End > ProObject' 카테고리의 다른 글
DOFactory ClassCastException (0) | 2020.09.05 |
---|---|
프로빌더툴에서 project clean 후 에러 제거 꿀팁 (0) | 2020.08.27 |
서비스 그룹을 추가했는데 add nature가 앱으로 처리되는 경우 (0) | 2020.07.31 |
add nature 할때 create local repository시 json 에러 (0) | 2020.03.06 |
OverlappingFileLockException (0) | 2020.02.25 |