나는 이것에 대해 조사를 해왔다. Weblogic *이 DefaultWM에서 구성 요소의 WorkManager로 EJB_WM *이 정의 되었다면 전환 할 것이라고 대답했다.
실행 스레드는 동일하게 유지되므로 요청이 들어 오면 동일한 스레드가 서블릿을 실행 한 다음 EJB를 실행합니다. weblogic-ejb-jar.xml
에, 나는 로그를 보여주는를 볼 수 있습니다 만
<work-manager>
<name>WorkManagerA</name>
<max-threads-constraint>
<name>MyMaxThreadCount</name>
<count>1</count>
</max-threads-constraint>
</work-manager>
은 EJB이 제약 조건을 정의한 반면, 내 샘플 응용 프로그램에서
, 나는, index.jsp가 50 동시 호출을 발사 해요 이제 index.jsp를
INDEX.JSP - Current ThreadName Is: [ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'
INDEX.JSP - Current ThreadName Is: [ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'
내에서 서로 다른 쓰레드 6, 8이 병렬 전화 좀 더 로그 문
Calling EJB from index.jsp 1317985368088[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'
Start EJB 1317985368088[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'
end EJB 1317985368088[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'
Calling EJB from index.jsp 1317985368088[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'
Start EJB 1317985368104[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'
end EJB 1317985368104[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'
타임 스탬프 (System.currentTimeMillis())가 표시되면 index.jsp가 Thread 6 및 8에서 1317985368088과 동시에 호출되지만 System.out.println 문은 "Start EJB"및 "End EJB" 스레드 6 및 8에 대해 다른 타임 스탬프를가집니다. 이는 EJB 내에서 발생합니다.
이것은 EJB WorkManager가 병렬 스레드 수를 한 번에 하나씩 제한하는 작업을 수행하고 있음을 보여줍니다.