본문 바로가기
미분류

[LENA] LENA Valve와 비동기 처리

애리얼·2026년 8월 21일·조회 4

LENA는 주요 사용 패턴인 AJP 프로토콜과 동기 처리 환경에 최적화되어 있고, LENA v 1.3.4.1까지는 기본적으로 LENA의 Valve는 asyncSupported="false"로 적용되어 있었다고 합니다. (1.3.4.2 버전부터는 default값이 true로 변경)

1.3.4.1 이하 버전의 LENA 환경에서 비동기 처리를 사용하려면, LENA의 진단 및 트레이싱 기능을 강화하기 위해 추가되어 있는 사용자 정의 Valve(DiagnosticsPreActionValve, TraceValve) 설정에 asyncSupported="true"옵션을 추가해야 합니다.

  • DiagnosticsPreActionValve: 장애 진단 및 대응(요청 리다이렉션 등)을 처리하는 Valve

  • TraceValve : 세션 및 네트워크 추적 기능을 처리하는 Valve

기본값으로 설정되어 있는 환경에서 비동기 처리 요구 시, 아래와 같은 오류가 발생할 수 있습니다.

에러 문구 예시)

Async support must be enabled on a servlet and for all filters involved in async request processing.
혹은
A filter or servlet of the current chain does not support asynchronous operations

동기 요청 환경에서는 asyncSupported="true" 설정이 동작에 영향을 미치지 않습니다. 

비동기 처리를 위한 설정 방법

비동기 요청을 사용하는 애플리케이션의 경우, 해당 애플리케이션이 배포되어 있는 LENA WAS 인스턴스의 conf 디렉토리 하위에 있는 server.xml 또는 context.xml에 asyncSupported="true"를 명시해야 합니다.

아래의 세부 설정 방법을 참고하여 해당 옵션 추가를 통해 Async support를 활성화합니다.

1. server.xml 설정

  • 기존 설정:

    <Valve className="argo.server.valves.DiagnosticsPreActionValve" enablePreAction="true"/>
  • 변경 예시:

    <Valve className="argo.server.valves.DiagnosticsPreActionValve" enablePreAction="true" asyncSupported="true"/>

2. context.xml 설정

  • 기존 설정:

    <Valve className="argo.server.valves.TraceValve" directory="${log.home}" prefix="trace_${was_cname}_" suffix=".log"/>

    변경 예시:

    <Valve className="argo.server.valves.TraceValve" directory="${log.home}" prefix="trace_${was_cname}_" suffix=".log" asyncSupported="true"/>
  • Session Clustering 사용 시 Zodiac Valve 추가 처리 필요

    • 기존 설정: 

      <Valve className="zodiac.cluster.ZodiacValve"/>
    • 변경 예시: 

      <Valve className="zodiac.cluster.ZodiacValve" asyncSupported="true"/>

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.