| |
| Sun Java System Identity Synchronization for Windows 1 2004Q3 설치 및 구성 설명서 | |
9장
문제해결이 장에서는 Identity Synchronization for Windows를 사용하는 동안 발생할 수 있는 문제를 해결하는 데 도움이 되는 내용을 제공합니다. 다음과 같은 내용으로 구성됩니다.
문제해결 점검 목록
참고
관리자: 문제를 디버깅할 때 로깅 수준("로그 파일 구성" 페이지 269에서 설명)을 조정하여 로그에 문제의 원인이 될 수 있는 모든 이벤트가 반영되도록 합니다.
로그 수준을 FINE 이상으로 조정하지 않으면 일부 이벤트(사용자가 SUL에 포함되지 않아 사용자 변경 내용을 동기화 할 수 없는 등)는 로그 파일에 포함되지 않습니다. 모든 idsync resync 작업 동안 로그 수준은 INFO로 유지되어야 합니다.
Identity Synchronization for Windows를 설치 및 구성하는 동안 idsync printstat 명령을 유용한 도구로 사용할 수 있습니다. printstat("printstat 사용" 페이지 314 참조)를 실행하면 설치 및 구성 과정을 완료하기 위하여 수행해야 하는 나머지 단계 목록이 표시됩니다.
- 중앙 error.log에 보고된 문제가 있습니까?
isw-<hostname>/logs/central/error.log
중앙 오류 로그 파일에 거의 모든 오류가 보고됩니다. 또한 오류에 대한 추가 정보는 보통 audit.log 파일에 있습니다. 관련 로그 항목의 상호 관계를 쉽게 하기 위하여 audit.log 파일에 또한 오류 로그의 모든 항목이 포함됩니다.
- 릴리스 노트에 많은 알려진 문제가 있습니다. 여기에 문제가 설명되어 있습니까?
- 설치가 초기화된 컴퓨터에 수행되었습니까? 이전 구성의 제거가 완료되지 않은 상태에서 제품을 다시 설치할 때 문제가 발생할 수 있습니다. 이전 설치를 완전히 제거하는 방법은 제 8장, "소프트웨어 제거"를 참조하십시오.
- 코어가 적절히 설치되었습니까? 코어 설치가 성공적으로 완료되면 isw-<hostname>/logs/central/ 디렉토리에 로그 파일이 만들어집니다.
- 자원 구성 동안 Directory Server가 실행되었습니까?
- Message Queue와 시스템 관리자를 포함하여 코어가 현재 실행 중입니까? Windows의 경우 적절한 서비스 이름을 확인합니다. Solaris의 경우 적절한 데몬 이름을 확인합니다. idsync printstat 명령을 사용하여 Message Queue와 시스템 관리자가 작동 중인지 확인합니다.
- 구성이 성공적으로 저장되었습니까? idsync printstat 명령에서 커넥터 목록이 만들어지면 구성이 성공적으로 저장된 것입니다.
- 커넥터가 모두 설치되었습니까? 동기화되는 각 디렉토리 소스마다 하나의 커넥터가 반드시 설치되어야 합니다.
- 하위 구성요소가 모두 설치되었습니까? 커넥터가 설치된 후 Directory Server와 Windows NT 커넥터에 하위 구성요소가 설치되어야 합니다. Directory Server 플러그인은 반드시 각 Directory Server 복제본에 설치되어야 합니다.
- 설치 후 절차를 수행했습니까? Directory Server 플러그인을 설치한 후 반드시 Directory Server를 다시 시작해야 합니다. Windows NT 하위 구성요소를 설치한 후 반드시 Windows 기본 도메인 제어기를 다시 시작해야 합니다.
- 콘솔이나 명령줄에서 동기화가 시작되었습니까?
- 모든 커넥터가 현재 실행 중입니까?
- 콘솔 또는 idsync printstat를 사용하여 모든 커넥터의 상태가 SYNCING인지 확인합니다.
- 동기화되는 디렉토리 소스가 현재 실행 중입니까?
- 콘솔을 사용하여 수정 및 작성 내용이 예측한 방향으로 동기화되는지 확인합니다.
- 오직 하나의 디렉토리 소스에만 존재하는 사용자를 동기화하는 경우 idsync resync 명령을 사용하여 다른 디렉토리 소스에서 해당 사용자가 만들어졌습니까?
- 두 디렉토리 소스 모두에 있는 사용자를 동기화하는 경우 idsync resync 명령을 사용하여 해당 사용자를 연결했습니까?
- Active Directory 또는 Windows NT에서 Sun Java System Directory Server로 사용자를 만들 수 없는 경우 Directory Server objectclass의 모든 필수 속성이 생성 속성으로 지정되었으며 원래 사용자 항목에 해당 속성의 값이 있는지 확인하십시오.
- 동기화가 Directory Server에서 Windows NT로 작성하며 사용자가 만들어졌으나 계정을 사용할 수 없는 경우, 사용자 이름이 Windows NT 요구 사항을 위반하지 않는지 확인하십시오.
예를 들어 Windows NT에서 허용하는 최대 길이보다 긴 사용자 이름을 지정하는 경우 NT에 사용자가 만들어지지만 이름을 변경(사용자 > 이름 변경)할 때까지 이 사용자를 사용하거나 편집할 수 없습니다.
- Windows NT SAM 변경 감지기 하위 구성요소를 사용하려면 반드시 NT 감사 로그를 작동해야 합니다. 시작 > 프로그램 > 관리 도구 > 사용자 관리자를 선택한 후 정책 > 감사 정책을 선택합니다.
이 이벤트 감사를 선택하고 사용자 및 그룹 관리용 성공 및 실패 선택란을 모두 선택합니다.이벤트 뷰어 > Event Log Wrapping에서 Event Log Settings를 선택한 후 Overwrite Events as Needed를 선택합니다.
- 동기화에 실패한 사용자가 Synchronization User List에 있습니까? 예를 들어 동기화 사용자 목록의 기본 DN과 필터가 일치합니까? Active Directory가 포함된 구현에서 Sun Java System Directory Server 항목이 사용자 동기화 목록에 없으면 요청시 비밀번호 동기화가 아무런 표시 없이 실패합니다. 이는 대부분 Synchronization User List가 잘못되었기 때문에 발생합니다.
- 동기화 설정이 변경되었습니까? 동기화 설정이 Active Directory에서 Sun Java System 디렉토리 서버로 사용자를 동기화시키는 것에서 디렉토리 서버에서 Active Directory로 사용자를 동기화시키는 것으로만 변경된 경우 Active Directory SSL CA 인증서가 반드시 커넥터의 데이터베이스에 추가되어야 합니다. idsync certinfo 명령은 현재 SSL 설정에 따라 설치되어야 하는 SSL 인증서를 보고합니다.
- 모든 호스트 이름이 적절히 지정되었으며 DNS에서 변환할 수 있습니까? Active Directory 도메인 제어기는 Active Directory 커넥터가 실행되는 컴퓨터와 Sun Java System Directory Server 플러그인이 실행되는 컴퓨터에서 DNS 변환할 수 있어야 합니다.
- Active Directory 도메인 제어기의 IP 주소가 커넥터가 이 제어기에 연결하는 데 사용하는 동일한 이름으로 변환됩니까?
- 소스 커넥터가 사용자에 대한 변경 내용을 찾습니까? 중앙 audit.log를 사용하여 사용자가 추가 또는 수정되는 디렉토리 소스용 커넥터가 수정 내용을 찾는지 확인합니다.
- 대상 커넥터가 이 수정 내용을 처리합니까?
- 복수 Synchronization User List가 구성되었습니까? 구성된 경우 충돌이 있습니까? 더욱 구체적인 Synchronization User List가 덜 구체적인 Synchronization User List보다 먼저 콘솔을 사용하도록 순서를 정해야 합니다.
- 흐름이 양방향 또는 Sun에서 Windows로 설정되었으며 구현에 Active Directory 데이터 소스가 있는 경우 커넥터가 SSL 통신을 사용하도록 구성되었습니까?
- Solaris 환경에서 메모리 문제가 의심되는 경우 프로세스를 확인합니다. 다른 프로세스로 실행되는 구성요소를 보려면 다음을 입력합니다.
/usr/ucb/ps -gauxwww | grep com.sun.directory.wps
출력에 커넥터의 ID, 시스템 관리자 및 중앙 기록기를 포함하여 자세한 내용이 모두 제공됩니다. 이는 과도한 메모리를 소모하는 프로세스가 있는 경우 유용합니다.
- Sun Java System 디렉토리 소스를 만들거나 편집하고 Directory Server에 Choose a known server 드롭다운 목록이 표시되지 않는 경우 Directory Server가 실행되는지 확인하십시오. Directory Server가 사용 가능한 호스트의 드롭다운 목록에 표시되려면 반드시 실행 중이어야 합니다.
문제의 서버가 일시적으로 정지된 경우 Specify a server의 호스트 이름과 포트 필드에 호스트와 포트를 입력합니다.
참고
Identity Synchronization for Windows는 기본적으로 짧은 호스트 이름을 사용하지만 구성에 따라 기본 호스트 이름을 사용하지 못할 수 있습니다. 호스트 이름을 입력해야 하는 경우 항상 정규화된 이름을 사용하는 것이 좋습니다.
- 제거 프로그램을 실행할 때 다음 오류가 표시됩니까?
./runInstaller.sh
IOException while making /tmp/SolarisNativeToolkit_5.5.1_1 executable:java.io.IOException: Not enough space
java.io.IOException: Not enough space
/tmp에 있는 스왑 파일의 크기를 늘입니다.
커넥터 문제 해결이 부분의 내용을 사용하여 커넥터 문제를 해결하십시오. 다음과 같은 내용으로 구성됩니다.
디렉토리 소스를 관리하는 커넥터의 ID를 확인하는 방법
다음 방법 중 한 가지를 사용하여 커넥터 ID를 확인합니다.
중앙 로그 사용
중앙 audit.log에서 동기화되는 디렉토리 소스의 커넥터 ID를 확인합니다. 시작시에 중앙 기록기는 각 커넥터의 ID와 커넥터가 관리하는 디렉토리 소스를 기록합니다. 가장 최근 정보는 시작 배너의 마지막 인스턴스를 확인합니다.
예를 들어 다음 로그 메시지에는 두 개의 커넥터가 있습니다.
- CNN101 is a Sun Directory Connector that manages dc=airius,dc=com
- CNN100 is an Active Directory Connector that manages the airius.com domain
idsync printstat 사용
idsync printstat 명령에서 또한 커넥터 ID와 상태를 알 수 있습니다("printstat 사용" 페이지 314 참조).
이 명령의 출력 예는 다음과 같습니다.
Connector ID: CNN100
Type: Active Directory
Manages: airius.com (ldaps://host2.airius.com:636)
State: READYConnector ID: CNN101
Type: Sun Java System Directory
Manages: dc=airius,dc=com (ldap://host1.airius.com:389)
State: READYSun Java System Message Queue Status: Started
Sun Java System Message Queue를 통하여 System Manager 확인.
System Manager Status: Started
SUCCESS
커넥터의 현재 상태 확인 방법
콘솔의 Status 창, idsync printstat 명령(앞의 설명 참조) 또는 중앙 audit.log를 사용하여 동기화에 연관된 커넥터의 현재 상태를 확인할 수 있습니다.
audit.log의 마지막 메시지에서 커넥터 상태에 대한 보고를 찾습니다.
예를 들어 다음 로그 메시지에서 커넥터 CNN101의 상태는 READY입니다.
[2003/03/19 10:20:16.889 -0600] INFO 13 SysMgr_100 host1 "Connector [CNN101] is now in state "READY"."
표 9-1) 커넥터 상태 설명
상태
의미
UNINSTALLED
커넥터가 설치되지 않았습니다.
INSTALLED
커넥터가 설치되었으나 구성을 수신하지 않았습니다.
READY
커넥터가 설치되었으며 구성을 수신했으나 동기화를 시작하지 않았습니다.
SYNCING
커넥터가 설치되고 구성을 수신했으며 동기화를 시작하려 합니다.
커넥터의 상태가 UNINSTALLED인 경우의 작업
커넥터를 설치합니다.
커넥터 설치가 실패했으나 다시 설치할 수 없는 경우의 작업
커넥터 상태가 실패했으나 Identity Synchronization for Windows 설치 프로그램은 커넥터가 설치된 것으로 간주하는 경우 설치 프로그램으로 해당 커넥터를 다시 설치할 수 없습니다.
idsync resetconn을 실행하여("resetconn 사용" 페이지 315에서 설명) 커넥터의 상태를 UNINSTALLED로 재설정한 후 커넥터를 다시 설치합니다.
커넥터의 상태가 INSTALLED인 경우의 작업
오랫동안 커넥터의 상태가 설치된 상태로 유지되는 경우 대부분 실행되지 않거나 Message Queue와 통신할 수 없게 됩니다.
커넥터가 설치된 컴퓨터에서 커넥터의 로그(audit.log 및 error.log)에서 잠재적 오류를 확인합니다. 커넥터가 Message Queue에 연결되지 않는 경우 여기에 오류가 보고됩니다. 이 경우 가능한 원인은 Message Queue 문제 해결을 참조하십시오.
감사 로그의 가장 최신 메시지가 오래된 경우 커넥터가 실행되지 않을 수 있습니다. 구성요소 문제해결 참조.
커넥터의 상태가 READY인 경우의 작업
동기화가 시작되고 해당 하위 구성요소가 설치되었으며 커넥터로 연결될 때까지 커넥터의 상태는 READY로 유지됩니다. 동기화가 시작되지 않았으면 콘솔이나 명령줄 유틸리티를 사용하여 시작합니다.
동기화가 시작되었으나 커넥터의 상태가 SYNCING로 변경되지 않는 경우 하위 구성요소에 문제가 있을 가능성이 높습니다. 하위 구성요소 문제 해결 참조.
커넥터의 상태가 SYNCING인 경우의 작업
커넥터의 상태가 SYNCING이지만 수정 내용이 동기화되지 않는 경우 동기화 설정이 올바른지 확인합니다.
- 콘솔을 사용하여 수정 내용 및 작성 내용이 원하는 방향으로(즉, Windows에서 Sun Java System Directory Server로) 동기화되는지 확인합니다.
- 콘솔을 사용하여 수정되는 속성이 동기화된 속성인지 확인합니다.(참고: 비밀번호는 항상 동기화됩니다.) 작성된 사용자 항목이 동기화되지 않는 경우 콘솔에서 사용자 작성 흐름을 사용하는지 확인합니다.
- 소스 커넥터가 사용자에 대한 변경 내용을 찾습니까? 중앙 audit.log를 사용하여 사용자가 추가 또는 수정되는 디렉토리 소스용 커넥터가 수정 내용을 찾는지 확인합니다. 대상 커넥터가 이 수정 내용을 처리합니까?
Active Directory 커넥터가 SSL을 통하여 Active Directory에 연결할 수 없는 경우의 작업
Active Directory 커넥터가 SSL을 통하여 Active Directory에 연결할 수 없으며 다음 오류 메시지가 표시되는 경우 AD 도메인 제어기를 다시 시작합니다.
Failed to open connection to ldaps://server.example.com:636, error(91): Cannot connect to the LDAP server, reason: SSL_ForceHandshake failed: (-5938) Encountered end of file.
구성요소 문제해결이 부분의 내용을 사용하여 구성요소 문제를 해결합니다. 다음과 같은 내용으로 구성됩니다.
Solaris
/usr/ucb/ps -auxww | grep com.sun.directory.wps 명령을 사용하여 실행되는 Identity Synchronization for Windows 프로세스를 모두 목록으로 만듭니다. 이 표에 실행되어야 하는 프로세스가 표시됩니다.
표 9-2) Identity Synchronization for Windows 프로세스
Java 프로세스 클래스 이름
구성요소
있는 경우
com.sun.directory.wps.watchdog.server.WatchDog
시스템 워치독
항상
com.sun.directory.wps.centrallogger.CentralLoggerManager
중앙 기록기
코어가 설치된 위치만
com.sun.directory.wps.manager.SystemManager
시스템 관리자
코어가 설치된 위치만
com.sun.directory.wps.controller.AgentHarness
커넥터
설치된 커넥터마다 한 개
기대한 수의 프로세스가 실행되지 않는 경우 다음 명령으로 모든 Identity Synchronization for Windows 프로세스를 다시 시작합니다.
워치독 프로세스가 실행되지만 기대한 수의 java.exe 프로세스가 실행되지 않는 경우 "WatchList.properties 검사" 부분에서 모든 구성요소가 적절히 설치되었는지 확인합니다.
다른 시스템 구성요소와 마찬가지로 Sun Java System Directory Server 플러그인은 중앙 기록기가 관리하는 버스를 통하여 로그 기록을 송신하여 사용자가 볼 수 있도록 합니다. 그러나 플러그인에는 버스를 통하여 표시되지 않는 일부 메시지가 기록됩니다.(예: 하위 구성요소가 커넥터에 연결하지 못한 인스턴스) 이 경우 로그 메시지에는 파일 시스템에 있는 플러그인의 logs 디렉토리만 표시되며, 다음과 유사합니다.
<serverroot>/isw-<hostname>/logs/SUBC<id>.
플러그인은 Directory Server 프로세스와 함께 실행되므로 플러그인이 자체의 logs 디렉토리에 기록하는 기능에 문제가 있을 수 있습니다. 이는 Directory Server가 logs 디렉토리의 소유자가 아닌 다른 사용자로 실행되는 경우 발생합니다. 이 경우 디렉토리 권한을 변경하거나 원래 운영 체제 명령을 사용하는 사용자로 변경하여 명시적으로 플러그인 권한을 부여해야 할 수 있습니다.
Windows
서비스 제어판을 사용하여 "Sun Java SystemIdentity Synchronization for Windows" 서비스가 시작되었는지 확인합니다. 시작되지 않았으면 Identity Synchronization for Windows가 컴퓨터에서 실행되지 않는 것이므로 시작해야 합니다. 서비스가 시작되면 작업 관리자를 사용하여 pswwatchdog.exe(Watchdog 프로세스)가 실행되지 확인하고 예상된 숫자의 java.exe 프로세스가 실행되는지 확인합니다.
참고
Directory Server 콘솔 등 다른 java 프로세스가 사용 중일 수 있습니다. pswwatchdog.exe가 실행되지 않는 경우 "Sun Java System Identity Synchronization for Windows" 서비스를 다시 시작합니다. pswwatchdog.exe가 실행되지만 기대한 수의 java.exe 프로세스가 실행되지 않는 경우 WatchList.properties 검사에서 모든 구성요소가 적절히 설치되었는지 확인합니다.
WatchList.properties 검사
Identity Synchronization for Windows 구성요소가 설치된 각 컴퓨터에서 isw-<machine_name>/resources/WatchList.properties 파일이 해당 컴퓨터에서 실행되어야 하는 구성요소를 열거합니다. process.name[n] 기본 설정이 실행되어야 하는 구성요소의 이름을 지정합니다.
코어가 설치된 컴퓨터에서 WatchList.properties에 중앙 기록기 및 시스템 관리자용 항목이 포함됩니다.
커넥터가 설치된 컴퓨터에서 WatchList.properties에 각 커넥터의 항목이 별도로 포함됩니다. process.name 등록 정보는 다음 커넥터 ID입니다.
WatchList.properties의 항목과 실제로 실행되는 프로세스 사이에 불일치가 있는 경우 Identity Synchronization for Windows 데몬 또는 서비스를 다시 시작합니다.
WatchList.properties의 항목이 기대한 수 보다 적은 경우(즉, 커넥터가 둘 설치되었으나 하나만 있는 경우) 설치 로그에서 설치 이상이 없는지 확인합니다.
하위 구성요소 문제 해결다음 점검 목록을 사용하여 구현의 하위 구성요소에 대한 문제를 해결합니다.
- 모든 하위 구성요소가 설치되었습니까?
커넥터가 설치된 후 반드시 하위 구성요소 설치가 완료되어야 합니다.
- Active Directory 커넥터의 경우 설치되는 하위 구성요소가 없습니다.
- Sun Java System Directory Server 커넥터의 경우 동기화되는 Sun Java System Directory Server에 Directory Server 플러그인을 설치해야 합니다.
- Windows NT 커넥터의 경우 동기화되는 각 Windows NT 도메인용 기본 도메인 제어기에 Windows 변화 감지기와 비밀번호 필터 플러그인이 반드시 설치되어야 합니다. 이 두 하위 구성요소는 Windows NT 커넥터가 설치된 후 함께 설치됩니다.
참고
Windows NT SAM 변경 감지기 하위 구성요소를 사용하려면 반드시 NT 감사 로그를 작동해야 합니다. 시작 > 프로그램 > 관리 도구 > 사용자 관리자를 선택한 후 정책 > 감사 정책을 선택합니다. 이 이벤트 감사를 선택하고 사용자 및 그룹 관리용 성공 및 실패 선택란을 모두 선택합니다.
이벤트 뷰어 > Event Log Wrapping에서 Event Log Settings를 선택한 후 Overwrite Events as Needed를 선택합니다.
.
- 하위 구성요소 설치 후 단계를 수행했습니까?
Directory Server에 Directory Server 플러그인을 설치한 후 서버를 반드시 다시 시작해야 합니다. 기본 도메인 제어기에 NT Change Detector와 Password Filter가 설치된 후 반드시 서버를 다시 시작해야 합니다.
- 하위 구성요소가 실행됩니까?
플러그인이 설치된 위치의 Directory Server가 실행 중입니까? 변경 감지기와 비밀번호 필터가 설치된 위치의 기본 도메인 제어기가 실행 중입니까?
- 하위 구성요소에 커넥터로의 네트워크 연결이 설정되었습니까?
커넥터가 실행되는 컴퓨터에서 netstat -n -a를 실행하여 커넥터가 하위 구성요소의 연결을 수신하는지 확인합니다. 다음 예는 세 가지 서로 다른 시나리오에서 이 명령을 실행한 결과입니다. (커넥터는 포트 9999를 수신하도록 구성되었습니다.)
- 커넥터가 입중계 연결을 수신하며 하위 구성요소가 연결(예상된 결과):
netstat n a | grep 9999
*.9999 *.* 0 0 65536 0 LISTEN
12.13.1.2.44397 12.13.1.2.9999 73620 0 73620 0 ESTABLISHED
12.13.1.2.9999 12.13.1.2.44397 73620 0 73620 0 ESTABLISHED
- 커넥터가 입중계 연결을 수신하지만 하위 구성요소가 연결되지 않은 경우
하위 구성요소가 실행되는지 확인한 후 하위 구성요소의 로컬 로그에서 잠재적인 문제가 없는지 확인합니다.
- 커넥터가 입중계 연결을 수신하지 않는 경우:
올바른 포트 번호를 지정했는지 확인합니다. 커넥터가 실행 중이며 READY 상태인지 확인합니다. 커넥터의 로컬 로그에서 잠재적인 문제가 없는지 확인합니다.
Message Queue 문제 해결Sun Java System Message Queue 브로커가 실행 중인지 확인합니다. Message Queue 브로커가 실행되는 컴퓨터와 포트에 telnet 명령을 실행하면 사용중인 Message Queue 서비스 목록이 반환됩니다.
# telnet localhost 7676
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
101 psw-broker 3.0.1
cluster tcp CLUSTER 32914
admin tcp ADMIN 32912
portmapper tcp PORTMAPPER 7676
ssljms tls NORMAL 32913
jms tcp NORMAL 32911
.
Connection closed by foreign host.
telnet 명령이 실패하는 경우 브로커가 실행되지 않거나 잘못된 포트가 지정된 것입니다. 브로커의 로그에서 포트 번호를 확인합니다. 브로커의 포트는 다음 줄에 지정됩니다.
[13/Mar/2003:18:17:09 CST] [B1004]: ?tarting the portmapper service using tcp [ 7676, 50 ] with min threads 1 and max threads of 1
브로커가 실행되지 않는 경우 Solaris의 경우 /etc/init.d/imq start를 실행하거나 Windows의 경우 iMQ Broker Windows 서비스를 시작하여 브로커를 시작할 수 있습니다.
Message Queue를 Solaris 8에 설치하며 mquinstall를 실행하여 패키지를 모두 설치하는 경우 반드시 mqinstall를 실행하기 전에 IMQ_JAVAHOME을 설정하여 소프트웨어가 올바른 버전의 Java를 선택하도록 해야 합니다.
아직 코어를 설치하지 않았으면 Identity Synchronization for Windows 설치 프로그램이 Message Queue 브로커가 사용할 JVM을 지정하므로 IMQ_JAVAHOME을 설정하지 않아도 됩니다.
브로커 구성 디렉토리 통신 문제 해결
Message Queue 브로커는 Identity Synchronization for Windows 구성이 저장된 Directory Server에 대하여 클라이언트를 인증합니다. 브로커가 이 Directory Server에 연결할 수 없는 경우 모든 클라이언트가 Message Queue에 연결할 수 없으며, 브로커 로그에 "javax.naming.CommunicationException" 또는 "javax.naming.NameNotFoundException" 등의 javax.naming 예외가 기록됩니다.
javax.naming 예외가 발생하는 경우 다음과 같이 합니다.
- /var/imq/instances/isw-broker/props/config.properties의 모든 imq.user_repository.ldap properties에 올바른 값이 있는지 확인합니다. 잘못된 내용이 있으며 Message Queue 브로커를 정지하고 파일을 수정하여 저장한 후, 브로커를 다시 시작합니다. Directory Server 호스트 이름은 브로커의 컴퓨터에서 변환될 수 있어야 합니다.
- /etc/imq/passfile의 imq.user_repository.ldap.password 등록정보가 올바른지 확인합니다.
- 일부 루트 접미어에 공백이 있는 경우 브로커가 항목을 검색하지 못할 수 있습니다.
브로커 메모리 설정 문제 해결
정상적인 운영 동안 Message Queue 브로커는 적절한 정도의 메모리를 사용합니다. 그러나 idsync resync 작업 동안 브로커의 메모리 요구 사항이 증가합니다. 브로커의 메모리 한계가 초과하면 전달되지 않은 메시지가 쌓이게 되고, idsync resync 작업이 매우 느려지거나 완전히 정지합니다. 또한 이 후 Identity Synchronization for Windows 시스템이 응답하지 않게 됩니다.
브로커가 메모리 부족 상태가 되면 로그에 다음 메시지가 표시됩니다.
[03/Nov/2003:14:07:51 CST] [B1089]: In low memory condition, Broker is attempting to free up resources
[03/Nov/2003:14:07:51 CST] [B1088]: Entering Memory State [B0024]: RED from previous state [B0023]: ORANGE - current memory is 1829876K, 90% of total memory
이러한 상황을 피하려면 다음과 같이 합니다.
브로커의 메모리가 부족해지는 경우 다음과 같이 복구합니다.
- 적절한 디렉토리의 브로커의 영구 메시지 저장에서 전달되지 않은 메시지가 대기중인지 확인합니다.
- 이 디렉토리의 각 파일에는 하나의 전달되지 않은 메시지가 있습니다. 이 디렉토리의 파일 수가 10000을 초과하는 경우 브로커가 메시지를 지연하고 있는 것입니다.1 그렇지 않은 경우 브로커에 다른 문제가 있습니다.
- 메시지 지연은 idsync resync 작업에 관련된 유일한 로그 파일일 것이므로 안전하게 제거할 수 있습니다.
- "서비스 시작 및 정지" 페이지 183에 설명한 것과 같이 Message Queue 브로커를 정지합니다.
- 영구 메시지 저장에서 모든 파일을 제거합니다. 이들 파일을 제거하는 가장 쉬운 방법은 message/ 디렉토리를 반복적으로 제거하고 이를 다시 만드는 방법입니다.
- Message Queue 브로커를 다시 시작합니다.
여기의 단계를 통하여 브로커의 메모리가 다시 부족해지지 않도록 합니다.
SSL 문제 해결SSL의 문제를 진단할 때 제 11장, "보안 구성,"에 설명한 Identity Synchronization for Windows의 구성요소 사이에서 SSL을 설정하는 방법 또한 참조하십시오. 이 부분의 내용:
코어 구성요소 사이의 SSL
Identity Synchronization for Windows 프로그램은 코어 설치 동안 제공된 SSL 포트가 올바른지 확인할 수 없습니다. 코어 설치 동안 SSL 포트를 잘못 입력한 경우 코어 구성요소가 적절히 통신할 수 없습니다. 구성을 처음 저장할 때까지 문제를 알 수 없을 것입니다. 콘솔에 다음 경고가 표시됩니다.
The configuration was successfully saved, however, the System Manager could not be notified of the new configuration.
시스템 관리자 로그에는 다음 항목이 표시됩니다.
[10/Nov/2003:10:24:35.137 -0600] WARNING 14 example "Failed to connect
to the configuration directory because "Unable to connect: (-5981)
Connection refused by peer.". Will retry shortly."
이 경우 코어를 제거하고 올바른 SSL 포트 번호로 다시 설치합니다.
커넥터와 Directory Server 또는 Active Directory 사이의 SSL
커넥터가 SSL을 통하여 Directory Server 또는 Active Directory로 연결할 수 없는 경우 중앙 오류 로그에 다음 메시지가 표시됩니다.
[06/Oct/2003:14:02:48.911 -0600] WARNING 14 CNN100 host1 "failed to open connection to ldaps://host2.airius.com:636."
콘솔을 열고 Specifying Advanced Security Options 패널을 선택합니다
(페이지 120 참조).신뢰되지 않은 인증서
더 자세한 내용은 중앙 감사 로그에 있습니다. 예를 들어 LDAP 서버의 SSL 인증서가 신뢰되지 않는 경우 이 메시지가 기록됩니다.
[06/Oct/2003:14:02:48.951 -0600] INFO 14 CNN100 host1 "failed to open connection to ldaps://host2.airius.com:636, error(91): Cannot connect to the LDAP server, reason: SSL_ForceHandshake failed: (-8179) Peer? Certificate issuer is not recognized."
대부분의 경우 커넥터의 인증서 데이터베이스에 CA 인증서가 추가되지 않은 것입니다. 이는 Directory Server와 함께 제공되는 certutil 프로그램을 실행하여 확인할 수 있습니다.2
참고
certutil 등의 자격 증명 관리 유틸리티는 SUNWtlsu 패키지와 함께 제공되며 Directory Server에 포함되지는 않습니다. (이 패키지는 Sun Microsystems에서 무료로 다운로드할 수 있습니다.
패키지를 다운로드한 후 다음에서 certutil를 찾습니다.
/usr/sfw/bin/certutil
이 예에서 인증서 데이터베이스에 포함된 인증서가 없습니다.3
# /usr/sunone/servers/shared/bin/certutil -L -d /usr/sunone/servers/ isw-host1/etc/CNN100
인증서 이름 신뢰 속성
p 유효한 피어
P 신뢰된 피어 (p 포함)
c 유효한 CA
T 클라이언트 인증서 발행을 위한 신뢰된 CA (c 포함)
C 인증서에 대한 신뢰된 CA (SSL용 서버 인증서 전용) (c 포함)
u 사용자 인증서
w 경고 보냄
다음 예에서 인증서 데이터베이스에 오직 Active Directory CA 인증서만 있습니다.
# /usr/sunone/servers/shared/bin/certutil -L -d /usr/sunone/servers/ isw-host1/etc/CNN100
인증서 이름 신뢰 속성
airius.com CA C,c,
p 유효한 피어
P 신뢰된 피어 (p 포함)
c 유효한 CA
T 클라이언트 인증서 발행을 위한 신뢰된 CA (c 포함)
C 인증서에 대한 신뢰된 CA (SSL용 서버 인증서 전용) (c 포함)
u 사용자 인증서
w 경고 보냄
여기에 보이는 것과 같이 CA 인증서의 신뢰 플래그는 반드시 "C,,"이어야 합니다. 인증서가 있으며 신뢰 플래그가 적절히 설정되었으나 커넥터가 여전히 연결할 수 없는 경우 우선 인증서를 추가한 후 커넥터가 다시 시작되었는지 확인한 후, Sun Java System 디렉토리와 함께 제공되는 ldapsearch 명령을 사용하여 문제 진단을 보조합니다. ldapsearch에서 인증서가 허용되지 않는 경우 커넥터에서도 허용되지 않습니다. 예를 들어 ldapsearch는 신뢰되지 않은 인증서를 거부할 수 있습니다.
# /usr/sunone/servers/shared/bin/ldapsearch -Z -P /usr/sunone/ servers/isw-host1/etc/CNN100 -h host2 -b "" -s base "(objectclass=*)"
ldap_search: Can't contact LDAP server
SSL error -8179 (Peer? Certificate issuer is not recognized.)
-P 옵션을 사용하면 ldapsearch가 커넥터 CNN100의 인증서 데이터베이스를 SSL 인증서 유효성 검사에 사용합니다. 커넥터의 인증서 데이터베이스에 올바른 인증서가 추가된 후 ldapsearch가 해당 인증서를 허용하는지 확인한 후 커넥터를 다시 시작합니다.
일치되지 않는 호스트이름
Identity Synchronization for Windows가 SSL 연결 설정을 시도할 때(모든 인증서 신뢰 설정 사용 안 함) Identity Synchronization for Windows의 커넥터는 서버의 호스트 이름이 SSL 협상 단계 동안 서버가 제시한 인증서에 있는 호스트 이름과 일치하는지 확인합니다. 호스트 이름이 일치하지 않으면 커넥터가 연결 설정을 거부합니다.
Identity Synchronization for Windows 구성의 디렉토리 소스 호스트 이름은 반드시 항상 해당 디렉토리 소스가 사용하는 인증서에 포함된 호스트 이름과 일치해야 합니다.
다음과 같이 ldapsearch를 사용하여 호스트 이름이 일치하는지 확인할 수 있습니다.
/var/mps/serverroot/shared/bin/ldapsearch.exe -Z -P /var/opt/SUNWisw/etc/CNN100 -3
-h host2.example.com -p 636 -s base -b "" "(objectclass=*)"
명령줄의 호스트 이름(host2.example.com)과 인증서에 포함된 호스트 이름이 일치하지 않는 경우 다음의 오류 메시지가 표시됩니다.
ldap_search: CanÕt contact LDAP server
SSL error -12276 (Unable to communicate securely with peer: requested do main name does not match the serverÕs certificate.)
호스트 이름이 일치하면 ldapsearch 명령이 성공하며 루트 DSE의 내용이 표시됩니다.
만료된 자격 증명
서버의 인증서가 만료된 경우 이 메시지가 기록됩니다.
[06/Oct/2003:14:06:470.130 -0600] INFO 20 CNN100 host1 "failed to open connection to ldaps://host2.airius.com:636, error(91): Cannot connect to the LDAP server, reason: SSL_ForceHandshake failed: (-8181) PeerÕs Certificate has expired."
이 경우 서버는 반드시 새 인증서를 발행해야 합니다.
Directory Server 플러그인과 Active Directory 사이의 SSL
기본적으로 요청시 비밀번호 동기화를 수행할 때 Directory Server는 SSL을 통하여 Active Directory와 통신하지 않습니다. 기본값을 변경하여 이 통신을 SSL로 보호하도록 하면 제 11장, "보안 구성"에 설명한 것과 같이 각 마스터 복제본의 디렉토리 서버 인증서 데이터베이스에 반드시 Active Directory CA 인증서가 추가되어야 합니다. 이 인증서가 추가되지 않으면 사용자가 디렉토리 서버로 바인드할 수 없으며 "DSA is unwilling to perform" 오류가 발생합니다. 또한 플러그인의 로그(예를 들어 isw-<hostname>/logs/SUBC100/pluginwps_log_0.txt)가 다음을 보고합니다.
[06/Nov/2003:15:56:16.310 -0600] INFO td=0x0376DD74 logCode=81 ADRepository.cpp:310 "unable to open connection to Active Directory server at ldaps://host2.airius.com:636, reason: "
이 경우 반드시 Active Directory CA 인증서를 Directory Server의 인증서 데이터베이스에 추가하고 Directory Server를 다시 시작합니다.
제어기 문제 해결백업 파일에서 Active Directory 도메인 제어기를 복구할 때 일부 카운터는 재설정되지 않습니다.
모든 카운터가 적절히 재설정되도록 하려면 Active Directory 도메인 제어기를 복구한 후 모든 사용자를 재동기화해야 합니다.
1모든 메시지가 전달된 경우라도 파일 작성 및 삭제로 인한 성능 저하를 피하기 위하여 브로커는 최대 10000개의 메시지 파일을 유지할 수 있습니다.3Sun Java System Directory Server와 Windows NT 커넥터용 기본 인증서 데이터베이스에는 saint-cert100 및 saintRootCA의 두 개의 인증서가 있습니다. 이 릴리스에서는 이들 인증서를 사용하지 않습니다.