이 절에서는 Identity Manager 8.1 설명서 세트를 게시한 후에 필요한 새 정보와 수정된 정보에 대해 설명합니다.
이 정보는 다음과 같이 구성됩니다.
이 절에는 Sun Identity Manager 8.1 Business Administrator’s Guide에 대한 새로운 정보와 설명서 수정 내용이 포함되어 있습니다.
Security 장에는 다음과 같은 정보가 추가됩니다.
이제 Identity Manager에서는 비밀번호 분실 보안 질문 기반의 로그인을 대신하는 방법인 로그인 복구 인증을 제공합니다. 로그인 복구 인증은 계정 수집을 방지하기 위해, 모든 로그인 오류 및 성공을 동일한 일반 결과 메시지로 렌더링하는 메시지 난독화 옵션을 구현합니다. 기능적으로 볼 때 이 로그인 복구 방법은 Forgot my User Id 방법과 동일한 시스템을 사용하며 이 두 옵션은 동일한 구성 속성을 공유합니다. 그러나 로그인 복구 인증의 경우에는 사용자의 비밀번호도 재설정하여 로그인과 비밀번호가 모두 포함된 전자 메일을 사용자의 전자 메일 주소로 보냅니다. (ID-18052)
비밀번호 분실 버튼을 리디렉션하여 질문 기반 로그인을 대체하도록 로그인 복구 방법을 구성할 수도 있고, 로그인 페이지에서 새로운 로그인 복구 버튼을 활성화할 수도 있습니다. 이 두 가지 방법은 시스템 구성 파일을 수정하여 구성할 수 있습니다.
비밀번호 분실 버튼을 로그인 복구로 리디렉션하려면 다음을 구성합니다.
ui.web.user.questionLogin.forceLoginRecovery = true ui.web.admin.questionLogin.forceLoginRecovery = true |
비밀번호 분실 버튼 대신 로그인 복구 버튼을 사용하려면 다음을 구성합니다.
ui.web.user.disableLoginRecovery = false ui.web.admin.disableLoginRecovery = false ui.web.user.disableForgotPassword = true ui.web.admin.disableForgotPassword = true ui.web.user.disableForgotUserId = true ui.web.admin.disableForgotUserId = true |
로그인 복구 시스템에서 계정 수집을 방지하도록 하는 난독 메시지 옵션이 loginRecovery.jsp 파일에서 기본적으로 활성화됩니다. lookupUserId.jsp 파일에서도 동일한 옵션을 설정할 수 있습니다.
이 절에는 Sun Identity Manager 8.1 System Administrator’s Guide에 대한 새로운 정보와 설명서 수정 내용이 포함되어 있습니다.
여기에는 다음과 같은 정보가 포함됩니다.
다음 작업들이 어댑터에서 Identity Manager 버전 8.0의 작업 패키지로 이동되었습니다. 이러한 작업에 대해 추적을 활성화했거나 이러한 패키지를 참조하는 작업 정의를 사용자 정의한 경우에는 경로를 업데이트해야 합니다.
이전 패키지 이름 |
새 패키지 이름 |
---|---|
com.waveset.adapter.ADSyncFailoverTask |
com.waveset.task.ADSyncFailoverTask |
com.waveset.adapter.ADSyncRecoveryCollectorTask |
com.waveset.task.ADSyncRecoveryCollectorTask |
com.waveset.adapter.SARunner |
com.waveset.task.SARunner |
com.waveset.adapter.SourceAdapterTask |
com.waveset.task.SourceAdapterTask |
이 절에는 Sun Identity Manager Deployment Guide에 대한 새로운 정보와 설명서 수정 내용이 포함되어 있습니다.
Sun Identity Manager Deployment Guide의 Adding Localization Support for the WIC에는 데이터 내보내기 유형 구성 페이지에 내보내기 스키마 문자열을 다른 언어로 표시하는 방법이 설명되어 있습니다. 그러나 이러한 지침에 따르면 정식 지원 언어를 사용하지 않는 고객의 경우 이 단계를 수행해야 합니다. 정식 지원 언어에는 중국어 간체, 중국어 번체, 한국어, 일본어, 독일어, 스페인어, 프랑스어, 이탈리아어, 포르투갈어(브라질)가 있습니다. (ID-19264)
현지화된 WICMessages.properties 파일을 포함하는 현지화 jar 파일이 Identity Manager 8.1 패키지에 포함되어 있습니다. 현지화된 Identity Manager 시스템을 사용하는 경우에는 현지화된 WICMessages.properties 메시지를 볼 수 있습니다. 예를 들어 브라우저에서 lang=ja로 설정하면 Identity Manager 관리자 인터페이스 URL에 액세스할 수 있습니다.
또한 이 절에서 사용된 예제는 적절하지 않습니다. 독일어는 지원되는 언어이므로 독일어 고객은 이 절의 단계를 수행할 필요가 없습니다.
이 설명서에는 로그인 오류 코드에 대한 다음 설명이 빠져 있습니다. (ID-5657)
Identity Manager에는 사용자 정의 코드가 로그인 상태를 확인하기 위해 검사할 수 있는 다음과 같은 오류 코드가 있습니다. 실제 문자열 값은 괄호 안의 숫자 값(예: 101 또는 102)입니다. Constants.java 파일에는 다음과 같은 오류 코드가 포함되어 있습니다.
LIGHTHOUSE_USER_NOT_FOUND = 101; LIGHTHOUSE_AUTHN_FAILED = 102; RESOURCE_AUTHN_SUCCESSFUL = 104; RESOURCE_AUTHN_FAILED = 108; X509_CERT_NOT_FOUND = 110; END_USER_ATTEMPTED_LOGIN_TO_ADMIN_APP = 120; LIGHTHOUSE_USER_DISABLED = 140; LIGHTHOUSE_USER_LOCKED = 180;
시스템 구성 객체에 대한 설명에는 해당 속성에 대한 다음과 같은 정보가 포함되어 있습니다.
ProvisioningDisabledUserShouldThrow - true로 설정하는 경우 비활성화된 사용자를 자원에 프로비저닝하려는 모든 시도가 차단되고 오류가 생성됩니다. 이 속성이 true로 설정되지 않은 경우에는 프로비저닝은 차단되지만 오류가 생성되지 않습니다. (ID-20064)
security.delegation.historyLength – 기록되는 이전 위임 수를 제어합니다. (ID-13331)
runPasswordLoginOnSuccess – true로 설정하는 경우 사용자가 인증 질문에 대답하여 성공적으로 로그인하면 Identity Manager에서 암호 로그인 작업 흐름을 실행합니다. 이 등록 정보의 값은 기본적으로 false입니다. (ID-10030)
PasswordSyncThreshold - Identity Manager에서도 비밀번호 변경을 시작할 수 있는 자원에 대해 비밀번호 동기화가 활성화되어 있는 경우 이 설정을 통해 루프백 비밀번호 변경을 차단할 수 있습니다. (ID-7887) Identity Manager에서 비밀번호 변경을 시작하면 자원에 대해 비밀번호가 설정되며 PasswordSync 라이브러리에서 Identity Manager에 변경 사항을 알립니다. 그러면 Identity Manager에서는 사용자 객체의 lastPasswordDate를 현재 시간과 비교합니다. 두 시간의 차이가 PasswordSyncThreshold보다 작으면 Identity Manager에서는 비밀번호 변경을 무시합니다. 이러한 방식에서는 필요 이상의 비밀번호 변경이나 불필요한 비밀번호 변경이 적절하게 무시됩니다.
PasswordSyncResourceExcludeList – 동기화에서 항상 제외해야 하는 자원 이름이 나열됩니다.(ID-3275)
process.handleNativeChangeToAccountAttributes – true로 설정하면 속성 값 감사가 활성화됩니다. 기본적으로 이 등록 정보는 해제됩니다. (참고: 이 등록 정보를 활성화하면 조정 프로세스와 프로비저너에 대해 모두 속성 값 감사가 활성화됩니다.) (ID-3275)
sources.subject – 소스 어댑터 작업의 소유자로 지정된 관리자의 로그인 이름이 지정됩니다. (ID-19694)
sources.host – 소스 어댑터 작업이 실행되는 서버가 지정됩니다.
security.saveNoValidateAllowedFormsAndWorkflows – SaveNoValidate 작업으로 처리될 작업 흐름 및 양식의 ID가 나열됩니다. 다른 모든 양식 및 작업 흐름은 Save로 처리됩니다. 이 목록이 없는 경우에는 동작이 모든 양식과 작업 흐름에 대해 동일하게 유지됩니다. 즉, 모든 양식과 작업 흐름이 SaveNoValidate로 처리됩니다. (ID-19474)
데이터 내보내기를 통해 Identity Manager에서 관리하거나 처리하는 데이터를 주기적으로 DBMS 테이블 세트로 내보내어, 추가로 처리할 수 있습니다. 내보내기 프로세스에서는 의도적으로 사용자 정의를 수행하기도 하는데, 일부 사용자 정의 내용이 적절하게 동작하려면 수동 작업이 필요할 수 있습니다. 데이터 내보내기와 관련된 Identity Manager 구성 객체는 적절하게 보존 및 업데이트됩니다. 그러나 웹 응용 프로그램 내에서 파일에 대해 수행되는 일부 내보내기 사용자 정의의 경우에는 특수한 처리 작업이 이루어집니다.
업그레이드 프로세스 중에 Identity Manager는 $WSHOME 및 $WSHOME/exporter 디렉토리에 있는 수정되지 않은 모든 데이터 내보내기 파일을 덮어씁니다. 데이터 내보내기 파일을 변경한 경우에는 업그레이드 프로세스에서 수정된 버전이 그대로 유지되며 새 파일 버전이 $WSHOME/patches/Identity_Manager_8_1_0_0_ Date/filesNotInstalled에 설치됩니다. 새 기능을 사용자 정의 내용과 병합하는 작업은 수동으로 수행해야 합니다.
$WSHOME의 다음 파일들이 사용자 정의되는 경우가 많습니다.
model-export.dtd model-export.xml model-export.xsl exporter/exporter.jar exporter/create_warehouse.* exporter/drop_warehouse.* exporter/hbm/*.hbm.xml
수행해야 하는 업그레이드 단계는 8.0에서 데이터 내보내기를 사용자 정의했는지 여부와 8.1에서의 데이터 내보내기 계획에 따라 달라집니다.
8.0에서 데이터 내보내기를 사용자 정의했고 8.1 기능을 구현하려는 경우:
웨어하우스 스키마를 삭제합니다.
Identity Manager를 업그레이드합니다.
새 DDL을 사용하여 $WSHOME/exporter 디렉토리에 스키마를 다시 만듭니다.
데이터를 보존하면서 스키마를 수정할 수 있는 스키마 업그레이드 스크립트는 없습니다. 따라서 데이터를 보존하려면 데이터를 내보낸 후에 다시 가져와야 합니다. 8.1 웨어하우스 스키마는 이전 버전과 호환되는 테이블 및 필드입니다. 그러나 8.1에는 기존 테이블에 새 테이블 및 필드도 추가되었습니다. 필드 순서 역시 변경되었습니다. 따라서 내보내기는 DDL 및 데이터 내보내기가 아닌, 데이터 전용 내보내기여야 합니다.
사용자 정의 내용을 새 8.1 내보내기 파일에 병합합니다. model-export.xml을 사용자 정의한 경우에는 exporter.jar 파일을 재구성합니다.
새 웨어하우스 스키마를 로드합니다.
8.0에서 데이터 내보내기를 사용자 정의했지만 8.1 기능을 구현하지 않으려는 경우:
추가 단계를 수행하지 않아도 8.1로 업그레이드할 수 있습니다. 그러나 8.1 내보내기로 업그레이드하고 웨어하우스 DDL은 업그레이드하지 않으면 EXT_ADMINGROUP 테이블이 누락되었음을 나타내는 오류 메시지가 웨어하우스 구성 페이지에 표시됩니다. 이는 새 8.1 객체가 배치되었지만 이전 8.0 웨어하우스 DDL이 계속 로드됨을 나타냅니다.
8.0에서 데이터 내보내기를 사용자 정의하지 않았으며 8.1 기능을 구현하지 않으려는 경우:
웨어하우스 스키마를 삭제합니다.
Identity Manager를 업그레이드합니다.
새 웨어하우스 스키마를 로드합니다.
웨어하우스의 데이터가 그대로 유지됩니다. model-export.xml을 사용자 정의한 경우에는 DDL을 변경하지 않아도 됩니다. model-export.xml을 사용자 정의하지 않은 경우에는 새 DDL을 로드해야 합니다.
8.1을 설치한 후 model-export.xml의 8.1 버전이 있으면 http://server:port/idm/model-export.xml의 스키마 파일에서 새 데이터 유형과 속성을 확인할 수 있습니다. 새 유형 및 속성에는 8.1 릴리스 번호가 플래그로 지정됩니다.
이 절에는 Sun Identity Manager Deployment Reference에 대한 새로운 정보와 설명서 수정 내용이 포함되어 있습니다.
이 장에는 양식에 비밀번호 확인 요구를 추가하는 작업에 대한 다음 설명이 빠져 있습니다. (ID-7604)
RequiresChallenge 양식 등록 정보를 사용하여 양식을 선택하기 위한 비밀번호 확인 요구를 추가할 수 있습니다. 이 기능을 활성화하면 Identity Manager에서는 요청을 처리하기 전에 현재 로그인되어 있는 관리자에게 비밀번호를 요구합니다. 이 옵션을 지원하는 양식은 다음과 같습니다.
userForm(탭으로 구성된 사용자 양식, 마법사 사용자 양식, 기본 사용자 양식)
changePassword(기본적으로 사용자 비밀번호 변경 양식)
resetPassword(기본적으로 사용자 비밀번호 재설정 양식)
양식마다 서로 다른 등록 정보가 지정됩니다.
사용자 양식에 비밀번호 확인 요구를 추가하려면 아래와 같이 다음 RequiredElement 요소를 추가합니다. 이때 비밀번호, 전자 메일, 전체 이름은 적절하게 바꿔 입력해야 합니다.
<Property name='RequiredChallenge'> <List> <String>password</String> <String>email</String> <String>fullname</String> </List> </Property> |
등록 정보의 값은 하나 이상의 User 보기 속성 이름(applications, adminRoles, assignedLhPolicy, capabilities, controlledOrganizations, email, firstname, fullname, lastname, organization, password, resources, roles)으로 구성된 목록입니다.
changePassword 또는 resetPassword 양식에 비밀번호 확인 요구를 추가하려면 아래과 같이 다음 <RequiresChallenge> 요소를 추가합니다. 이때 비밀번호, 전자 메일 및 전체 이름은 적절하게 바꿔 입력해야 합니다.
<Property name='RequiresChallenge' value='true'/>
여기서 등록 정보 값은 "true" 또는 "false"일 수 있습니다.
양식에서 등록 정보를 "true"로 설정하면 Identity Manager가 변경을 요청하는 현재 관리자에게 Lighthouse에 로그인하는 데 사용한 비밀번호를 입력하라고 요구합니다. 요구에 실패하면, 즉 현재 관리자의 비밀번호가 입력되지 않으면 Identity Manager는 변경을 허용하지 않습니다. 요구에 성공하면 Identity Manager는 변경 요청 진행을 허용합니다. 두 비밀번호 관리 양식에는 모두 'RequiresChallenge' 양식 등록 정보를 사용할 수 있습니다. 이 등록 정보를 true로 설정하면 새 비밀번호를 지정한 후에 사용자에게 이전 비밀번호를 입력하라는 메시지가 표시됩니다.
사용자가 커서를 도움말 버튼 위에 놓으면, Identity Manager가 버전 정보를 표시하지 못하도록 하는 두 개의 사용자 정의 메시지 카탈로그 키를 만들 수 있습니다. UI_END_USER_VERSION 키는 최종 사용자 인터페이스에 대한 버전 정보를 숨기고, UI_VERSION 키는 관리자 인터페이스에서 사용됩니다.
키의 값을 빈 문자열로 설정하면 어떤 버전 정보도 표시되지 않습니다.
다음은 두 인터페이스에 대한 버전 정보를 비활성화한 예제입니다.
<Waveset> <Configuration name="sampleCustomCatalog"> <Extension> <CustomCatalog id="defaultCustomCatalog" enabled="true"> <MessageSet language="en" country="US"> <Msg id="UI_END_USER_VERSION"></Msg> <Msg id="UI_VERSION"></Msg> </MessageSet> </CustomCatalog> </Extension> </Configuration> </Waveset>
"양식" 장에 다음 설명이 빠져 있습니다. (ID-18869)
기본적으로 비밀번호 변경 양식은 두 가지 방식으로 구현됩니다.
최종 사용자 비밀번호 변경 양식은 기본 비밀번호 변경 양식입니다. 이 양식에는 사용자가 비밀번호를 변경하는 데 사용할 수 있는 간단한 필드 세트가 있습니다. 사용자에게 할당된 모든 자원에 대한 비밀번호 정책은 집계 및 요약되며, Identity Manager가 할당된 모든 자원에 비밀번호 변경 사항을 적용합니다.
기본 비밀번호 변경 양식은 관리자 및 사용자 인터페이스에서 모두 제공됩니다. 사용자에게 할당된 자원에 대한 정보가 포함된 이 양식을 사용하면, Identity Manager에서 비밀번호를 변경할 자원을 사용자가 개별적으로 선택할 수 있습니다.
두 비밀번호 관리 양식에는 모두 'RequiresChallenge' 양식 등록 정보를 사용할 수 있습니다. 이 등록 정보를 true로 설정하면 새 비밀번호를 지정한 후에 사용자에게 이전 비밀번호를 입력하라는 메시지가 표시됩니다.
이 설명서의 양식 및 작업 흐름 장에는 <Variable> 요소에 범위를 할당하는 방법에 대한 다음 설명이 빠져 있습니다. (ID-14915)
Identity Manager에서는 <Variable> 요소를 선언할 때 해당 모든 요소에 범위를 할당합니다. 범위 속성에 값을 할당하지 않으면 Identity Manager에서 이 속성에 로컬 값을 할당합니다. 즉, 변수가 선언된 XPRESS 섹션 내에서만 해당 변수에 액세스할 수 있습니다.
범위를 정의하는 추가 Variable 속성은 다음과 같습니다.
input -- <Variable> 요소의 범위가 로컬이며 호출자가 값을 초기화할 수 있음을 선언합니다.
output -- <Variable> 요소의 범위가 로컬이지만 호출자에게 이 요소가 반환될 수 있음을 선언합니다.
external -- <Variable> 범위가 로컬이 아님을 선언합니다. 즉, 이 변수에 값을 할당하면 변수를 처음으로 선언한 범위에서 값이 할당됩니다.
이 장에는 Identity Manager 화이트리스트 기능에 대한 다음 설명이 빠져 있습니다. (ID-19474)
Identity Manager 화이트리스트 기능을 사용하면 SaveNoValidate 작업을 사용하는 양식 및 작업 흐름을 ID 또는 양식 이름 목록과 비교하여 확인할 수 있습니다. Identity Manager는 화이트리스트에서 양식 이름 또는 양식 소유자 ID를 확인합니다. ID 목록(saveNoValidateAllowedFormsAndWorkflows)은 시스템 구성 객체의 보안 속성에 있습니다. 양식 이름 또는 소유자 ID가 화이트리스트에 있으면 양식이나 작업 흐름에서 SaveNoValidate 작업을 사용할 수 있습니다. 양식 이름이나 소유자 ID가 화이트리스트에 없으면 Save 작업을 사용하여 양식 또는 작업 흐름이 처리됩니다. 화이트리스트가 없는 경우에는 모든 양식 및 작업 흐름을 SaveNoValidate로 처리할 수 있습니다.
사용자의 배포에서 이 기능을 구현하려면 시스템 구성 객체의 saveNoValidateAllowedFormsAndWorkflows 목록에 SaveNoValidate를 사용하는 양식이나 작업 흐름을 추가해야 합니다. 추가해야 하는 ID 또는 양식 이름을 보려면 syslog를 확인하거나 com.waveset.ui.util.GenericEditForm에 대해 추적 레벨 4를 설정하고 SaveNoValidate를 사용하는 모든 사용자 정의 양식 또는 작업 흐름을 제출합니다. ID를 포함한 경고가 기록됩니다. syslog에 "null" 양식 이름이 기록되는 경우에는 실행되었던 TaskDefinition의 양식에 이름 속성이 있는지 확인합니다.
작업 흐름 장에는 handleNativeChangeToAccountAttributes 작업 흐름에 대한 다음 설명이 빠져 있습니다. (ID-3275)
Identity Manager는 자원 계정의 감사 가능 속성 값에 대한 내부 변경 사항, 즉 Identity Manager를 통해 수행하지 않은 변경 사항을 감지할 때마다 handleNativeChangeToAccountAttributes 작업 흐름을 실행하여 응답합니다. 이 작업 흐름은 다음 시스템 구성 객체 속성과 연결되어 있습니다.
<Attribute name='process'> <Object> <Attribute name='handleNativeChangeToAccountAttributes' value='Audit Native Change To Account Attributes'/> </Object> </Attribute>
외부 Lighthouse 변경 감사 필터를 활성화한 경우 이 작업 흐름은 내부 변경 이벤트를 이벤트 로그에 기록합니다. 그 이외의 경우에는 Identity Manager에서 이벤트가 무시됩니다. 경고: 위에 나와 있는 기본 작업 흐름을 대체하는 모든 작업 흐름에서 호출할 메소드를 선택할 때는 주의해야 합니다.
Identity Manager는 자원 계정 불러오기를 통해 내부 변경이 표시될 때마다 이 작업 흐름을 실행하므로, 동일한 자원 계정의 또 다른 불러오기를 트리거하는 메소드나 작업 흐름을 호출해서는 안 됩니다. 예를 들어 사용자 보기를 어셈블하는 getView(User), checkoutView(User), checkinView(User) 등의 모든 WorkflowServices 메소드를 호출하면 무한 루프가 발생합니다.
Identity Manager는 작업 흐름을 실행하여 각 내부 변경을 처리하므로 내부 변경 이벤트를 후크할 수 있으며, 기본 내부 변경 작업 흐름을 대체하거나 이 작업 흐름에 다른 작업 흐름을 추가하여 해당 내부 변경을 적절하게 처리할 수 있습니다. 예를 들어 관리자 또는 사용자에게 전자 메일을 보내거나 데이터베이스에 이벤트를 기록하거나, 내부 변경을 제외하는 업데이트를 대기열에 삽입하거나, 해당 내부 변경을 가져온 다음 다른 자원에 다시 보낼 수 있습니다.
이 설명서의 작업 흐름 장에는 소스 어댑터 작업의 주체 또는 관리자를 지정하는 방법에 대한 다음 설명이 빠져 있습니다. (ID-19694)
소스 어댑터 작업에 주체나 관리자를 할당한 다음 시스템 구성 객체의 다음 속성을 편집하여 작업이 실행되는 서버를 지정할 수 있습니다. source.subject는 이 작업의 소유자로 지정된 관리자의 로그인 이름을 지정합니다. sources.host는 작업이 실행되는 서버를 지정합니다. 구성 객체의 새 값은 기본적으로 다음과 같습니다.
<Attribute name='sources'> <Object> <Attribute name='hosts'/> <!-- any host is the default --> <Attribute name='subject' value='Configurator'/> </Object> </Attribute>
이 절에는 Sun Identity Manager 8.1 Resources Reference에 대한 새로운 정보와 설명서 수정 내용이 포함되어 있습니다.
Identity 커넥터 설명에는 ConnectorAdapter가 run() 메소드를 구현하는 방법에 대한 다음 정보가 빠져 있습니다. runResourceAction 서비스에 전달되는 인수는 ResourceAction에 정의되어 있는 스크립트에 직접 스크립트 변수로 전달됩니다. (ID-19856)
이 절에는 Sun Identity Manager Service Provider 8.1 Deployment에 대한 새로운 정보와 설명서 수정 내용이 포함되어 있습니다.
ResourceAttribute 요소에는 ValidationPolicy 요소가 포함될 수 있습니다. 검증 정책을 통해, 사용자가 자원 매개 변수 페이지에서 지정하는 값이 별도의 정책 객체에 정의되어 있는 요구사항을 충족하는지 확인할 수 있습니다.
다음은 어댑터가 포트 정책을 사용하여 지정된 값이 유효한지 확인하도록 하는 샘플입니다. 기본 포트 정책에서는 값이 1과 65536 사이의 정수인지 확인합니다.
<ResourceAttribute name=.Port. value=.123.> <ValidationPolicy> <ObjectRef type=.Policy. id=.#ID#PortPolicy. name=.Port Policy./> </ValidationPolicy> </ResourceAttribute>
이 FAQ에서는 Identity Manager IDE 사용과 관련하여 일반적으로 묻는 질문에 대답합니다.
정보는 다음과 같은 범주로 구성됩니다.
어떠한 버전의 Netbeans를 사용해야 합니까?
응답:사용 중인 Netbeans 플러그인 버전용으로 제공된 Identity Manager 제품 설명서에 참조된 Netbeans 버전을 사용합니다.
패치 릴리스가 주요 기능을 차단할 수 있기 때문에 참조된 해당 버전을 항상 사용하십시오.
Netbeans 플러그인이 작동 중인 상태에서 어떤 작업을 수행한 후 Netbeans 플러그인이 더 이상 작동하지 않습니다. 이 문제의 원인은 무엇입니까?
응답:이 문제는 일반적으로 .netbeans 디렉토리에 있는 손상된 파일에 의해 발생합니다. 일반적으로 .netbeans 디렉토리를 삭제하고 NetBeans 플러그인을 다시 설치하면 문제가 해결됩니다. .netbeans 디렉토리를 삭제하면 NetBeans 플러그인이 효과적으로 제거됩니다. 모든 사용자 설정을 잃게 되지만 프로젝트의 내용은 안전하게 유지됩니다.
단계는 다음과 같습니다.
NetBeans를 종료합니다.
.netbeans 디렉토리를 삭제합니다.
NetBeans를 시작합니다.
NetBeans 플러그인을 설치합니다.
NetBeans를 다시 시작합니다.
프로젝트를 구성하고 실행하는 데 너무 많은 시간이 소요되고 Identity Manager에서 많은 파일을 복사하는 것 같습니다. 이 문제의 원인은 무엇입니까?
응답:이 문제는 다음과 같은 이유로 발생할 수 있습니다.
현재 사용하고 있는 플러그인이 Identity Manager 7.0 또는 7.1입니다.
Identity Manager IDE 8.0 플러그인을 사용합니다. 성능 향상을 위해 Identity Manager IDE 8.0 CBE(Configuration Build Environment)에 대해 여러 가지 조정이 적용되었습니다.
불필요하게 정리 명령을 사용하는 경우
Clean Project 또는 Clean And Build Project를 사용하는 경우 Identity Manager IDE에서는 수많은 파일이 들어 있는 전체 image 디렉토리를 삭제합니다. 다음 구성 시 Identity Manager IDE에서는 이러한 파일을 idm-staging에서 모두 복사합니다.
Identity Manager IDE를 효율적으로 사용하려면 Clean 명령을 사용하는지에 대해 이해해야 합니다. 자세한 내용은 Identity Manager IDE README.txt 파일의 "Clean 사용 시기" 절을 참조하십시오.
Identity Manager 프로젝트를 만든 다음 소스 제어에 체크인해야 하는 파일은 무엇입니까?
응답:자세한 내용은 Identity Manager IDE README.txt의 "CVS 모범 사례" 절을 참조하십시오.
질문:CVS에서 프로젝트 관리를 사용하는 모범 사례에는 어떠한 것이 있습니까?
응답:자세한 내용은 Identity Manager IDE README.txt의 "CVS 모범 사례" 절을 참조하십시오.
질문:객체를 언제 저장소로 가져옵니까?
응답:자세한 내용은 저장소 작업을 참조하십시오.
질문:프로젝트에 새 JAR을 추가하려면 어떻게 합니까?
응답:Identity Manager IDE README.txt의 "새 JAR 종속성을 추가하는 방법" 절을 참조하십시오.
내 Sandbox 저장소에 사용해야 하는 저장소는 무엇입니까?
응답:Sandbox에 대해 포함된 저장소를 사용합니다(특히 HsSQL 저장소가 사용 가능한 Identity Manager 7.1 이상을 사용할 경우). 포함된 저장소를 사용하지 않으면 기능을 잃게 됩니다.
자세한 내용은 Identity Manager IDE README.txt의 "저장소 작업" 절을 참조하십시오.
질문:언제 객체를 자동으로 가져옵니까?
응답:객체를 자동으로 가져오도록 Identity Manager IDE를 구성해야 합니다.
단계는 다음과 같습니다.
IdM 메뉴에서 저장소 > 포함된 저장소 관리를 선택합니다.
포함된 저장소 관리 대화 상자에서 Identity Manager 객체 자동 게시 옵션을 활성화합니다.
사용자 저장소를 지정한 경우나 Identity Manager 프로젝트(원격)에 대해서는 이 옵션을 사용할 수 없습니다.
프로젝트 > 프로젝트 실행 또는 프로젝트 > 프로젝트 디버그를 선택합니다.
Identity Manager IDE에서는 프로젝트를 마지막 실행한 이후에 변경된 모든 객체를 자동으로 가져옵니다.
Identity Manager 객체를 자동으로 게시하면 서버를 시작하는 데 필요한 시간이 늘어납니다. 서버 시작 시간을 최소화하려면 이 옵션을 비활성화하고 객체를 저장소에 명시적으로 업로드합니다.
객체를 업로드하는 가장 효율적인 방법은 무엇입니까?
응답:다음 방법 중 하나를 사용하여 수정된 객체를 업로드합니다.
프로젝트 트리에서 하나 이상의 편집된 객체를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 객체 업로드를 선택합니다.
여러 객체를 업로드하려면 Ctrl 키를 누른 상태에서 목록에서 객체를 선택합니다.
하나 이상의 편집된 객체를 선택한 다음 IdM 메뉴에서 저장소 > 객체 업로드를 선택합니다. 업로드할 객체를 선택할 수 있도록 대화 상자가 표시됩니다.
두 방법 모두 객체를 서버에 직접 업로드하기 때문에 캐시 지연 문제가 발생하지 않으므로 프로젝트 실행 또는 프로젝트 디버그를 사용할 때보다 훨씬 빠릅니다. 객체 업로드 기능은 사용 중인 저장소에 상관없이 사용할 수 있습니다.
Netbeans에 포함된 응용 프로그램 서버는 다음 프로젝트 작업을 수행할 때마다 자동으로 종료됩니다.
프로젝트 정리
델타 배포 만들기
Jar 만들기
프로젝트 디버그
포함된 저장소 관리
프로젝트 프로필링
프로젝트 실행
Identity Manager IDE 디버거가 느립니다. 이 문제의 원인은 무엇입니까?
응답:디버거 성능을 개선하려면 다음 작업을 수행합니다.
다음과 같은 방법으로 Tomcat의 HTTP 모니터를 항상 비활성화합니다.
Identity Manager IDE 런타임 탭을 선택합니다.
서버 노드를 확장하고 번들로 제공된 Tomcat을 마우스 오른쪽 버튼으로 누르고 등록 정보를 누릅니다.
HTTP 모니터 활성화 옵션을 비활성화한 다음 대화 상자를 닫습니다.
다음에 Tomcat을 시작하면 HTTP 모니터가 비활성화됩니다.
Java를 디버깅하지 않는 경우 프로젝트 > 프로젝트 실행을 선택한 다음 디버거 연결 > Identity Manager XML 객체 디버거를 선택하여 XPRESS 디버거만 사용합니다.
원격이 아닌 Identity Manager IDE 프로젝트에 대해 프로젝트 > 프로젝트 디버그를 선택하면 XPRESS 디버거 및 Java 디버거가 모두 시작되며 Java 디버거에 의해 상당한 오버헤드가 추가됩니다.
디버거의 중단점을 설정할 수 없습니다. 이 문제의 원인은 무엇입니까?
응답:다음과 같은 경우에는 중단점을 설정할 수 없습니다.
NBM을 설치했지만 Netbeans을 다시 시작하지 않은 경우
XML에 <Waveset> 래퍼 요소가 포함되어 있는 경우
Identity Manager IDE는 <Waveset> 래퍼 요소를 다중 객체 파일로 구문 분석하기 때문에 기본적으로 Identity Manager IDE에서는 이 래퍼 요소로 시작하는 파일을 무시합니다.
다중 객체 파일에서는 다음 기능이 작동하지 않습니다.
디버거
규칙 테스터
양식 미리 보기
편집기
가져오기 파일 생성기
객체 업로드
객체 비교
기본적으로 다중 객체 파일에 대해서는 가져오기만 수행할 수 있습니다. 프로젝트의 최상위 가져오기 파일만 <Waveset> 래퍼 요소를 포함해야 합니다.
디버거에 중단점을 설정했지만 중단점에서 일시 중지되지 않습니다. 이 문제의 원인은 무엇입니까?
응답:다음 두 가지 사항을 확인합니다.
객체 이름에 CBE 대체 문자열(%%)이 없는지 확인합니다. CBE 대체 문자열은 객체 이름에 사용할 수 없습니다.
실행 중이라고 생각하는 코드가 실제로 실행되고 있는지 확인합니다. 추적을 추가하고 내용이 인쇄되는지 확인합니다.
Netbeans에서 규칙을 개발할 때 규칙 라이브러리에 대해 디자인 모드를 사용할 수 없는 이유는 무엇입니까?
응답:디자인 모드 기능은 프로젝트 보기의 탐색기 트리에서 사용할 수 있습니다. 다음 단계를 따르십시오.
라이브러리 노드를 확장하고 규칙을 마우스 오른쪽 버튼으로 누릅니다.
팝업 메뉴가 표시되면 등록 정보를 선택한 다음 본문을 누릅니다.
일반적으로 Identity Manager는 자원 객체 및 기능을 현지화하지 않습니다. 이런 요소 대부분이 Identity Manager를 초기화하는 동안 init.xml을 통해 로드되는 샘플이며, 사용자 정의 레벨에 따라 실제 고객 배포 간에 객체 유형 속성이 다를 수도 있기 때문입니다. 다음은 사용자에게 영어로 표시될 수 있는 영역의 목록입니다. (ID-16349)
기본 사용자 양식 및 프로세스 매핑
예: 사용자 편집 > 보안 > 사용자 양식 풀다운 메뉴
예: 구성 > 양식 및 프로세스 매핑
구성 객체 속성 이름
예: 구성 > 사용자 인터페이스, displayPasswordExpirationWarning과 같은 연결된 이름
기본 작업
작업 서식 파일
예: 서버 작업 > 작업 구성 > 테이블에서 사용 가능한 작업 서식 파일 이름
작업 유형 레이블
예: 서버 작업 > 작업 실행 > 사용 가능한 작업 테이블에 있는 둘째 열의 항목
작업 정의
예: 서버 작업 > 작업 찾기 > 작업 정의를 선택하는 둘째 풀다운 메뉴
기본 보고서 이름
예: 보고서 > 보고서 실행 > 보고서 테이블 아래에 있는 보고서 이름
기본 정책 이름
예: 준수 > 정책 관리 > 감사 정책 이름 및 설명
기본 기능 이름
예: 사용자 편집 > 보안 > 사용 가능한 기능
기본 보고서 및 그래프 이름
프로세스/작업 흐름 다이어그램 애플릿
Identity Manager에서는 사용자의 배포에서 양식, Java, 규칙, 작업 흐름 및 XPRESS의 성능 문제를 해결하는 데 도움이 되는 프로필러 유틸리티를 제공합니다.
양식, Java, 규칙, 작업 흐름 및 XPRESS는 모두 성능 및 확장성 문제의 원인이 될 수 있습니다. 프로필러는 이러한 다양한 영역에 소요되는 시간을 프로필링하여, 해당 양식, Java, 규칙, 작업 흐름 또는 XPRESS 객체로 인해 성능 및 확장성 문제가 발생하는지 확인하고 그럴 경우 이러한 객체의 어느 부분이 문제의 원인인지를 확인할 수 있도록 합니다.
이 절에서는 Identity Manager 프로필러를 사용하는 방법을 설명하고 사용자의 배포에서 성능 문제를 해결하는 방법을 알려주는 자습서를 제공합니다.
이 정보는 다음 항목으로 구성되어 있습니다.
Identity Manager 프로필러는 버전 7.1 Update 1 이상에서만 지원됩니다.
이 절에서는 Identity Manager 프로필러의 특징과 기능을 개략적으로 설명합니다. 이 정보는 다음과 같이 구성됩니다.
프로필러 유틸리티를 사용하여 다음을 수행할 수 있습니다.
프로필링 데이터의 "스냅샷"을 만들 수 있습니다.
스냅샷은 수집한 모든 프로필 결과를 마지막으로 재설정한 이후에 누적된 프로필링 결과입니다.
네 개의 서로 다른 데이터 보기에 스냅샷 결과를 표시할 수 있습니다.
호출 트리 보기는 시스템 전체의 호출 타이밍 및 호출 횟수를 보여 주는 트리 테이블을 제공합니다.
핫스폿 보기는 상위 체인에 상관없이 총 호출 타이밍을 보여 주는 일반 노드 목록을 제공합니다.
역 추적 보기는 해당 노드(루트 노드)를 호출한 모든 호출 체인을 보여 주는 역 호출 스택을 제공합니다.
호출 수신자 보기는 상위 체인에 상관없이 루트 노드의 총 호출 트리를 제공합니다.
스냅샷에 포함할 정보의 종류를 지정합니다.
양식, 작업 흐름 및 XPRESS의 모든 요소를 포함하거나 특정 요소 집합으로 컨텐트를 제한할 수 있습니다.
계측에 포함하거나 제외할 특정 Java 메소드 및 구성자를 선택할 수 있습니다. Identity Manager 클래스 및 사용자 정의 클래스의 계측이 지원됩니다.
프로젝트 스냅샷을 다음과 같이 관리할 수 있습니다.
프로젝트의 nbproject/private/idm-profiler 디렉토리 또는 프로젝트 외부의 임의의 위치에 스냅샷을 저장합니다.
IDM 프로필러 보기의 저장된 스냅샷 섹션에서 모든 저장된 스냅샷 목록을 볼 수 있습니다.
프로젝트에서 스냅샷을 열거나 프로젝트 외부의 임의의 위치에서 스냅샷을 로드합니다.
스냅샷을 삭제합니다.
이름별로 특정 노드를 검색합니다.
이 절에서는 프로필러가 다음 Identity Manager 객체에 대한 소스를 조회하고 관리하는 방법을 설명합니다.
호출 트리 보기 또는 핫스폿 보기에서 Java 메소드, 작업 흐름, 양식, 규칙 또는 XPRESS에 해당하는 노드를 두 번 눌러 해당 노드에 대한 소스를 볼 수 있습니다.
프로필러를 사용하여 스냅샷을 찍으면 서버에서 모든 프로필링 데이터를 평가하고 해당 데이터가 종속되는 소스를 검색합니다. 그런 다음 서버는 저장소에서 이러한 모든 소스를 불러와서 스냅샷에 포함합니다. 따라서 스냅샷에 표시된 Identity Manager 객체가 스냅샷이 캡처된 지점을 정확하게 반영하는지 확인할 수 있습니다.
이 프로세스에서는 스냅샷의 크기가 추가되지만, 실제로 소스 크기는 총 크기에 비해 상대적으로 작습니다. 따라서 소스 파일을 개별적으로 보낼 필요 없이 스냅샷을 Sun 고객 지원 담당자에게 보낼 수 있습니다.
Java 소스의 스냅샷을 찍으면 클라이언트에서 해당 스냅샷을 다운로드한 다음 스냅샷을 통해 프로젝트에서 참조되는 모든 Java 소스를 캡처합니다. 스냅샷을 저장하면 클라이언트는 소스를 압축하여 스냅샷의 끝에 첨부합니다.
그런 다음 사용자가 스냅샷을 보고 Java 소스로 이동하면 클라이언트는 먼저 스냅샷의 컨텐트를 확인합니다. 클라이언트는 거기서 컨텐트를 찾을 수 없는 경우 프로젝트의 컨텐트를 확인합니다. 이 프로세스를 통해 사용자 정의 Java 코드와 Identity Manager 코드 모두의 프로필링 데이터를 포함하는 스냅샷을 보낼 수 있습니다.
Java 소스 스냅샷에서는 소스가 서버에서 최신 버전이거나 항상 사용 가능하다고 간주하지 마십시오.
다음 절에서는 프로필러가 제공하는 결과를 평가할 때 고려할 정보에 대해 설명합니다.
루트 노드의 자체 시간 통계를 계산하기 위해 프로필러에서는 루트 노드의 총 시간에서 모든 하위 노드의 시간을 뺍니다.
따라서 계측되지 않은 하위 노드 시간은 루트 노드의 자체 시간에 반영됩니다. 루트 노드에 상당한 자체 시간이 있을 경우 그 이유를 확실하게 조사해야 합니다. 적절한 메소드가 계측되지 않았을 수도 있습니다. 그럴 경우 자체 시간이 발생한 이유를 잘못 파악하게 됩니다.
예를 들어, 메소드 A가 메소드 B를 호출한다고 가정해 봅시다.
메소드 A를 호출하는 데 총 10초(총 시간에 B 호출 시간 포함)가 걸리고 B를 호출하는 데 총 10초가 걸립니다.
A와 B 모두 계측된 경우 호출 스택은 해당 정보를 반영합니다. A는 자체 시간이 0초로 표시되고 B는 자체 시간이 10초(실제로 B에서 10초가 소요됨)로 표시됩니다. 그러나 B가 계측되지 않은 경우에는 A를 호출하는 데 10초가 걸리고 A의 자체 시간이 10초로 표시됩니다. 따라서 B가 아니라 A에 직접적인 문제가 있다고 가정할 수 있습니다.
특히 초기 컴파일 중에 JSP에서 큰 자체 시간을 확인할 수 있습니다. 수집된 결과를 재설정한 다음 페이지를 다시 표시하면 자체 시간 값이 훨씬 작아집니다.
Java 계측 전략에는 제한이 있기 때문에 this() 또는 super()에 대한 초기 호출은 구성자 호출의 하위가 아니라 형제로 표시됩니다. 다음 예를 참조하십시오.
class A { public A() { this(0); } public A(int i) { } } and: class B { public static void test() { new A(); } } The call tree will look like this: B.test() -A.<init>(int) -A.<init>() Rather than this: B.test() -A.<init>() -A.<init>(int) |
ReconTask.WorkerThread.run() 또는 TaskThread.WorkerThread.run()과 같은 &Product_IDMgr의 여러 데몬 스레드에 소요된 시간이 표면상 많은 것으로 나타나더라도 이를 잘못 판단하지 마십시오. 이중 대부분의 시간은 이벤트를 기다리는 동안 휴면 상태에서 소비된 시간입니다. 이러한 추적을 조사하여 이벤트를 처리할 때 실제로 소요된 시간을 확인해야 합니다.
이 절에서는 프로필러를 시작하는 방법과 프로필러의 다양한 그래픽 사용자 인터페이스 기능을 사용하는 방법을 설명합니다. 이 정보는 다음과 같이 구성됩니다.
프로필러는 상당히 메모리 집약적이므로 서버와 Netbeans JVM(Java Virtual Machine) 모두의 메모리를 대폭 늘려야 합니다.
서버의 메모리를 늘리려면
Netbeans 창을 열고 런타임 탭을 선택합니다.
서버 노드를 확장하고 번들로 제공된 Tomcat을 마우스 오른쪽 버튼으로 누르고 메뉴에서 등록 정보를 선택합니다.
서버 관리자 대화 상자가 표시되면 연결 탭의 HTTP 모니터 사용 확인란을 선택 취소합니다.
플랫폼 탭을 선택하고 VM 옵션을 -Xmx1024M으로 설정한 다음 닫기를 클릭합니다.
Netbeans JVM 메모리를 늘리려면
netbeans-installation-dir\etc\netbeans.conff 파일을 열고 다음 행을 찾습니다.
netbeans_default_options="-J-Xms32m -J-Xmx ...
-J-Xmx 값을 -J-Xmx 1024M으로 변경합니다.
파일을 저장한 다음 닫습니다.
끝나면 다음 절에 설명한 대로 프로필러를 시작할 수 있습니다.
Identity Manager IDE 창에서 다음과 같은 방법을 사용하여 프로필러를 시작할 수 있습니다.
메뉴 표시줄에 있는 주 프로젝트의 Identity Manager 프로필러 시작 아이콘을 누릅니다.
주 Identity Manager 프로젝트의 버전이 7.1 Update 1 이상이면 주 프로젝트의 Identity Manager 프로필러 시작 아이콘이 활성화됩니다.
메뉴 표시줄에서 창 -> IDM 프로필러를 선택합니다.
Identity Manager 프로필러 창이 탐색기 창에 나타납니다. 이 창의 현재 프로젝트 드롭다운 메뉴에서 Identity Manager 프로젝트를 선택한 후에 컨트롤 섹션에 있는 Identity Manager 프로필러 시작 아이콘을 누릅니다.
프로젝트 창에서 프로젝트를 마우스 오른쪽 버튼으로 누른 다음 팝업 메뉴에서 Identity Manager 프로필러 시작을 선택합니다.
프로젝트 창에서 프로젝트를 선택한 다음 메뉴 표시줄에서 IdM -> Identity Manager 프로필러 시작을 선택합니다.
프로필러를 시작하면 사용하려는 프로필링 옵션을 지정할 수 있는 프로필러 옵션 대화 상자가 표시됩니다. 이러한 옵션을 설정하는 지침은 프로필러 옵션 지정에 나와 있습니다.
이 절에서는 프로필러 그래픽 사용자 인터페이스의 기능과 그 기능을 사용하는 방법에 대해 설명합니다. 이 정보는 다음과 같이 구성됩니다.
프로필러 옵션 대화 상자는 다음 탭으로 구성되어 있습니다.
이 탭의 옵션을 사용하여 프로필링할 객체 및 프로필에 표시할 요소를 나타냅니다.
프로필러 옵션을 지정한 후 확인을 눌러 프로필러를 시작합니다. 프로젝트 구성에 따라 프로필러는 다음 두 가지 중 하나를 수행합니다.
일반 Identity Manager 프로젝트를 포함된 Identity Manager 인스턴스와 함께 사용하는 경우 프로필러는 전체 빌드를 수행하고, NetBean의 응용 프로그램 서버에 이를 배포한 다음 프로필러를 시작합니다.
일반 Identity Manager 프로젝트를 외부 Identity Manager 인스턴스 또는 원격 Identity Manager 프로젝트와 함께 사용하는 경우 프로필러는 프로젝트에 대해 구성된 Identity Manager 인스턴스에 첨부됩니다.
IdM -> Identity Manager 인스턴스 설정을 선택하여 프로젝트에 대한 Identity Manager 인스턴스 동작을 제어할 수 있습니다.
모드 탭은 다음 옵션을 제공합니다.
IDM 객체만: 양식, 규칙, 작업 흐름 및 XPRESS 객체를 프로필링하려면 선택합니다. 프로필에서 Java 객체를 제외시킵니다.
Java 및 IDM 객체: 양식, Java, 규칙, 작업 흐름 및 XPRESS 객체를 프로필링하려면 선택합니다.
Java 및 IDM 객체 옵션은 일반 Identity Manager 프로젝트를 외부 Identity Manager 인스턴스와 함께 사용하거나 원격 Identity Manager 프로젝트를 사용하는 경우 사용할 수 없습니다.
프로필러가 실행 중인 동안에는 모든 옵션을 변경할 수 없습니다. 옵션을 변경하려면 프로필러를 중지해야 합니다.
IDM 객체 필터 탭은 다음과 옵션을 제공합니다.
IDM 객체 세부 정보 표시
익명 소스 포함
익명 소스는 로그인 양식, MissingFields 양식과 같이 즉석에서 생성되는 양식 또는 양식의 일부이며 Identity Manager 저장소에 있는 영구 양식에는 해당되지 않습니다.
익명 소스를 스냅샷에 포함하려면 이 확인란을 선택합니다.
익명 소스를 스냅샷에서 제외하려면 이 확인란을 선택 취소합니다.
Java 필터 탭을 선택하여 다음을 수행할 수 있습니다.
Java 필터 포함 또는 제외
새 필터 만들기
기존 필터 삭제
기본 필터 복원
Java 필터는 메소드 패턴으로 제공되며, 정규 메소드 이름에 따라 포함 또는 제외되는 패턴으로 표시됩니다. 여기서 정규 메소드 이름은 다음과 같습니다.
fully-qualified-class-name.method-name(parameter-type-1, parameter-type-2, ...)
구성자의 경우 method-name은 <init>입니다.
다음은 몇 가지 예입니다.
모든 구성자를 제외하려면 제외 확인란을 활성화하고 다음 필터를 추가합니다.
*.<init>(*)
단일 org.w3c.dom.Element 매개 변수를 사용하여 모든 구성자를 제외하려면 제외 확인란을 활성화하고 다음 필터를 추가합니다.
*.<init>(org.w3c.dom.Element)
모든 Identity Manager 클래스를 제외하려면 제외 확인란을 활성화하고 다음 필터를 추가합니다.
"com.waveset.*" "com.sun.idm.*"
사용자 정의 코드만 지정하려면 제외 확인란을 비활성화하고 초기 * include 필터를 제거한 다음 필터를 추가합니다.
"com.yourcompany.*"
필터가 사용자 정의 클래스와 Identity Manager 클래스에만 적용되기 때문에 현재 마지막 두 예제는 동일합니다.
필요한 경우 build.xml의 다음 행을 적절하게 수정하여 다른 jar을 지정할 수 있습니다. 예를 들면 다음과 같습니다.
<instrument todir="${lighthouse-dir-profiler}/WEB-INF" verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" excludeMethods="${profiler.excludes}"> <fileset dir="${lighthouse-dir}/WEB-INF"> <include name="lib/idm*.jar"/> <include name="classes/**/*.class"/> </fileset> </instrument> |
기본적으로 구성에는 모든 사용자 정의 클래스와 대부분의 Identity Manager 클래스가 포함되어 있습니다. 많은 Identity Manager 클래스들이 활성화되면 프로필러를 차단하기 때문에 강제로 제외됩니다.
예를 들어, 작업 흐름, 양식 및 XPRESS 엔진의 클래스가 제외되거나, 프로필러가 Java 및 Identity Manager 객체를 프로필링할 때 알 수 없는 스냅샷을 생성합니다.
Java 필터는 IDM 객체 필터보다 훨씬 세밀한 필터링을 제공합니다. Java 계측에서는 실행 시간에 많은 오버헤드를 추가하므로, 프로필링 결과가 완전히 왜곡될 수 있습니다. Identity Manager 객체는 컴파일되는 것이 아니라 해석되는 것이므로 계측 오버헤드를 무시해도 좋습니다. 예를 들어, 작업 흐름 A를 제외하고 작업 흐름 B 등을 포함하는 근본적인 이유는 없습니다.
프로필러가 실행 중인 동안에는 Java 필터를 수정할 수 없습니다. Java 필터를 변경하려면 프로필러를 중지해야 합니다.
기타 탭은 다음 옵션을 제공합니다.
실행 시간이 0인 스냅샷 노드 제거:
실행 시간이 0인 경우에도 모든 실행된 항목에 대한 호출 정보를 스냅샷에 포함하려면 이 옵션을 비활성화합니다(기본값).
실행 시간이 없는 노드의 경우에도 호출 수가 있는 것이 유용할 수 있습니다.
가장 관련 있는 프로필링 데이터에 집중할 수 있도록 이러한 노드를 제거하려면 이 옵션을 활성화합니다. 또한 이 옵션을 활성화하면 프로필러 스냅샷 크기를 대폭 줄일 수 있습니다.
프로필러를 시작할 때 자동으로 브라우저 열기:
프로필러를 시작하면 브라우저가 자동으로 열려서 프로필링할 Identity Manager 인스턴스를 가리키게 하려면 이 옵션을 활성화합니다(기본값).
브라우저를 열지 않으려면 이 옵션을 비활성화합니다.
스냅샷에 Java 소스 포함:
프로필링 데이터에 참조되는 모든 Java 메소드에 대한 Java 소스를 스냅샷에 포함시키려면 이 옵션을 활성화합니다(기본값). 필드에 있는 스냅샷에 대해 항상 이 설정을 사용해야 합니다. 사용자 정의 Java는 상대적으로 작으며 지원하는 데 매우 중요합니다.
Identity Manager를 프로필링하고 전체 Identity Manager 소스를 사용할 수 있는 경우에만 이 옵션을 비활성화합니다.
이 경우에는 Identity Manager 소스를 포함하지 않을 수 있습니다. 소스를 포함하면 매우 큰 스냅샷이 생성될 수 있기 때문입니다. 자세한 내용은 프로필러에서 소스를 찾아 관리하는 방법을 참조하십시오.
IDM 프로필러 보기는 다음 영역으로 구성되어 있습니다.
현재 프로젝트 영역은 모든 현재 프로젝트를 나열하는 드롭다운 메뉴로 구성되어 있습니다. 이 메뉴를 사용하여 프로필링할 프로젝트를 선택합니다.
제어 영역에는 다음 표에 설명된 네 가지 아이콘이 있습니다.
아이콘 |
이름 |
목적 |
---|---|---|
|
Identity Manager 프로필러 시작 |
프로필러를 시작하고 프로필러 옵션 대화 상자를 엽니다. |
|
Identity Manager 프로필러 중지 |
프로필러를 중지합니다. |
|
수집된 결과 재설정 |
이 지점에서 수집한 모든 프로필 결과를 재설정합니다. |
|
프로필링 수정 |
설정을 변경하여 현재 프로필 결과를 수정할 수 있도록 프로필러 옵션 대화 상자를 다시 엽니다. |
상태 영역에서는 호스트에 연결되어 있는지 여부를 보고하고, 프로필러가 시작, 실행, 중지할 때 상태 정보를 제공합니다.
프로필링 결과 영역에는 다음 표에 설명된 두 가지 아이콘이 있습니다.
아이콘 |
이름 |
목적 |
---|---|---|
|
Identity Manager 프로필러 시작 |
프로필러를 시작하고 프로필러 옵션 대화 상자를 엽니다. |
|
수집된 결과 재설정 |
이 지점에서 수집한 모든 프로필 결과를 재설정합니다. |
저장된 스냅샷 영역에서는 모든 저장된 스냅샷 목록을 제공합니다.
스냅샷 저장 지침은 스냅샷 저장에 나와 있습니다.
또한 다음 버튼을 사용하여 이러한 스냅샷을 관리할 수 있습니다.
열기: 스냅샷 보기 창에서 저장된 스냅샷을 열려면 이 버튼을 누릅니다.
또한 저장된 스냅샷 목록에서 스냅샷을 두 번 눌러 해당 스냅샷을 열 수 있습니다.
삭제: 선택한 스냅샷을 삭제하려면, 저장된 스냅샷 목록에서 스냅샷을 선택한 다음 이 버튼을 누릅니다.
다른 이름으로 저장: 해당 스냅샷을 임의의 위치에 외부적으로 저장하려면 목록에서 스냅샷을 선택한 다음 이 버튼을 누릅니다.
로드: 임의의 위치에 있는 스냅샷을 스냅샷 보기 창에서 열려면 이 버튼을 누릅니다.
스냅샷을 열면 Identity Manager IDE 오른쪽 상단의 스냅샷 보기 창에 결과가 표시됩니다.
스냅샷에서는 다음 절에 설명된 여러 데이터 보기를 제공합니다.
호출 트리 보기는 시스템 전체의 호출 타이밍 및 호출 횟수를 보여 주는 트리 테이블로 구성됩니다.
이 트리 테이블에는 다음과 같은 세 개의 열이 포함되어 있습니다.
호출 트리 열: 모든 노드가 나열됩니다.
최상위 수준 노드는 다음 중 하나입니다.
시스템의 다양한 백그라운드 스레드에 대한 Thread.run() 메소드
예를 들어, Java 프로필링을 활성화하면 ReconTask.WorkerThread.run() 메소드가 표시됩니다.
요청 타이밍
예를 들어, idm/login.jsp URL을 보면 idm/login.jsp에 대한 최상위 항목이 표시됩니다. 이 항목에서 시간 열에 표시되는 데이터는 해당 요청에 대한 총 시간을 나타내고, 호출 열에 표시되는 데이터는 해당 페이지에 대한 총 호출 횟수를 나타냅니다. 해당 데이터를 자세히 조사하여 표시된 시간의 원인이 되는 호출을 확인할 수 있습니다.
또한 호출 트리에는 자체 시간 노드가 포함되어 있습니다. 자체 시간 값은 노드 자체에 소요된 시간을 나타냅니다. 자세한 내용은 통계 경고를 참조하십시오.
시간 열: 해당 노드가 상위 노드에서 호출되었을 때 각 노드에 소요된 시간이 나열됩니다. 백분율은 상위 시간을 기준으로 합니다.
호출 열: 각 노드가 상위 노드에서 호출된 횟수가 나열됩니다.
핫스폿 보기는 상위에 상관없이 총 호출 타이밍을 보여 주는 일반 노드 목록을 제공합니다.
이 보기에는 다음 열이 포함되어 있습니다.
자체 시간: 각 노드에 소요된 총 시간이 나열됩니다.
호출: 각 노드가 상위 노드에서 호출된 총 횟수가 나열됩니다.
시간: 각 노드와 해당 모든 하위에 소요된 총 시간이 나열됩니다.
역 추적 보기에서는 각 노드를 호출한 모든 호출 체인을 보여 주는 역 호출 스택을 제공합니다.
이러한 통계를 사용하여 "이 노드에서 이 특정 호출 체인을 제거하면 시간이 얼마나 절약됩니까?"라는 질문에 응답할 수 있습니다.
노드(루트 노드)를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 역 추적 표시를 선택하여 다른 스냅샷 보기에서 역 추적 보기에 액세스할 수 있습니다.
역 추적 보기에서는 시간 및 호출 데이터 값이 다른 의미를 갖습니다.
시간: 이 열의 값은 지정된 호출 체인에서 루트 노드를 호출한 경우 루트 노드에 소요된 시간을 나타냅니다.
호출: 이 열의 값은 지정된 호출 체인에서 루트 노드를 호출한 횟수를 나타냅니다.
호출 수신자 보기는 상위 체인에 상관없이 노드(루트 노드)의 총 호출 트리를 제공합니다.
이 통계는 마스터 호출 트리 전체의 여러 위치에서 호출되는 문제 영역이 있어 해당 노드에 대한 전체 프로필을 보려는 경우에 유용합니다.
노드(루트 노드)를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 호출 수신자 표시를 선택하여 다른 스냅샷 보기에서 호출 수신자 보기에 액세스할 수 있습니다.
호출 수신자 보기에 사용된 시간 및 호출 데이터 값은 호출 트리 보기에 사용된 값과 동일한 의미를 갖습니다.
호출 트리 보기 또는 핫스폿 보기에서 노드를 마우스 오른쪽 버튼으로 누르면 다음 표에 설명된 옵션이 있는 팝업 메뉴가 표시됩니다.
메뉴 옵션 |
설명 |
---|---|
소스로 이동 |
Java 메소드, 작업 흐름, 양식, 규칙 또는 XPRESS에 해당하는 노드에 대한 XML 소스를 보려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 프로필러에서 소스를 찾아 관리하는 방법을 참조하십시오. |
역 추적 표시 |
역 추적 보기에 액세스하려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 역 추적 보기를 참조하십시오. |
호출 수신자 표시 |
호출 수신자 보기에 액세스하려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 호출 수신자 보기를 참조하십시오. |
핫스폿에서 찾기 |
핫스폿 보기에서 노드를 찾으려면 이 옵션을 선택합니다. 이 보기에 대한 자세한 내용은 핫스폿 보기를 참조하십시오. |
옵션 나열 > 정렬 -> |
이 옵션을 다음 중 하나로 선택합니다.
|
옵션 나열 -> 표시되는 열 변경 |
호출 트리 또는 핫스폿 목록에 표시되는 열을 변경하려면 이 옵션을 선택합니다. 표시되는 열 변경 대화 상자가 표시되면 다음 옵션 중 하나 이상을 선택할 수 있습니다.
|
검색 아이콘 (스냅샷 보기 창의 맨 위에 있음)을 사용하여 호출 트리 보기 또는 핫스폿 트리에서 이름별로 노드를 검색할 수 있습니다.
또는 호출 트리 보기 또는 핫스폿 보기에서 노드를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 호출 트리에서 찾기 또는 핫스폿에서 찾기를 선택하여 노드를 검색합니다.
프로필러는 스냅샷 저장을 위한 여러 옵션을 제공합니다. 옵션에 대한 설명은 다음 표를 참조하십시오.
아이콘 |
이름 |
목적 |
---|---|---|
|
프로젝트에 스냅샷 저장 아이콘(스냅샷 보기 창의 맨 위에 있음) |
프로젝트의 nbproject/private/idm-profiler 디렉토리에 스냅샷을 저장합니다. 프로젝트에 저장된 스냅샷은 프로필러 보기의 저장된 스냅샷 섹션에 나열됩니다. |
|
외부적으로 스냅샷 저장 아이콘(스냅샷 보기 창의 맨 위에 있음) |
외부의 임의의 위치에 스냅샷을 저장합니다. |
|
다른 이름으로 저장 버튼(저장된 스냅샷 영역에 있음) |
외부의 임의의 위치에 스냅샷을 저장합니다. |
Identity Manager에서는 프로필러를 사용하여 양식, Java 규칙, 작업 흐름 및 XPRESS 문제를 해결하는 방법을 알려주는 자습서(profiler-tutorial.zip)를 제공합니다.
다음 단계를 통해 전체 자습서를 확인할 수 있습니다.
파일 -> 새 프로젝트를 선택합니다.
새 프로젝트 마법사가 표시되면 다음 항목을 지정한 후 다음을 누릅니다.
이름 및 위치 패널에서 다음 필드를 입력한 후 다음을 누릅니다.
프로젝트 이름: Idm80을 프로젝트 이름으로 입력합니다.
프로젝트 위치: 기본 위치를 사용하거나 다른 위치를 지정합니다.
프로젝트 폴더: 기본 폴더를 사용하거나 다른 폴더를 지정합니다.
Identity Manager WAR 파일 위치 패널이 표시되면 Identity Manager 8.1 war 파일 위치를 입력합니다. 일반적으로 이 파일의 압축을 풀면 동일한 디렉토리에 idm.war 파일이 만들어집니다.
저장소 설정 패널로 넘어가려면 다음을 누릅니다.
이 패널에서 기본 설정을 변경할 필요 없이 마침을 누르면 됩니다. BUILD SUCCESSFUL 메시지가 Identity Manager IDE 출력 창에 표시되면 프로필러 자습서 파일의 압축을 풀 수 있습니다. 지침은 단계 2: 프로필러 자습서 압축 풀기를 참조하십시오.
프로젝트 루트에서 profiler-tutorial.zip 파일의 압축을 풉니다. 압축을 푼 파일은 다음과 같습니다.
<project root>/custom/WEB-INF/config/ProfilerTutorial1.xml <project root>/custom/WEB-INF/config/ProfilerTutorial2.xml <project root>/src/org/example/ProfilerTutorialExample.java <project root>/PROFILER_TUTORIAL_README.txt
프로필러를 시작합니다. 단계 3: 프로필러 시작을 진행합니다.
시작하기 전에에 제공된 지침에 따라 서버 및 Netbeans JVM의 메모리를 늘립니다.
개요에 설명된 방법을 사용하여 프로필러를 시작합니다.
프로필러 옵션 대화 상자가 표시되면 프로필링 옵션을 지정할 수 있습니다.
계속해서 단계 4: 프로필러 옵션 설정을 진행합니다.
서로 다른 모든 프로필러 옵션에 대한 자세한 내용은 프로필러 옵션 지정을 참조하십시오.
이 자습서의 목적을 위해 다음 프로필러 옵션을 지정합니다.
모드 탭에서 양식, Java, 규칙, 작업 흐름 및 XPRESS 객체를 프로필링할 Java 및 IDM 객체를 선택합니다.
Java 필터 탭을 선택합니다.
다음 단계에 따라 사용자 정의 Java 클래스(이 경우 org.example.ProfilerTutorialExample)를 제외한 모든 Identity Manager Java 클래스를 비활성화합니다.
확인을 눌러 프로필러를 실행합니다.
프로젝트에서 프로필러를 처음 실행하거나 프로젝트 정리 작업을 최근에 수행한 경우 프로필러가 완료되는 데 몇 분 정도 소요됩니다.
프로필러가 처리를 마치면 로그인하라는 메시지가 표시됩니다.
비밀번호로 configurator를 입력하고 비밀번호 저장 확인란을 선택한 다음 확인을 눌러 계속합니다.
Identity Manager 창이 표시되면 로그인합니다.
일반적으로 configurator로 다시 로그인하지 않고 Identity Manager에 다른 사용자로 로그인합니다. 프로필러에 configurator로 이미 로그인되어 있으면 Identity Manager 세션 풀에는 사용자당 하나의 항목만 허용됩니다. 여러 항목을 사용하면 끊어진 세션 풀이 표시되므로 세부적인 성능 문제에 대한 프로필링 결과가 왜곡될 수 있습니다.
그러나 이 간단한 예제에서는 세션 풀이 중요하지 않으므로 configurator/configurator로 로그인할 수 있습니다.
Identity Manager에서 서버 작업 -> 작업 실행을 선택한 다음 ProfilerTutorialWorkflow1을 누릅니다.
자습서가 응답하는 데 몇 분 정도 걸릴 수 있습니다.
지금 스냅샷을 찍을 수 있지만, 여기서는 결과를 재설정하고, 프로필러를 실행하고, 다시 실행한 다음 스냅샷을 찍습니다.
모든 캐시가 준비되고 모든 JSP가 컴파일되도록 스냅샷을 찍기 전에 프로필러를 한 두 차례 실행하는 것이 좋습니다.
프로필러를 여러 번 실행하면 실제 성능 문제에 집중할 수 있습니다. 이 방법의 유일한 예외는 캐시 자체를 채우는 데 문제가 있는 경우입니다.
Identity Manager IDE에서는 스냅샷을 다운로드하고 창의 오른쪽에 결과를 표시합니다.
이 영역은 호출 트리 보기입니다. 호출 트리의 맨 위에는 시간 열에 나열되는 시간과 함께 /idm/task/taskLaunch.jsp가 표시되어야 합니다. 전체 요청을 수행하는 데 6초 이상 소요되었다고 시간에 표시됩니다.
/idm/task/taskLaunch.jsp 노드를 확장하고 ProfilerTutorialWorkflow1에 6초가 소요되었는지 확인할 수 있습니다.
ProfilerTutorialWorkflow1 노드를 확장합니다. activity2에 4초가 소요되고 activity1에 2초가 소요됩니다.
activity2를 확장합니다.
action1에 2초가 소요되고 action2에 2초가 소요됩니다.
action1을 확장하고 <invoke>에도 2초가 소요되었음을 확인합니다.
<invoke>를 두 번 눌러 ProfilerTutorialWorkflow1.xml을 열고 다음 줄을 강조 표시합니다.
<invoke name=’example’ class=’org.example.ProfilerTutorialExample’/> |
ProfilerTutorialExample 메소드 호출에 2초가 소요된 것으로 표시되어야 합니다.
실제로 프로젝트의 소스 대신 스냅삿에서 캡처된 XML 소스를 찾습니다. 스냅샷이 완전히 자체 포함됩니다. 자세한 내용은 프로필러에서 소스를 찾아 관리하는 방법을 참조하십시오.
CPU:<date><time> 탭을 선택하여 스냅샷으로 돌아갑니다.
<invoke> 노드를 확장하고 프로필러에서 Java ProfilerTutorialExample.example() 메소드에 2초를 소요했음을 확인합니다.
메소드 이름을 두 번 눌러 ProfilerTutorialExample.java 소스를 열고 다음 줄을 강조 표시합니다.
Thread.sleep(2000); |
이 줄에 문제가 있습니다. 이 메소드는 2초 스레드 일시 정지를 포함합니다.
호출 트리로 돌아가면 모든 2초 경로가 이 메소드로 연결됨을 확인할 수 있습니다. 총 6초인 세 개의 경로가 표시되어야 합니다.
호출 트리 영역의 아래쪽에 있는 핫스폿 탭을 선택하여 핫스폿 보기를 엽니다. ProfilerTutorialExample.example()의 총 자체 시간은 6초입니다.
핫스폿에 대한 자세한 내용은 스냅샷 보기 작업을 참조하십시오.
ProfilerTutorialExample.example()을 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 역 추적 표시를 선택합니다.
새 역 추적 탭이 영역의 아래쪽에 표시됩니다.
역 추적 탭에서 ProfilerTutorialExample.example() 노드를 확장하여 이 메소드가 세 개의 위치에서 호출되었고 메소드가 각 위치에서 호출될 때 2초가 소요되었는지 확인합니다.
역 추적에 대한 자세한 내용은 스냅샷 보기 작업을 참조하십시오.
프로젝트에 스냅샷 저장 아이콘을 눌러 스냅샷을 저장한 다음 닫습니다.
IDM 프로필러 탭에서 저장된 스냅샷 섹션을 선택하면 스냅샷이 표시됩니다. 아래로 스크롤해야 할 수 있습니다.
저장된 스냅샷을 선택한 다음 열기를 눌러 다시 엽니다.
다른 이름으로 저장 버튼을 사용하여 스냅샷을 외부적으로 저장하고, 로드 버튼을 사용하여 프로젝트 외부에서 스냅샷을 로드할 수 있습니다.
스냅샷을 다시 닫습니다.
이 자습서의 다음 부분에서는 작업 흐름 ManualAction을 프로필링하는 방법을 설명합니다.
Identity Manager에서 서버 작업 -> 작업 실행을 선택한 다음 ProfilerTutorialWorkflow2를 누릅니다.
잠시 후 빈 양식이 표시됩니다.
저장을 누르면 프로세스 그림이 표시됩니다.
서버 작업 -> 작업 실행을 다시 선택합니다.
Identity Manager IDE IDM 프로필러 보기로 돌아간 다음 프로필링 결과 섹션에서 수집된 결과 재설정 아이콘을 누릅니다.
이제 Identity Manager에서 ProfilerTutorialWorkflow2를 누릅니다.
빈 양식이 다시 표시되면 저장을 누릅니다.
IDM 프로필러 보기에서 스냅샷 찍기를 누릅니다.
몇 초 후 스냅샷이 호출 트리 영역에 표시됩니다. /idm/task/workItemEdit.jsp에 6초 이상 소요되어야 합니다. 이 결과는 작업 흐름의 수동 작업에 해당합니다.
/idm/task/workItemEdit.jsp 노드를 확장하고 ManualAction 양식에서 모든 Derivation을 실행하는 데 총 6초가 소요되었는지 확인합니다.
Derivation, displayNameForm, variables.dummy 및 <block> 노드를 확장합니다.
<block>에 6초가 소요되었음을 확인할 수 있습니다. 프로필러가 ProfilerTutorialExample.example(). 메소드를 세 번 호출하는 데 2초씩 소요된 것입니다.
<block>을 두 번 눌러 소스를 볼 수 있습니다.
이 절에서는 온라인 도움말에 대한 셜멍서 수정 사항을 설명합니다.
"보고서 구성" 도움말 페이지에 포함된 다음 문장은 무시해야 합니다.
그래프가 올바르게 표시되도록 하려면 JVM에 글꼴도 추가해야 합니다.
이 문장은 잘못된 설명입니다. PDF 보고서의 텍스트를 제대로 렌더링하기 위해 반드시 JVM에 글꼴을 추가할 필요는 없습니다.