[IBM i][AIX Solaris HP-UX Linux Windows]

고가용성을 위해 트랜잭션 및 보상 로그를 관계형 데이터베이스에 저장

선택적으로 WebSphere® Application Server 트랜잭션 및 보상 로그를 운영 체제 파일 대신 관계형 데이터베이스에 저장하도록 선택할 수 있습니다. 이 기능은 공유 파일 시스템을 사용할 필요가 없이 고가용성(HA) 지원을 제공합니다.

이 태스크 정보

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

WebSphere Application Server의 이전 릴리스에서 트랜잭션 로그는 운영 체제 파일로 저장되었습니다. WebSphere Application Server 버전 8.5.5 이상에서는 이 설정이 기본 구성을 유지합니다. 트랜잭션 로그를 관계형 데이터베이스에 저장하도록 선택할 수도 있습니다. 이 구성 옵션은 주로 고가용성(HA) 환경에 사용됩니다. 또한 WebSphere Application Server의 이전 릴리스에서는 HA 트랜잭션 지원에서 NFSv4 마운트 NAS(Network-Attached Storage) 또는 SAN(Storage Area Network) 등의 트랜잭션 로그를 호스팅하기 위해 공유 파일 시스템을 사용해야 했습니다. 이 새 기능을 사용하면 특히 HA 데이터베이스 기술에 투자한 경우 공유 파일 시스템 사용의 대안으로 HA 데이터베이스를 트랜잭션 로그의 공유 저장소로 사용할 수 있습니다.

참고: 관계형 데이터베이스에 트랜잭션 및 보상 로그를 저장하기 위한 현재 구현에서는 DB2® 및 Oracle에서 고가용성 기능을 지원합니다. 예를 들어, 실패가 발생할 경우 다른 데이터베이스 인스턴스에 다시 연결할 수 있게 하는 클라이언트 특정 기능(예: DB2 HADR 또는 Oracle RAC DataGuard)이 지원됩니다. 다른 벤더로부터의 관계형 데이터베이스의 고가용성 기능은 현재 지원되지 않습니다.

현재 구현에서는 코어 복구 로그 기능에 의해 예상치 않은 JDBC 예외가 발생하는 경우 트랜잭션 로깅이 사용 안함으로 설정되며 인플라이트 트랜잭션을 복구할 수 있도록 서버가 종료되어야 합니다. 서버가 다시 시작될 때까지 다시 연결을 시도하지 않으며 현재 구현에서 조건이 일시적인지 판별하려고 시도하지 않습니다.

WebSphere Application Server 버전 8.5.5 이상에서는 역시 HA 환경에서 작업 중인 고객을 목표로 하는 비슷한 기능을 사용하여 관계형 데이터베이스에 보상 복구 로그를 저장할 수 있습니다. WebSphere Application Server 보상 서비스를 사용하면 서로 다른 시스템에 있는 애플리케이션이 원자적 트랜잭션보다 느슨하게 결합된 활동을 조정할 수 있습니다. 이는 시스템이 실패한 후 보상을 완료하기 위해 필요한 정보를 자체 전용 복구 로그에 저장합니다.

문제점 방지 문제점 방지: SQL 복구 로그의 데이터 소스에는 다음과 같은 최대 풀 크기 값이 필요합니다.
(2 * 피어 복구되는 중인 잠재적인 서버의 수) + 2
이 최대 풀 크기를 사용하면 모든 관련 트랜잭션 로그를 닫는 데 충분한 데이터베이스에 대한 연결이 가능합니다. 최대 풀 크기가 이 값으로 설정되지 않으면 사용 가능한 연결이 충분하지 않으므로 오류 메시지 J2CA0045E가 표시될 수 있습니다. gotcha

프로시저

고가용성을 사용하려면 먼저 클러스터의 각 서버에 대해 TransactionLogDirectoryCompensationLogDirectory 속성을 설정하여 각 서버에 대한 보상 로그 위치 및 트랜잭션 로그 위치를 구성해야 합니다. 클러스터의 각 서버는 여러 서버가 관계형 데이터베이스 관리 시스템(RDBMS) 자원에 대해 다투지 않도록 구별된 tablesuffix 특성을 지정하여 고유 트랜잭션 로그 및 보상 로그 위치를 참조해야 합니다. 예를 들어, 다음 네 가지 멤버 서버를 가진 AppCluster라는 클러스터가 있는 경우:
  • AppClusterMember1
  • AppClusterMember2
  • AppClusterMember3
  • AppClusterMember4
AppCluster에 대해 다음과 같은 테이블 접미부를 정의할 수 있습니다.
  • App1(AppClusterMember1의 경우)
  • App2(AppClusterMember2의 경우)
  • App3(AppClusterMember3의 경우)
  • App4(AppClusterMember4의 경우)

다음 단계를 완료하십시오.

  1. 트랜잭션 및 보상 복구 로그 스토리지에 대한 비트랜잭션 데이터 소스를 다음과 같이 구성하십시오.
    1. 특정 RDBMS 구현을 위한 JDBC 제공자를 작성하십시오. 비XA의 구현 유형을 지정하십시오.
    2. JAAS J2C 인증 데이터 별명을 작성하십시오. 이 데이터 별명은 RDBMS에 연결하는 데 사용되는 보안 신임 정보를 정의합니다. RDBMS에서 정의되는 신임 정보에는 데이터베이스에서 테이블을 작성할 수 있는 충분한 권한이 있어야 합니다.
    3. a단계에서 작성되는 JDBC 제공자를 사용하여 데이터 소스를 작성하십시오. 해당 컴포넌트 관리 인증 별명은 b단계에서 작성된 JAAS 별명으로 설정되어야 합니다. 데이터 소스에 대한 URL을 정의하여 RDBMS에 대한 연결을 지정하십시오.
    4. 다음 단계를 완료하여 새 데이터 소스를 비트랜잭션으로 구성하십시오.
      1. 새로 작성한 데이터 소스를 여십시오.
      2. 추가 특성에서 WebSphere Application Server 데이터 소스 특성을 클릭하십시오.
      3. 비트랜잭션 데이터 소스 선택란을 선택하십시오.
      4. 변경사항을 저장하십시오.
  2. 트랜잭션을 관계형 데이터베이스에 저장하도록 트랜잭션 서비스를 구성하십시오.
    1. WebSphere Application Server 관리 콘솔에서 서버 > 서버 유형 > WebSphere Application Server > server_name을 클릭하십시오. 지정된 애플리케이션 서버의 특성이 표시됩니다.
    2. 컨테이너 설정 섹션에서 컨테이너 서비스 > 트랜잭션 서비스를 클릭하십시오. 트랜잭션 서비스 설정 페이지가 표시됩니다.
    3. 구성 탭이 이미 표시되어 있지 않으면 이를 선택하십시오.
    4. 트랜잭션 로그 디렉토리 필드에 데이터베이스에 로그를 저장하려는 것을 나타내는 사용자 정의 문자열을 입력하십시오. 이 문자열은 다음 형식을 가져야 합니다.
      custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=data_source_jndi_name,tablesuffix=suffix
      여기서 data_source_jndi_name은 이전에 작성된 비트랜잭션 데이터 소스의 JNDI 이름이고 suffix는 HA 클러스터의 각 멤버에 고유 레이블을 지정하기 위해 설정해야 하는 문자열입니다.
      제한사항: Oracle 데이터베이스를 사용 중인 경우 suffix 문자열의 길이는 15자를 초과해서는 안됩니다.
  3. (선택사항) WebSphere Application Server에서 보상 또는 활동 서비스를 사용할 계획인 경우에는 트랜잭션을 관계형 데이터베이스에 저장하도록 보상 서비스를 구성하십시오.
    1. WebSphere Application Server 관리 콘솔에서 서버 > 서버 유형 > WebSphere Application Server > server_name을 클릭하십시오. 지정된 애플리케이션 서버의 특성이 표시됩니다.
    2. 컨테이너 설정 섹션에서 컨테이너 서비스 > 보상 서비스를 클릭하십시오. 보상 서비스 설정 페이지가 표시됩니다.
    3. 구성 탭이 이미 표시되어 있지 않으면 이를 선택하십시오.
    4. 복구 로그 디렉토리 필드에 데이터베이스에 로그를 저장하려는 것을 나타내는 사용자 정의 문자열을 입력하십시오. 이 문자열은 다음 형식을 가져야 합니다.
      custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=data_source_jndi_name,tablesuffix=suffix
      여기서 data_source_jndi_name은 이전에 작성된 비트랜잭션 데이터 소스의 JNDI 이름이고 suffix는 HA 클러스터의 각 멤버에 고유 레이블을 지정하기 위해 설정해야 하는 문자열입니다.
      제한사항: Oracle 데이터베이스를 사용 중인 경우 suffix 문자열의 길이는 15자를 초과해서는 안됩니다.
  4. (선택사항) 데이터베이스 테이블을 작성하십시오.

    WebSphere Application Server는 처음 시작될 때 필요한 데이터베이스 테이블을 작성하려고 시도합니다. 예를 들어, 충분하지 않은 권한으로 인해 이 작성을 수행할 수 없으면 서버가 시작되지 않습니다. 이 경우에는 수동으로 세 개의 데이터베이스 테이블을 작성해야 합니다.

    다음 DDL은 독립형 서버 환경을 대표하고 이 환경에 적합합니다. 독립형 환경에서는 트랜잭션 서비스를 지원하기 위해 두 개의 데이터베이스 테이블, 하나의 트랜잭션 로그 및 하나의 파트너 로그 테이블이 필요합니다. 보상 또는 활동 서비스를 사용할 계획인 경우에는 세 번째 보상 로그 테이블도 필요합니다.

    테이블 이름은 사용자의 환경에 맞게 조정될 수 있습니다. 예를 들어, 다음 네 가지 멤버 서버를 가진 AppCluster라는 클러스터가 있는 경우에는 네 개의 트랜잭션 로그 테이블 및 네 개의 파트너 로그 테이블과 선택적으로 네 개의 보상 로그 테이블을 작성해야 합니다.
    • AppClusterMember1
    • AppClusterMember2
    • AppClusterMember3
    • AppClusterMember4
    따라서 AppCluster에 대해 다음의 테이블을 정의할 수 있습니다.
    클러스터 이름 서버 이름 트랜잭션 로그 테이블 파트너 로그 테이블 보상 로그 테이블
    AppCluster AppClusterMember1 WAS_TRAN_LOGApp1 WAS_PARTNER_LOGApp1 WAS_COMP_LOGApp1
      AppClusterMember2 WAS_TRAN_LOGApp2 WAS_PARTNER_LOGApp2 WAS_COMP_LOGApp2
      AppClusterMember3 WAS_TRAN_LOGApp3 WAS_PARTNER_LOGApp3 WAS_COMP_LOGApp3
      AppClusterMember4 WAS_TRAN_LOGApp4 WAS_PARTNER_LOGApp4 WAS_COMP_LOGApp4
    다음 DDL은 DB2에서 App1 테이블 접미부를 가진 데이터베이스 테이블을 작성하는 방법을 보여줍니다.
    CREATE TABLE WAS_TRAN_LOGApp1(
      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_LOGApp1(
      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_COMP_LOGApp1(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID BIGINT,
      RUSECTION_ID BIGINT,
      RUSECTION_DATA_INDEX SMALLINT,
      DATA LONG VARCHAR FOR BIT DATA) 
    다음 DDL 구조는 Oracle에서 데이터베이스 테이블을 작성하는 방법을 보여줍니다.
    CREATE TABLE WAS_TRAN_LOGApp1(
      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_LOGApp1(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID NUMBER(19),
      RUSECTION_ID NUMBER(19),
      RUSECTION_DATA_INDEX SMALLINT,
      DATA BLOB)
    CREATE TABLE WAS_COMP_LOGApp1(
      SERVER_NAME VARCHAR(128),
      SERVICE_ID SMALLINT,
      RU_ID NUMBER(19),
      RUSECTION_ID NUMBER(19),
      RUSECTION_DATA_INDEX SMALLINT,
      DATA BLOB)

네 개의 멤버 서버(AppClusterMember1, AppClusterMember2, AppClusterMember3, AppClusterMember4)를 가진 AppCluster라는 클러스터가 있는 경우에는 다음과 같이 로그 위치를 구성하십시오.
클러스터 이름 서버 이름 트랜잭션 로그 테이블 보상 로그 테이블
AppCluster AppClusterMember1 custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App1 custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App1
AppClusterMember2 custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App2 custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App2
AppClusterMember3 custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App3 custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App3
AppClusterMember4 custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App4 custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App4
이 예제에서는 테이블 접미부가 다음과 같이 설정됩니다.
  • AppClusterMember1
  • AppClusterMember2
  • AppClusterMember3
  • AppClusterMember4
다음과 같은 이름을 가진 데이터베이스 테이블이 작성됩니다.
  • WAS_TRAN_LOGApp1
  • WAS_TRAN_LOGApp2
  • WAS_TRAN_LOGApp3
  • WAS_TRAN_LOGApp4
  • WAS_PARTNER_LOGApp1
  • WAS_PARTNER_LOGApp2
  • WAS_PARTNER_LOGApp3
  • WAS_PARTNER_LOGApp4
  • WAS_COMP_LOGApp1
  • WAS_COMP_LOGApp2
  • WAS_COMP_LOGApp3
  • WAS_COMP_LOGApp4

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



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