1. WAS 버전 : WebSphere ND All
2. OS : All
3. Error 발생 시점 : WAS 위에서 별도로 thread 를 생성하여 JNDI operation 이나 user transaction 처리시 NMSV0310E exception
4. Error message :
[10. 12. 22 13:49:00:024 GMT+09:00] 00000026 javaURLContex E NMSV0310E: 서버 런타임에서 모든 J2EE 응용프로그램 컴포넌트와 조작 스레드가 연관될 수 없으므로 "Java:" 이름에 따른 JNDI 조작을 완료할 수 없습니다. "Java:" 이름을 사용한 JNDI 클라이언트가 서버 응용프로그램 요청의 스레드에서 실행되지 않는 경우 이 조건이 발생할 수 있습니다. J2EE 응용프로그램이 static 코드 블록이나 해당 J2EE 응용프로그램으로 작성된 스레드에서 "Java:" 이름에 따른 JNDI 조작이 실행되지 않는지 확인하십시오. 서버 응용프로그램 요청의 스레드에서 실행되지 않으므로 "Java:" 이름에 따른 JNDI 조작에서 이러한 코드가 지원되지 않습니다. 예외 스택 추적:
javax.naming.ConfigurationException [Root exception is javax.naming.NameNotFoundException: Name "comp/UserTransaction" not found in context "java:".]
at com.ibm.ws.naming.java.javaURLContextImpl.throwConfigurationExceptionWithDefaultJavaNS(javaURLContextImpl.java:411)
at com.ibm.ws.naming.java.javaURLContextImpl.lookup(javaURLContextImpl.java:388)
at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:204)
at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:144)
at javax.naming.InitialContext.lookup(InitialContext.java:363)
at com.ds.eps.core.DSEpsEventHandler.execute(DSEpsEventHandler.java:48)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: javax.naming.NameNotFoundException: Name "comp/UserTransaction" not found in context "java:".
at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1095)
at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:991)
at com.ibm.ws.naming.urlbase.UrlContextImpl.lookup(UrlContextImpl.java:1263)
at com.ibm.ws.naming.java.javaURLContextImpl.lookup(javaURLContextImpl.java:384)
... 6 more
5. 예상 이유 :
WAS 에서 제공하고 시작된 Thread 가 아닌 별도로 Thread 를 만들경우 JNDI operation 이나 user transaction 처리를 할 수 없음
6. 조치 방안 :
다른 방안을 모색 필요 (예: Asynchronous beans 등을 활용)
제한에 대해서 명시된 Sun 의 공식 문서
http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/transactions/transactions6.html
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.messages.doc/com.ibm.ws.naming.util.WsnMessages.html?resultof=%22%4e%4d%53%56%30%33%31%30%45%22%20%22%6e%6d%73%76%30%33%31%30%65%22%20
NMSV0310E:
A JNDI operation on a "java:" name cannot be completed because the
server runtime is not able to associate the operation''s thread with any
J2EE application component. This condition can occur when the JNDI
client using the "java:" name is not executed on the thread of a server
application request. Make sure that a J2EE application does not execute
JNDI operations on "java:" names within static code blocks or in threads
created by that J2EE application. Such code does not necessarily run on
the thread of a server application request and therefore is not
supported by JNDI operations on "java:" names. Exception stack trace:
{0}
Explanation A JNDI operation on a "java:" name must be performed on the thread of a server application request
Action Make sure that a J2EE application does not execute JNDI operations on "java:" names within static code blocks or in threads created by that J2EE application. Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on "java:" names.
'IBM - old > WAS 문제&해결' 카테고리의 다른 글
기존 어플리케이션을 WAS v7.0 으로 마이그레이션 했을때 fileServingEnabled 같은 속성이 적용안됨 (0) | 2016.05.09 |
---|---|
Node 에 대한 동기화가 깨지면서 nodeagent 로그상에 ADMS0012E 로깅 (0) | 2016.05.09 |
WSWS3052E: Error: Bad envelope namespace (0) | 2016.05.09 |
한번도 로딩되지 않았던, method 가 추가된 class 를 hot deploy 이후 Exception 발생 (0) | 2016.05.09 |
공인된 CA 에서 인증받은 인증서를 쓰는 사이트 접속시 CWPKI0022E: SSL 핸드쉐이크 장애 (0) | 2016.05.09 |
댓글