Sun Java System Application Server Enterprise Edition 8.1 2005Q2 릴리스 노트

고가용성

이 절에서는 고가용성 데이터베이스(HADB)와 관련된 알려진 문제점과 해결 방법을 설명합니다.

버그 ID 

요약 

ID 없음 

이중 네트워크를 사용한 HADB 구성 문제가 발생합니다. 

Solaris SPARC에서는 두 개의 서브넷에 이중 네트워크와 함께 구성된 HADB가 제대로 작동합니다. 그러나, 운영 체제 또는 일부 하드웨어 플랫폼의 네트워크 드라이버 문제 때문에 Solaris x86과 Linux 플랫폼에서는 이중 네트워크를 제대로 처리할 수 없는 경우가 있는 것으로 확인되었습니다. 이로 인해 HADB에 발생하는 문제는 다음과 같습니다. 

  • Linux에서는 메시지를 보낼 때 일부 HADB 프로세스가 차단됩니다. 이 때문에 HADB 노드가 다시 시작되고 네트워크가 분할됩니다.

  • Solaris x86에서는 네트워크 실패 후 발생할 수 있는 몇 가지 문제로 인해 다른 네트워크 인터페이스로 전환할 수 없습니다. 이 문제는 항상 발생하는 것은 아니므로 네트워크를 하나만 사용하는 것보다는 두 개를 사용하는 것이 더 낫습니다. Solaris 10에서는 이러한 문제가 부분적으로 해결되었습니다.

  • Trunking은 지원되지 않습니다.

  • HADB는 Windows 2003에서 이중 네트워크를 지원하지 않습니다(ID 5103186).

ID 없음 

HADB 데이터베이스 생성이 실패합니다. 

사용할 수 있는 공유 메모리 세그먼트가 너무 적다는 뜻의 다음 오류로 새 데이터베이스 생성에 실패할 수 있습니다. 

HADB-E-21054:System resource is unavailable:HADB-S-05512:Attaching shared memory segment with key "xxxxx" failed, OS status=24 OS error message:Too many open files.

해결 방법

공유 메모리가 구성되었는지와 구성이 작동하는지를 확인합니다. 특히, Solaris 8에서는 파일 /etc/system을 검사하고 변수 shmsys:의 값이 다음과 같은지 확인합니다. shminfo_shmseg는 적어도 호스트당 노드 수의 6배입니다.

5052548 

공유 메모리 세그먼트가 잠겨서 페이지 아웃할 수 없습니다. 

HADB 4.3-0.16 이상은 해당 공유 메모리 세그먼트(SHM_SHARE_MMU 플래그 사용)를 만들어 연결할 때 Intimate Shared Memory를 사용하도록 구성되었습니다. 이 플래그를 사용하면 공유 메모리 세그먼트가 물리적 메모리로 잠기기 때문에 페이지 아웃되지 않습니다. 이 경우 저사양의 시스템에서 설치할 때 문제가 발생하기 쉽습니다.

따라서 개발자가 메모리 용량이 512MB이고 Application Server7.0 EE 사용 시 사용 가능한 스왑 공간이 충분한 시스템에 7.1 EE 이상을 설치한 경우 clsetup 클러스터를 구성하는 데 문제가 발생합니다. 이 클러스트는 HADB 노드 2개를 만들며 각각의 devicesize512이므로 2개의 노드에서 필요한 공유 메모리를 지원하기에 물리적 RAM이 충분하지 않습니다

해결 방법

Application Server와 HADB를 함께 배치할 경우 권장량의 메모리를 설치해야 합니다. 자세한 내용은 HADB 요구 사항 및 지원되는 플랫폼을 참조하십시오.

5091280 

hadbm set가 자원 가용성(디스크 및 메모리 공간)을 확인하지 않습니다.

hadbm set를 사용하여 장치 또는 버퍼 크기를 증가시키면 관리 시스템에서 데이터베이스를 만들거나 노드를 추가할 때 자원 가용성을 확인하지만 장치나 주 메모리 버퍼 크기가 변경될 때는 충분한 자원이 있는지 확인하지 않습니다.

해결 방법

devicesize 또는 buffersize 구성 속성을 증가시키기 전에 모든 호스트에서 사용 가능 디스크와 메모리 공간이 충분한지 확인합니다.

5091349 

packagepath를 위한 이기종 경로가 지원되지 않습니다.

같은 이름의 동일한 소프트웨어 패키지를 서로 다른 호스트의 여러 위치에 등록할 수 없습니다. 예를 들면 다음과 같습니다.  


hadbm registerpackage test --packagepath=/var/install1 --hosts europa11
Package successfully registered.
hadbm registerpackage test --packagepath=/var/install2 --hosts europa12
hadbm:Error 22171: A software package has already been registered with 
the package name test.

해결 방법

HADB는 데이터베이스 클러스터의 여러 노드에 걸친 이기종 경로를 지원하지 않습니다. HADB 서버 설치 디렉토리(--packagepath)가 모든 참여 호스트에서 동일한지 확인합니다.

6173886, 6253132 

createdomain이 실패할 수 있습니다.

네트워크 인터페이스가 여러 개인 호스트에 관리 에이전트를 실행하면 createdomain 명령은 모든 네트워크 인터페이스가 동일한 서브넷에 있지 않을 경우 실패하게 됩니다.  


hadbm:Error 22020: The management agents could not establish a 
domain, please check that the hosts can communicate with UDP multicast.

관리 에이전트(다르게 구성되지 않은 경우)는 UDP 멀티캐스트에 대해 "첫 번째" 인터페이스를 사용합니다("첫 번째"는 java.net.NetworkInterface.getNetworkInterfaces()의 결과로 정의됨).

해결 방법

최고의 해결 방법은 관리 에이전트에 사용할 서브넷을 요청하는 것입니다(구성 파일에서 ma.server.mainternal.interfaces 설정. 예: ma.server.mainternal.interfaces=10.11.100.0). 서브넷 사이의 라우터를 구성하여 멀티캐스트 패킷을 라우팅할 수도 있습니다(관리 에이전트는 멀티캐스트 주소 228.8.8.8을 사용).

관리 에이전트의 새 구성으로 재시도하기 전에 관리 에이전트 리포지토리를 정리해야 합니다. 도메인의 모든 에이전트를 중단하고 리포지토리 디렉토리에서 모든 파일과 디렉토리를 삭제합니다(관리 에이전트 구성 파일에 repository.dr.path로 표시). 새 구성 파일을 가진 에이전트를 다시 시작하기 전에 모든 호스트에서 이를 수행해야 합니다.

6190878 

HADB 인스턴스를 삭제한 후 디렉토리를 정리해야 합니다. 

HADB 인스턴스를 삭제한 후 configure-ha-cluster 명령으로 새 인스턴스를 만들려고 하면 실패합니다. 문제는 이전 디렉토리가 ha_install_dir/rep/* ha_install_dir/config/hadb/instance_name에 있는 원래 HADB 인스턴스에 남겨진다는 것입니다.

해결 방법

HADB 인스턴스를 삭제한 후 이러한 디렉토리를 수동으로 삭제하십시오. 

6230792, 6230415 

HADB 시작, 중단, 재구성 등이 실패하거나 중단될 수 있습니다. 

Solaris 10 Opteron에서 hadbm 명령을 사용하여 HADB를 시작하거나 중단 또는 재구성하면 다음 오류 중 하나로 실패하거나 중단될 수 있습니다.


hadbm:Error 22009: The command issued had no progress in the last 
300 seconds.
HADB-E-21070: The operation did not complete within the time limit, 

but has not been cancelled and may complete at a later time.

clu_noman_srv 프로세스에서 사용하는 파일(nomandevice)에 일관되지 않은 읽기/쓰기가 있는 경우 이 문제가 발생할 수 있습니다. HADB 내역 파일에서 다음 메시지를 찾으면 이 문제가 있다는 뜻입니다.


n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733 
does not respond.
n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Have not heard from it in 
104.537454 sec.
n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733 
did not start.

해결 방법

문제가 재현되지는 않았으므로 다음 해결 방법은 검증된 내용이 아닙니다. 그러나 영향을 받은 노드에 대해 이 명령을 실행하면 문제가 해결됩니다.  


hadbm restartnode --level=clear nodeno dbname

노드에 대한 모든 장치가 다시 초기화됩니다. 다시 초기화하기 전에 노드를 중단시켜야 할 수도 있습니다. 

6232140 

관리 에이전트가 "IPV6_MULTICAST_IF failed" 예외로 종료됩니다.

NIC 카드가 여러 개 설치된 Solaris 8을 실행 중인 호스트에서 시작할 경우 IPv6과 IPv4가 활성화된 카드가 혼합되어 있다면 관리 에이전트는 "IPV6_MULTICAST_IF failed" 예외로 종료될 수 있습니다."

해결 방법

JAVA_OPTIONS 환경 변수를 -Djava.net.preferIPv4Stack=true로 설정합니다. 예를 들면 다음과 같습니다.


export JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"

또는 이러한 문제가 없는 Solaris 9 이상을 사용하십시오. 

6249685 

clu_trans_srv을 중단할 수 없습니다.

비동기 I/O를 수행할 때 Red Hat Enterprise Linux 3.0의 64비트 버전에 clu_trans_srv 프로세스를 무중단 모드로 만드는 버그가 있습니다. 즉, kill -9가 동작하지 않아 운영 체제를 재부팅해야 합니다.

해결 방법

Red Hat Enterprise Linux 3.0의 32비트 버전을 사용합니다. 

6262824 

hadbm은 대문자로 된 암호를 지원하지 않습니다.

암호가 hadb에 저장될 때 대문자로 된 암호는 소문자로 변환됩니다.

해결 방법

암호에 대문자를 사용하지 마십시오. 

6265419 

HADB 버전 4.4.2.5에서 HADB 버전 4.4.1.7로 다운그레이드하면 다른 오류 코드가 표시되면서 ma는 실패합니다. 

이전 HADB 버전으로 다운그레이드하면 다른 오류 코드가 표시되면서 관리 에이전트는 실패합니다. 

해결 방법

HADB 데이터베이스를 다운그레이드할 수 있지만, 리포지토리 객체가 변경되었을 경우 관리 에이전트는 다운그레이드할 수 없습니다. 다운그레이드 후에는 최신 HADB 버전에서 관리 에이전트를 사용해야 합니다. 

6271063 

설치/제거 및 symlink 유지

HADB c 패키지(Solaris: SUNWhadbc, Linux: sun-hadb-c) 버전 <m.n.u-p>의 설치/제거와 관련하여 symlink /opt/SUNWhadb/<m>는 일단 존재하는 경우 수정되지 않습니다. 따라서 연결이 끊어진 symlink가 있을 수 있습니다.

해결 방법

설치 전이나 제거 후에 사용 중이지 않은 경우 symlink를 삭제합니다.

6273681 

전역 및 로컬 영역에서 여러 관리 에이전트가 충돌합니다. 

Solaris 10에서는, 전역 영역에서 ma-initd 스크립트를 사용하여 관리 에이전트를 중단하면 로컬 영역에서도 관리 에이전트가 중단됩니다. 

해결 방법

전역 및 로컬 영역 모두에 관리 에이전트를 설치하지 마십시오. 

6275103 

hadbm/ma는 세션 객체가 시간 초과되어 MA에서 삭제될 때 더 나은 오류 메시지를 표시해야 합니다.

가끔 서버의 자원 충돌 문제로 인해 관리 클라이언트의 연결이 끊어질 수 있으며, 다시 연결하면 "hadbm:Error 22184:A password is required to connect to the management agent" 오류 메시지가 반환됩니다.

해결 방법

서버에 자원 문제가 있다면 자원을 추가하는 등 적절한 조치를 취한 다음 다시 시도해보십시오. 

6275319 

루트가 아닌 사용자는 HADB를 관리할 수 없습니다. 

Java Enterprise System에서 (루트로) 설치하면 루트가 아닌 사용자는 HADB를 관리할 수 없습니다. 

해결 방법

항상 루트로 로그인하여 HADB를 관리합니다. 

6293912 

관리 에이전트는 특수 용도의 인터페이스를 사용해서는 안 됩니다. 

0.0.0.0과 같은 IP 주소를 가진 특수 용도의 인터페이스는 관리 에이전트에서 HADB 노드에 사용할 유효한 인터페이스로 등록되지 않아야 합니다. 이러한 인터페이스를 등록하면 IP 주소 대신 호스트 이름을 사용하여 hadbm create 명령을 호출하는 사용자에 의해 HADB 노드가 이런 인터페이스에 설정되었을 경우 문제가 생길 수 있습니다. 그러면 노드가 통신할 수 없게 되어 create 명령이 중단될 수 있습니다.

해결 방법

인터페이스가 여러 개 있는 호스트에서 hadbm create를 사용할 때 항상 DDN 표기 형식을 사용하여 IP 주소를 명확하게 지정해야 합니다.

6291562 

Windows에서 리어셈블리 오류 

특정 구성과 로드의 Windows 플랫폼에서 운영 체제에 많은 리어셈블리 오류가 있을 수 있습니다. 여러 테이블에 대한 스캔을 동시에 실행할 때(select *) 20개가 넘는 노드로 된 구성에 문제가 있었습니다. 트랜잭션이 자주 중단되거나 복구를 완료하는 데 시간이 오래 걸리는 등의 징후가 있거나 시스템의 여러 부분에서 자주 시간 초과가 일어날 수 있습니다.

해결 방법

이 문제를 해결하기 위해 Windows 레지스트리 변수 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 를 기본값인 100보다 높게 설정할 수 있습니다. 이 값을 0x1000 ( 4096)까지 증가시키는 게 좋습니다. 자세한 내용은 Microsoft 지원 페이지의 811003 기사를 참조하십시오.

6303581, 6346059, 6307497 

hadbm start <db_name>을 실행하면 입력된 암호의 일부가 마스크 처리되지 않고 표시됩니다.

시스템이 로드 중인 경우 시스템 마스크 처리가 실패할 수 있으며 입력되는 비밀번호의 일부 문자가 노출될 수 있습니다. 이는 사소한 보안 위험에 해당되며 비밀번호는 항상 마스크 처리되어야 합니다. 

해결 방법

비밀번호를 고유 비밀번호 파일에 입력(Application Server 8.1 이후 일반적으로 권장되는 방법)하고 --adminpassword 또는 --dbpasswordfile 옵션과 함께 참조하십시오.