관계형 데이터베이스에 트랜잭션 로그 저장

Liberty 트랜잭션 로그를 운영 체제 파일로서 저장하지 않고 관계형 데이터베이스에 저장하도록 선택할 수 있습니다. 이 기능은 공유 파일 시스템을 사용하지 않고도 고가용성(HA) 지원을 제공합니다. 프로덕션 사용을 위해 관계형 데이터베이스에서 트랜잭션 서비스 로그 저장이 지원됩니다.

이 태스크 정보

WebSphere® Application Server 트랜잭션 서비스는 두 개 이상의 자원을 포함하거나 여러 서버에 분산된 모든 글로벌 트랜잭션에 대한 정보를 트랜잭션 로그에 씁니다. 이들 트랜잭션은 애플리케이션에 의해 또는 애플리케이션이 배치되는 컨테이너에 의해 시작 또는 중지됩니다. 트랜잭션 서비스는 트랜잭션의 무결성을 보장하기 위해 트랜잭션 로그를 유지보수합니다. 활성 트랜잭션이 있는 서버가 실패 후에 다시 시작하는 경우 트랜잭션 서비스가 로그를 사용하여 인다우트 트랜잭션을 재생할 수 있도록 정보가 분배 트랜잭션의 준비 단계에 트랜잭션 로그에 기록됩니다. 이것은 전체 시스템이 일관성 있는 상태로 되돌아올 수 있게 합니다.

기본 구성은 트랜잭션 로그를 운영 체제 파일로 저장하는 것입니다. 이 HA 트랜잭션 지원을 사용하려면 공유 파일 시스템을 사용하여 NFSv4 마운트 네트워크 접속 스토리지(NAS) 또는 SAN(Storage Area Network과 같은 트랜잭션 로그를 호스트해야 합니다.

그러나 관계형 데이터베이스 관리 시스템(RDBMS)에 트랜잭션 로그를 저장하도록 선택할 수 있습니다. 이 구성 옵션은 HA 환경에서 작업하는 고객을 대상으로 합니다. 이 기능을 사용하면 특히 HA 데이터베이스 기술에 투자한 고객이 공유 파일 시스템 사용의 대안으로 HA 데이터베이스를 트랜잭션 로그를 위한 공유 저장소로 사용할 수 있습니다. Liberty에서 지원되는 모든 데이터베이스 유형을 사용할 수 있습니다.

다른 애플리케이션 서버의 로그를 복구하도록 애플리케이션 서버를 구성할 수 있습니다. 이 프로시저를 사용하는 경우 원래 소유 애플리케이션 서버는 실행 중이 아니어야 합니다. 이 프로시저는 트랜잭션 서비스 로그를 사용할 수 있지만 원래 소유 애플리케이션 서버를 시작할 수 없는 경우 미해결 트랜잭션 복구를 수행하기 위해 일반적으로 사용됩니다.

Liberty에 대한 복구의 프린시펄은 WebSphere Application Server Traditional에 대한 것과 동일합니다. 복구에 대한 자세한 정보는 다음 자원을 참조하십시오.

알아두기: 동일한 테이블을 사용하도록 애플리케이션 서버를 구성하지 마십시오. 그러면 데이터 무결성 문제 및 로그 손상이 발생할 수 있습니다. 접미부가 지정된 경우, 접미부는 테이블과 색인 둘 다의 이름에 직접 추가됩니다.

프로시저

RDBMS에 저장할 Liberty 트랜잭션 로그를 구성하려면 다음 단계를 완료하십시오.

  1. Liberty server.xml 파일에서 전용 비트랜잭션 데이터 소스를 구성하십시오.
    server.xml 파일에서 추출된 다음 예는 DB2® 데이터베이스에 트랜잭션 로그를 저장하도록 Liberty를 구성하는 방법을 표시합니다.
    <transaction> 
      <dataSource transactional="false">
        <jdbcDriver libraryRef="DB2JCC4LIB"/>
        <properties.db2.jcc currentSchema="CBIVP"
          databaseName="SAMPLE" driverType="4"
          portNumber="50000" serverName="localhost" 
          user="db2admin" password="{xor}Oz1tPjsyNjE=" />
      </dataSource>
    </transaction>
    
    <library id="DB2JCC4LIB">
      <fileset dir="C:/SQLLIB/java" includes="db2jcc4.jar db2jcc_license_cu.jar"/>
    </library>
  2. 옵션: 데이터베이스 테이블을 작성하십시오.

    Liberty는 서버가 처음 시작될 때 필수 데이터베이스 테이블을 작성하려고 시도합니다. 예를 들어, 충분하지 않은 권한으로 인해 이러한 데이터베이스 작성이 가능하지 않을 때는 서버가 시작하지 못합니다. 이런 상황에서는 두 개의 필수 데이터베이스 테이블을 수동으로 작성해야 합니다.

    애플리케이션 서버에 대해 RDBMS에 트랜잭션 로그를 저장하는 경우, 각 서버에는 자신의 테이블이 있어야 합니다. WebSphere Application Server Traditional 구성의 경우 사용자 정의 URL에서 각 애플리케이션 서버에 고유한 테이블 접미부를 지정하십시오. WebSphere Application Server: 고가용성을 위해 관계형 데이터베이스에 트랜잭션 및 보상 로그 저장은 일반 제품에 적용되지만 접미부 및 테이블 이름의 작성을 설명합니다. Liberty에서 접미부는 트랜잭션 요소 transactionLogDBTableSuffix 속성을 사용하여 지정됩니다. transactionLogDBTableSuffix에 대한 정보는 트랜잭션 관리자(트랜잭션)를 참조하십시오.

    다음 DDL 구조는 DB2에 테이블을 작성하는 방법을 보여줍니다.
    CREATE TABLE WAS_TRAN_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID BIGINT,
      RUSECTION_ID BIGINT,
      RUSECTION_DATA_INDEX SMALLINT,
      DATA BLOB)
    CREATE TABLE WAS_PARTNER_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID BIGINT,
      RUSECTION_ID BIGINT,
      RUSECTION_DATA_INDEX SMALLINT,
      DATA BLOB)
    다음 DDL 구조는 이전 DB2 버전에서 테이블을 작성하는 방법을 보여줍니다.
    CREATE TABLE WAS_TRAN_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID BIGINT,
      RUSECTION_ID BIGINT,
      RUSECTION_DATA_INDEX SMALLINT,
      DATA LONG VARCHAR FOR BIT DATA) 
    CREATE TABLE WAS_PARTNER_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID BIGINT,
      RUSECTION_ID BIGINT,
      RUSECTION_DATA_INDEX SMALLINT,
      DATA LONG VARCHAR FOR BIT DATA) 
    다음 DDL 구조는 이러한 테이블을 위한 색인 작성 방법을 보여줍니다.
    CREATE INDEX IXWSTRAN_LOG ON WAS_TRAN_LOG (RU_ID ASC, SERVICE_ID ASC, SERVER_NAME ASC)
    CREATE INDEX IXWSPARTNER_LOG ON WAS_PARTNER_LOG (RU_ID ASC, SERVICE_ID ASC, SERVER_NAME ASC)
    다음 DDL 구조는 Oracle에서 데이터베이스 테이블 작성 방법을 보여줍니다.
    CREATE TABLE WAS_TRAN_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID NUMBER(19),
      RUSECTION_ID NUMBER(19),
      RUSECTION_DATA_INDEX SMALLINT,
      DATA BLOB)
    CREATE TABLE WAS_PARTNER_LOG(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID NUMBER(19),
      RUSECTION_ID NUMBER(19),
      RUSECTION_DATA_INDEX SMALLINT,
      DATA BLOB)

주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_store_logs_in_rdb.html