비동기 Bean

비동기적 bean은 비동기적 bean 작성자의 Java EE 컨텍스트를 사용하여 Java EE(Enterprise Edition) 애플리케이션인 Java 플랫폼에 의해 비동기적으로 실행할 수 있는 Java™ 오브젝트 또는 엔터프라이즈 Bean입니다.

제거된 기능 제거된 기능: 비동기 Bean, CommonJ 타이머 및 WorkManager는 더 이상 사용되지 않는 비동기 스케줄링 기능입니다. Concurrency Utilities for Java EE는 이와 같이 더 이상 사용되지 않는 스케줄링 기능을 대체합니다. 버전 9는 계속해서 비동기 Bean, CommonJ 타이머 및 WorkManager를 지원합니다. 그러나 버전 9 문서는 Concurrency Utilities for Java EE에 중점을 두고 있습니다. 버전 9 문서에서 찾고 있는 비동기 Bean에 관한 정보를 찾지 못하는 경우 버전 8.5.5 문서를 참조하십시오. depfeat

비동기 Bean은 Java EE 프로그램이 조작을 병렬 태스크로 분해할 수 있게 하여 성능을 개선할 수 있습니다. 비동 기 Bean은 상태를 유지하는, 활성 Java EE 애플리케이션의 생성을 지원합니다. 이러한 애플리케이션은 애플리케이션 스레딩, 서버 애플리케이션 내 활성 에이전트 또는 분배된 모니터링 기능을 요구하는 애플리케이션의 애플리케이션 영역에 대한 세그먼트를 지정합니다.

비동기 Bean은 작성자 Java EE 컴포넌트의 Java EE 보안 컨텍스트를 사용하여 실행 가능합니다. 이 Bean은 다음과 같은 다른 Java EE 사본으로도 실행 가능합니다.
  • 국제화 컨텍스트
  • Java EE 1.4 애플리케이션에 대해 지원되지 않고 Java EE 1.3 애플리케이션에서 더 이상 사용되지 않는 애플리케이션 프로파일
  • 작업 영역

비동기 Bean 인터페이스

네 개 유형의 비동기 Bean이 있습니다.
작업 오브젝트
동일한 목표를 달성해야 하는 두 개의 작업 인터페이스가 있습니다. 레거시 비동기 Bean 작업 인터페이스는 com.ibm.websphere.asynchbeans.Work이고 CommonJ work 인터페이스는 commonj.work.Work입니다. 작업 오브젝트는 작업 관리자 startWork 또는 schedule 메소드를 사용하여 해당 호출자와 병렬로 실행됩니다(레거시 비동기 Bean에 대해 startWork 및 CommonJ에 대해 schedule). 코드 블럭을 비동기로 실행하는 애플리케이션 구현 작업 오브젝트.
타이머 리스너
이 인터페이스는 commonj\timers\TimerListener 인터페이스를 구현하는 오브젝트입니다. 타이머 리스너는 고속 임시 타이머가 만기될 때 호출됩니다.
알람 리스너
알람 리스너는 com.ibm.websphere.asynchbeans.AlarmListener 인터페이스를 구현하는 오브젝트입니다. 알람 리스너는 고속 임시 알람이 만기될 때 호출됩니다.
이벤트 리스너
이벤트 리스너는 모든 인터페이스를 구현할 수 있습니다. 이벤트 리스너는 단일 JVM(Java Virtual Machine) 내에서 비동기 이벤트에 대한 경량의 비동기 알람 메커니즘입니다. 이벤트 리스너는 일반적으로 단일 애플리케이션 내에서 Java EE 컴포넌트를 사용하여 다양한 비동기 이벤트에 대해 서로 알립니다.

인터페이스 지원

작업 관리자
작업 관리자는 관리자가 Java EE 애플리케이션에 대해 작성하는 스레드 풀입니다. 관리자는 스레드 풀 특성 및 비동기 Bean이 상속하는 Java EE 컨텍스트를 판별하는 정책을 지정합니다.
CommonJ 작업 관리자
CommonJ 작업 관리자는 작업 관리자와 유사합니다. 둘 사이의 차이는 CommonJ 작업 관리자가 비동기 Bean 작업 관리자 메소드의 서브세트를 포함한다는 점입니다. CommonJ 작업 관리자가 Java EE 1.4 환경에서 작동하지만 작업 관리자의 JNDI 검색은 WorkManager에 대한 새 인스턴스를 리턴하지 않습니다. 범위 내의 모든 작업 관리자 JNDI 검색은 동일한 인스턴스를 사용합니다.
타이머 관리자
타이머 관리자는 이후의 타이머 알림을 스케줄하고 타이머 알림을 수신하기 위해 서블릿, EJB 애플리케이션, JCA 자원 어댑터를 비롯한 Java EE 애플리케이션을 사용하는 commonj.timers.TimerManager 인터페이스를 구현합니다. 애플리케이션 서버 스펙의 타이머 관리자는 관리 환경에는 적합하지 않은 J2SE java.util.Timer 클래스 사용을 대신하여 지원되는 애플리케이션 서버를 제공합니다.
이벤트 소스
이벤트 소스는 com.ibm.websphere.asynchbeans.EventSource 인터페이스를 구현합니다. 이벤트 소스는 단일 JVM 내에서 일반적인 type-safe 비동기 알림 서버를 지원하는 시스템 제공 오브젝트입니다. 이 이벤트 소스는 모든 인터페이스가 등록되도록 구현하는 이벤트 리스너 오브젝트를 사용합니다.
이벤트 소스 이벤트
모든 이벤트 소스는 변경된 리스너 수와 같이 자체 이벤트를 생성할 수 있습니다. 애플리케이션은 클래스 com.ibm.websphere.asynchbeans.EventSourceEvents를 구현하는 이벤트 리스너 오브젝트를 등록할 수 있습니다. 이 조치는 애플리케이션이 추가 또는 제거 중인 리스너 또는 예기치 못한 예외를 처리하는 리스너와 같은 이벤트를 예외 처리할 수 있습니다.

알람이나 서브시스템 모니터와 같은 추가 인터페이스도 비동기 범위 개발 주제에서 소개되며 일부 비동기 Bean의 고급 애플리케이션에 대해 설명합니다.

트랜잭션

모든 비동기 Bean 메소드는 자체 트랜잭션으로 호출되며 일반적인 엔터프라이즈 Bean의 컨테이너 관리 트랜잭션과 유사합니다. 엔터프라이즈 JavaBeans(EJB) 메소드가 TX_NOT_SUPPORTED로 호출되는 상황과 매우 유사합니다. 런타임은 메소드 호출 전에 로컬 트랜잭션 포함을 시작합니다. 비동기 Bean 메소드는 이 트랜잭션이 Java EE 컴포넌트를 호출할 수 있는 경우 자체 글로벌 트랜잭션을 원하는 대로 시작할 수 있습니다. 예를 들어, 엔터프라이즈 Bean이 컴포넌트를 작성하면 비동기 Bean을 작성하는 메소드는 TX_BEAN_MANAGED여야 합니다.

예를 들어, 비동기 Bean에서 엔티티 Bean을 호출하는 경우 현재 스레드에서 글로벌 트랜잭션 컨텍스트가 사용 가능해야 합니다. 비동기 Bean 오브젝트가 로컬 트랜잭션 컨텍스트를 시작하기 때문에 TX_REQUIRES 또는 동등하게 표시된 메소드를 포함하는 세션 Bean에서 모든 엔티티 Bean 로직을 캡슐화할 수 있습니다. 이 프로세스는 하나 이상의 엔티티 Bean 메소드에 액세스 가능한 글로벌 트랜잭션 컨텍스트를 설정합니다.

비동기 Bean 메소드가 예외 처리하면 모든 로컬 트랜잭션은 롤백됩니다. 메소드가 정상적으로 리턴되면 모든 불완전 로컬 트랜잭션은 Bean에 대해 구성된 해결되지 않은 조치 정책에 따라 완료됩니다. EJB 메소드는 해당 배치 디스크립터를 사용하여 이 정책을 구성할 수 있습니다. 비동기 Bean 메소드가 자체 글로벌 트랜잭션을 시작하고 이 글로벌 트랜잭션을 커미트하지 않으면 트랜잭션은 메소드가 리턴될 때 롤백됩니다.

Java EE 컴포넌트 메타데이터에 액세스

비동기 Bean이 Java EE 컴포넌트인 경우(예: 세션 Bean) 자체 메타데이터는 메소드 호출 시 활성화됩니다. 비동기 Bean이 단순 Java 오브젝트인 경우 작성 컴포넌트의 Java EE 컴포넌트 메타데이터를 Bean에 사용할 수 있습니다. 해당 작성자처럼 비동기 Bean도 java:comp 네임스페이스를 검색할 수 있습니다. 이 검색을 사용하면 Bean은 다른 Java EE 컴포넌트이었던 것처럼 연결 팩토리 및 엔터프라이즈 Bean에 액세스할 수 있습니다. 작성 컴포넌트의 환경 특성도 비동기 Bean에 사용할 수 있습니다.

java:comp 네임스페이스는 작성 컴포넌트의 네임스페이스와 동일하며 동일한 제한사항이 적용됩니다. 예를 들어, 엔터프라이즈 Bean 또는 서블릿에 java:comp/env/ejb/MyEJB의 EJB 참조가 있는 경우 이 EJB 참조를 비동기 Bean에 사용할 수 있습니다. 또한, 모든 연결 팩토리가 작성 컴포넌트와 동일한 자원 공유 범위를 사용합니다.

연결 관리

비동기 Bean 메소드는 java:comp 자원 참조를 사용하여 작성 Java EE 컴포넌트가 확보한 연결을 사용할 수 있습니다. (자원 참조에 대한 자세한 정보는 참조 주제를 참조하십시오.) 그렇지만 Bean 메소드는 get, use 또는 close 패턴을 사용하여 해당 연결에 액세스합니다. 비동기 Bean의 메소드 호출 사이에는 연결 캐싱이 없습니다. 연결 팩토리 또는 데이터소스는 캐시 가능하지만 연결은 사용되고 닫히는 모든 메소드 호출에서 검색해야 합니다. 비동기 Bean 메소드가 글로벌 JNDI(Java Naming and Directory Interface) 이름을 사용하여 연결 팩토리를 검색하는 동이 다음과 같은 이유로 이는 권장되지 않습니다.

  • JNDI 이름은 애플리케이션에서 하드 코딩됩니다(예: 특성 또는 문자열 리터럴로).
  • 연결 팩토리는 공유 범위를 지정할 수 없기 때문에 공유되지 않습니다.

비동기 Bean 메소드에서의 연결에 액세스하는 올바른 및 올바르지 않은 방식 모두를 시현하는 코드 예는 예: 비동기 Bean 연결 관리 주제를 참조하십시오.

비동기 Bean의 지연된 시작

비동기 Bean은 Java EE 서비스 컨텍스트 정보 직렬화를 허용하여 지연 시작을 지원합니다. WorkManager 인터페이스의 WorkWithExecutionContext createWorkWithExecutionContext(Work r) 메소드는 WorkManager에서 사용 가능한 Java EE 서비스 컨텍스트 스냅샷을 작성합니다. 그러면 결과 WorkWithExecutionContext 오브젝트는 직렬화되어 데이터베이스나 파일로 저장됩니다. 이는 현재 보안 ID 또는 로케일과 같은 Java EE 서비스 컨텍스트를 저장하고 나중에 이를 다시 확대하여 이 컨텍스트 내에서 일부 작업을 실행해야 하는 경우에 유용합니다. WorkWithExecutionContext 오브젝트는 WorkManager 인터페이스에서 startWork() 및 doWork() 메소드를 사용하여 실행할 수 있습니다.

모든 WorkWithExecutionContext 오브젝트는 이를 직렬화한 동일한 애플리케이션으로 역직렬화해야 합니다. 모든 EJB 및 클래스는 포함된 오브젝트를 Java에 대해 성공적으로 확대하기 위해 있어야 합니다.

지연 시작 및 보안

비동기 Bean 보안 서비스 컨텍스트는 CSIv2(Common Secure Interoperability Version 2) ID 어설션이 사용되어야 할 수도 있습니다. ID 어설션은 WorkWithExecutionContext 오브젝트가 역직렬화되고 JAAS(Java Authentication and Authorization Service) 주제(Subject) ID 신임 정보 지정에 대해 실행되는 경우에 필요합니다. WorkWithExecutionContext 오브젝트 사용 시 ID 어설션을 사용해야 하는 경우 다음 주제를 검토하여 자세히 알아보십시오.
  • CSIV2(Common Secure Interoperability Version 2) 구성 및 보안 인증 서비스 인증 프로토콜
  • ID 어설션

다른 제품 버전에서 WorkWithExecutionContext 오브젝트에 상호 운용하는 경우에도 문제가 있습니다. 비동기 Bean과 상호 운용 주제를 참조하십시오.

JPA 관련 제한사항

JPA 확장 지속성 컨텍스트에서 비동기 Bean을 사용하는 것은 지원되지 않습니다.

JPA 확장 지속성 컨텍스트는 비동기 Bean의 스케줄 링 및 멀티스레딩 기능과 일관성이 없으며 비동기 Bean 스레드에서 액세스할 수 없습니다.

유사하게 EntityManager 인스턴스가 스레드 안전용이 아니기 때문에 비동기 Bean은 매개변수로 javax.persistence.EntityManager를 사용하여 작성하면 안됩니다.


주제 유형을 표시하는 아이콘 개념 주제



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