ActiveX 클라이언트 프로그래밍, 스레드 팁

ActiveX to EJB(Enterprise JavaBeans) 브릿지는 자유 스레드 및 아파트 스레드 액세스 모두를 지원하며 ASP(Active Server Pages)와 같은 하이브리드 환경에서 작동하도록 FTM(Free Threaded Marshaler)을 구현합니다. 스레드가 ActiveX to EJB 브릿지를 통해 통신하면 ActiveX 프로세스에서 작성된 각 스레드는 Java™ 환경에서 미러링됩니다.

Java 오브젝트에 대한 모든 참조(JObjectProxy 또는 JClassProxy 오브젝트)가 ActiveX 스레드에서 로그되면, ActiveX to EJB 브릿지는 JVM(Java virtual machine) 코드에서 스레드를 분리합니다. 그러므로, 다중 스레드된 Windows 애플리케이션에서 액세스한 Java 코드가 스레드에서 안전하도록 주의해야 합니다. Visual Basic 코드 및 VBScript 애플리케이션은 모두 필수적으로 단일 스레드됩니다. 그러므로, Visual Basic 및 VBScript 애플리케이션은 액세스하는 Java 프로그램에서 스레드 문제가 없습니다. Active Server Pages 및 멀티스레드 C 및 C++ 프로그램에 문제가 있을 수 있습니다.

다음 시나리오를 고려하십시오.
  1. 멀티스레드 Windows Automation Container(ActiveX 프로세스)가 시작됩니다. 스레드 A에 존재합니다.
  2. ActiveX 프로세스는 ActiveX to EJB 브릿지를 초기화하며, JVM 코드를 시작합니다. JVM은 동일 스레드에 추가되며 내부적으로 스레드 1이라고 합니다.
  3. ActiveX 프로세스는 두 스레드, B와 C를 시작합니다.
  4. ActiveX 프로세스의 스레드 B는 ActiveX to EJB 브릿지를 사용하여 스레드 A에 작성되었던 오브젝트에 액세스합니다. JVM은 스레드 B에 추가되며 스레드 2라고 합니다.
  5. ActiveX 프로세스의 스레드 C는 JVM 코드에 통지하지 않으므로 JVM을 첨부하지 않아도 됩니다. JVM 코드는 ActiveX 스레드와 Java 스레드 사이에 일대일 관계가 없는 경우입니다.
  6. 스레드 B는 사용된 JObjectProxy 및 JClassProxy 오브젝트 모두를 릴리스합니다. Java 스레드 2가 분리됩니다.
  7. 스레드 B는 다시 ActiveX to EJB 브릿지를 사용하여 스레드 A에서 작성되었던 오브젝트에 액세스합니다. JVM 코드는 다시 스레드에 추가되며 이를 스레드 3이라고 합니다.
표 1. 스레드 시나리오.. 스레드 시나리오
ActiveX 프로세스 ActiveX 프로세스에서 JVM 액세스
스레드 A - 1에서 작성됨 스레드 1 - 2에 추가됨
스레드 B - 4에서 작성됨 스레드 2 - 4에 추가되고 6에 분리됨 스레드 3 - 7에 추가됨
스레드 C - 4에서 작성됨  

스레드 및 Active Server Pages

Microsoft Internet Information Server의 ASP(Active Server Pages)는 멀티스레드 환경입니다. XJB.JClassFactory 오브젝트 작성 시, 애플리케이션 콜렉션에 애플리케이션 글로벌 오브젝트로 저장할 수 있습니다. ASP 환경 내 모든 스레드는 이제 동일한 ActiveX to EJB 브릿지 오브젝트에 액세스할 수 있습니다. 기본적으로 Active Server Pages는 CPU당 ASP 프로세스마다 10 아파트 스레드를 작성합니다. ActiveX to EJB 브릿지 오브젝트가 초기화되면 10개의 스레드가 작성된 스레드만이 아닌 이 오브젝트를 호출할 수 있음을 의미합니다.

단일 아파트 동작을 시뮬레이션해야 하는 경우, Single-Apartment Threaded ActiveX DLL(Dynamic Link Library)을 Visual Basic 코드로 작성하고 ActiveX를 EJB 브릿지 오브젝트로 캡슐화합니다. 이 캡슐화는 JVM 오브젝트에 대한 모든 액세스가 동일 스레드에 있음을 보장합니다. <OBJECT> 태그를 사용하여 XJB.JClassFactory를 애플리케이션 오브젝트에 지정해야 하고 단일 스레드 동작을 웹 애플리케이션으로 도입하는 결과를 알아야 합니다.

Microsoft KnowlegeBase에는 다음을 포함한 ASP 및 스레드에 대한 여러 기사가 있습니다.
  • Q243543 INFO: STA 오브젝트를 세션이나 애플리케이션에 저장하지 않음
  • Q243544 INFO: Active Server Pages에서 컴포넌트 스레드 모델 요약
  • Q243548 INFO: ASP에서 VB 컴포넌트에 대한 디자인 가이드라인

주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rcli_xthread
파일 이름:rcli_xthread.html