本節包含 Identity Manager 8.1 文件集發佈後所需的新資訊與更正資訊。
相關資訊編排如下:
本節包含適用於「Sun Identity Manager 8.1 Business Administrator’s Guide」的新資訊與文件校正:
下列資訊應加入「安全性」一章:
Identity Manager 現在提供「登入回復」認證,以替代「忘記密碼」安全性提問式登入。「登入回復」認證提供訊息混淆選項,可利用相同之通用結果訊息顯示所有錯誤與成功,這麼做可防止帳號搜集攻擊。就功能運作而言,「登入回復」方法使用與「忘記使用者 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)
Identity Manager 8.1 隨附本土化的 JAR 檔案,內含本土化的 WICMessages.properties 檔案。如果使用本土化的 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 - 如果為資源啟用了 Password Sync,並且 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 配置物件會適當地得到保留與更新。但是,匯出程式的某些自訂是在 Web 應用程式檔案中完成,這些自訂需要特殊處理。
在升級程序期間,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。
使用 $WSHOME/exporter 目錄中的新 DDL 重建模式。
模式升級程序檔無法在修改模式的同時保留資料。因此,如果您需要保留資料,則必須先匯出資料,然後再匯入。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 之後,如果 8.1 版的 model-export.xml 已就位,只要檢視 http://server: port/idm/model-export.xml 中的模式檔案就能看到新的資料類型與屬性。新的類型與屬性會具有 8.1 發行版本編號旗標。
本節包含適用於「Sun Identity Manager Deployment Reference」的新資訊與文件校正。
本章缺少以下有關將密碼確認詰問增加至表單的說明:(ID-7604)
您可以使用 RequiresChallenge 表單特性,將密碼確認詰問增加至選取的表單。啟用此功能時,Identity Manager 會在處理請求之前,先詰問目前登入的管理員讓其提供密碼。支援此選項的表單包括:
userForm (標籤式使用者表單、精靈使用者表單、預設使用者表單)
changePassword (預設值為變更使用者密碼表單)
resetPassword (預設值為重設使用者密碼表單)
每一個表單的指定特性都不相同。
若要將密碼確認詰問增加至使用者表單,請如下所示增加下列 RequiredElement 元素,並替換 password、email 及 fullname:
<Property name='RequiredChallenge'> <List> <String>password</String> <String>email</String> <String>fullname</String> </List> </Property> |
此特性的值是一個清單,其中包含一個以上的下列使用者檢視屬性名稱:applications、adminRoles、assignedLhPolicy、capabilities、controlledOrganizations、email、firstname、fullname、lastname、organization、password、resources、roles。
若要將密碼確認詰問增加至 changePassword 或 resetPassword 表單,請如下所示增加下列 <RequiresChallenge> 元素,其中的 password、email 及 fullname 需用適當的值替代:
<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 會將其指定為區域 (local) 值,表示只有在宣告該變數的 XPRESS 區段內才可對其進行存取。
用來定義範圍的其他變數屬性包括:
input -- 宣告 <Variable> 元素具有區域範圍 (Local Scope),且呼叫者可初始化該值。
output -- 宣告 <Variable> 元素具有區域範圍,但可傳回給呼叫者。
external -- 宣告 <Variable> 具有非區域範圍,亦即對此變數的指定,會導致在第一次宣告此變數的範圍中也指定此變數。
本章缺少以下有關 Identity Manager 安全清單功能的說明。(ID-19474)
Identity Manager 安全清單功能可對照 ID 或表單名稱清單,對使用 SaveNoValidate 動作的表單與工作流程進行檢查。Identity Manager 會在安全清單中檢查表單名稱或表單所有者 ID。ID 清單 (稱為 saveNoValidateAllowedFormsAndWorkflows) 位於系統配置物件的安全性屬性中。如果表單名稱或所有者 ID 位於安全清單上,該表單或工作流程即可使用 SaveNoValidate 動作。如果表單名稱或所有者 ID 不在清單上,則會使用 Save 動作處理該表單或工作流程。如果沒有此清單,所有表單與工作流程皆會當作 SaveNoValidate 來處理。
若要在您的部署中實作此功能,您必須將所有使用 SaveNoValidate 的表單或工作流程增加至系統配置物件中的 saveNoValidateAllowedFormsAndWorkflows 清單。若要查看您必須增加的 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 都會啟動此工作流程,因此不得呼叫任何會觸發同一資源帳號再次進行擷取的方法或工作流程。例如,如果您呼叫以下任何 WorkflowServices 方法以組成使用者檢視,則會產生無窮迴圈:getView(User) 與 checkoutView(User),可能還包括 checkinView(User)。
由於 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。
建置並執行專案需要很長的時間,且 Identity Manager IDE 似乎會複製許多檔案。這是什麼原因呢?
答案:發生此問題的原因可能如下:
您使用的是 Identity Manager IDE 7.0 或 7.1 外掛程式。
請使用 Identity Manager IDE 8.0 外掛程式。Identity Manager IDE 8.0 Configuration Build Environment (CBE) 已進行數項改善效能的調整。
您可能使用不必要的 [清除] 指令。
當您使用 Clean Project 或 Clean And Build Project 時,Identity Manager IDE 會刪除整個 image 目錄,其中包含數千個檔案。Identity Manager IDE 必須在下一個建置期間從 idm-staging 複製所有檔案。
若要提高使用 Identity Manager IDE 效率,必須瞭解何時使用 Clean 指令。如需更多資訊,請參閱 Identity Manager IDE README.txt 檔案中的「When to Use Clean」一節。
現在已經建立 Identity Manager 專案,我該將哪些檔案簽入來源控制?
答案:如需相關資訊,請參閱 Identity Manager IDE README.txt 中的「CVS Best Practices」一節。
問題:在 CVS 中使用專案管理的最佳實作為何?
答案:如需相關資訊,請參閱 Identity Manager IDE README.txt 中的「CVS Best Practices」一節。
問題:物件何時匯入儲存庫?
答案:如需相關資訊,請參閱使用儲存庫。
問題:我該如何新增 JAR 到專案?
答案:請參閱 Identity Manager IDE README.txt 中的「How to add a new JAR dependency」一節。
我的 sandbox 儲存庫應使用哪個儲存庫?
答案:使用 sandbox 的內嵌式儲存庫。使用 Identity Manager 7.1 (或較新版本) 時尤其如此,而此版本提供 HsSQL 儲存庫。如果未使用內嵌式儲存庫,則會失去功能。
如需更多資訊,請參閱 Identity Manager IDE README.txt 檔案中的「Working with the Repository」一節。
問題:物件何時會自動匯入?
答案:您必須將 Identity Manager IDE 配置為自動匯入物件。
這些步驟如下所示:
從 [IDM] 功能表選取 [儲存庫] > [管理內嵌式儲存庫]。
啟用 [管理內嵌式儲存庫] 對話方塊上的 [自動發佈 Identity Manager 物件] 選項。
Identity Manager 專案 (遠端) 不會提供此選項,或者如果您指定自己的儲存庫,亦不會提供此選項。
選取 [專案] > [執行專案] 或 [專案] > [除錯專案]。
Identity Manager IDE 會自動匯入自從上次執行專案後,已變更的所有物件。
自動發佈 Identity Manager 物件會增加啟動伺服器所需的時間。若要將伺服器啟動時間降至最低,請停用此選項,並明確地將物件上傳至儲存庫。
上傳物件最有效的方式為何?
答案:使用下列其中一個方法上傳已修改的物件:
在專案樹狀結構中的一個或多個已編輯物件上按一下滑鼠右鍵,然後從快顯功能表中選取 [上傳物件]。
若要上傳多個物件,請按住 Ctrl 鍵並從清單中選取多個物件。
選取一個或多個已編輯物件,然後從 [IdM] 功能表中選取 [儲存庫] > [上傳物件]。隨即會顯示一個對話方塊讓您選取要上傳的物件。
這兩種方法皆會將物件直接上傳至伺服器,因此沒有快取延遲的問題,且比使用 [執行專案] 或 [除錯專案] 還要快。不論使用哪個儲存庫,皆會提供 [上傳物件] 功能。
在您每次執行下列任何一項專案作業時,Netbeans 內嵌式應用程式伺服器會自動關機:
清除專案
建立 Delta 分佈
建立 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
預設作業
作業範本
範例:[伺服器作業] > [配置作業] > 表格中可用的作業範本名稱
作業類型標籤
範例:[伺服器作業] > [執行作業] > [可用作業] 表格中的第二欄項目
作業定義
範例:[伺服器作業] > [尋找作業] > 第二個下拉式功能表以選取 [作業定義]
預設報告名稱
範例:[報告] > [執行報告] > [報告表格] 下找到的報告名稱
預設策略名稱
範例:[規範遵循] > [管理策略] > 稽核策略名稱與描述
預設權能名稱
範例:[編輯使用者] > [安全性] > [可用權能]
預設報告與圖形名稱
進程圖 applet/工作流程圖 applet
Identity Manager 提供效能評測器公用程式,協助您對部署中與表單、Java、規則、工作流程與 XPRESS 相關的效能問題進行疑難排解。
表單、Java、規則、工作流程與 XPRESS 皆可能導致效能與範圍問題。效能評測器會評測不同區域所耗用的時間,可讓您決定這些表單、Java、規則、工作流程或 XPRESS 物件是否造成效能與範圍問題,以及倘若如此,是這些物件的哪些部分導致問題。
本節說明如何使用 Identity Manager 效能評測器,並提供指導以協助您瞭解如何對部署中的效能問題進行疑難排解。
此資訊分為以下主題:
僅 7.1 Update 1 版及較新版本支援 Identity Manager 效能評測器。
本節提供 Identity Manager 效能評測器的特性與功能簡介。相關資訊編排如下:
您可以使用效能評測器公用程式執行以下作業:
建立效能評測資料的「快照」。
快照是自從上次重設所有收集的效能評測結果以來,所累計的效能評測結果。
使用四種不同的資料檢視顯示快照結果:
[呼叫樹狀結構檢視] 提供樹狀結構表格,顯示整個系統的呼叫計時及呼叫計數。
[Hotspots 檢視] 提供直列式節點清單,顯示所有父系節點的集合呼叫計時。
[Back Traces 檢視] 提供顛倒的呼叫堆疊,顯示呼叫此節點 (稱為根節點) 的所有來源呼叫鏈。
[被呼叫端檢視] 提供根節點的彙總呼叫樹狀結構,而不考慮其父鏈為何。
指定快照中要包含的資訊種類:
您可以包含表單、工作流程與 XPRESS 的每個元素,或將內容限制在特定的一組元素。
您可以挑選特定的 Java 方法及建構子,以納入方法或從方法排除。支援 Identity Manager 類別與自訂類別的方法。
使用下列方式管理專案快照。
在專案的 nbproject/private/idm-profiler 目錄或專案外部的任意位置儲存快照。
您可以在 IDM 效能評測器檢視的 [已儲存的快照] 區段中,檢視所有儲存的快照清單。
從專案開啟快照,或從專案外部的任意位置載入快照。
刪除快照。
依名稱搜尋特定節點。
本節說明效能評測器如何查找及管理下列 Identity Manager 物件的來源:
在 [呼叫樹狀結構檢視] 或 [Hotspots 檢視] 中,您可以連按兩下對應 Java 方法、工作流程、表單、規則或 XPRESS 的任何節點,以檢視此節點的來源。
當您使用效能評測器拍攝快照時,伺服器會計算所有效能評測資料並搜尋資料依賴的來源。伺服器接著會從儲存庫擷取所有這些來源,並將其納入快照中。因此,您可以確定快照中所顯示的 Identity Manager 物件,能確實反映擷取快照當時的狀況。
此程序會增加快照的大小,但來源大小實際上只佔總大小的一小部分。因此,您可以將快照傳送給 Sun 的客戶支援部門,而不用另外傳送原始碼檔案。
當您拍攝 Java 來源的快照時,用戶端會下載快照,然後搜尋快照以從專案擷取所有參照的 Java 來源。當您儲存快照時,用戶端會壓縮來源並將其附加在快照結尾。
然後,當您檢視快照並移至 Java 來源時,用戶端會先檢查快照內容。如果用戶端在此找不到內容,則會檢查專案的內容。此程序可讓您從自訂 Java 程式碼與 Identity Manager 程式碼傳送包含效能評測資料的快照。
在 Java 來源快照中,請勿以為來源會隨伺服器更新或一直可以使用。
以下各節包含計算效能評測器提供結果時所要考量的資訊:
若要計算根節點的 Self Time 統計,效能評測器會從根節點的總計時間扣除所有子節點的時間。
因此,未執行的子節點時間會反映在根節點的 Self Time 中。如果根節點有很長的 Self Time,則必須找出原因。您可能尚未執行適當的方法,因此檢查的地方有誤。
例如,假設方法 A 呼叫方法 B。
方法 A 總計需要 10 秒 (其中總計時間包含呼叫 B),而呼叫 B 總計需要 10 秒。
如果 A 與 B 皆已執行,則呼叫堆疊會反映此資訊。您會看到 A 的 Self Time 為 0 秒,而 B 的 Self Time 為 10 秒 (其中 10 秒是實際用在 B 中的時間)。但是,如果未執行 B,您僅會看到呼叫 A 需要 10 秒,因此 A 的 Self Time 為 10 秒。因此,您可能會以為問題是在 A,而不是在 B。
您尤其會在 JSP 初始編譯期間注意到 JSP 有很長的 Self Time。如果重設收集的結果,然後重新顯示頁面,則 Self Time 值會少得多。
由於 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) |
多數 Identity Manager 的常駐程式執行緒 (例如 ReconTask.WorkerThread.run() 或 TaskThread.WorkerThread.run()) 所耗用的時間看似很久,但請勿被此誤導。大部分的時間是耗用在等候事件時的暫停上。您必須研究這些追蹤才能知道處理事件實際耗用的時間。
本節說明如何啟動效能評測器,以及如何使用效能評測器圖形化使用者介面的各項功能。相關資訊編排如下:
由於效能評測器會耗用大量的記憶體,應大量增加伺服器與 Netbeans Java Virtual Machine (JVM) 的記憶體。
若要增加伺服器的記憶體:
開啟 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 物件的效能。
如果搭配外部 Identity Manager 實例使用一般 Identity Manager 專案或使用遠端 Identity Manager 專案,則無法使用 [Java 與 IDM 物件] 選項。
效能評測器執行時,無法變更 [模式] 選項。您必須停止效能評測器才能變更此選項。
[IDM 物件篩選器] 標籤提供下列選項:
顯示 IDM 物件詳細資訊
包含匿名來源
匿名來源是動態產生的表單或表單的一部分 (例如 Login 表單與 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 的快照節點:
若要快照包含所有執行實體的呼叫資訊,甚至包含執行時間為零的執行實體時,請停用此選項 (預設值)。
取得呼叫數 (甚至沒有執行時間) 可能很實用。
啟用此選項可移除這些節點,讓您專注在最相關的效能評測資料上。此外,啟用此選項可顯著減小效能評測器快照的大小。
在效能評測器啟動時自動開啟瀏覽器:
當您要在啟動效能評測器時自動開啟瀏覽器,並指向要接受效能評測的 Identity Manager 實例時,請啟用此選項 (預設值)。
若不要開啟檔案總管,請停用此選項。
在快照中包含 Java 來源:
啟用此選項 (預設值) 可針對快照中效能評測資料參照的所有 Java 方法,包含其 Java 來源。您應該一律在欄位中使用此快照設定。自訂 Java 相對較小,而且在提供支援方面極有價值。
僅在評測 Identity Manager 的效能並具有完整的 Identity Manager 來源時,停用此選項。
在此情況下,由於 Identity Manager 來源會建立極大的快照,因此請勿包含此來源。(如需更多資訊,請參閱效能評測器查找及管理來源的方式。)
IDM 效能評測器檢視包含下列區域:
[目前的專案] 區域包含列出所有目前專案的下拉式功能表。使用此功能表可選取要評測其效能的專案。
[控制] 區域包含四個圖示,如下表所述:
圖示 |
名稱 |
用途 |
---|---|---|
|
啟動 Identity Manager 效能評測器 |
啟動效能評測器並開啟 [效能評測器選項] 對話方塊。 |
|
停止 Identity Manager 效能評測器 |
停止效能評測器。 |
|
重設收集的結果 |
重設到目前為止所收集的效能評測結果。 |
|
修改效能評測 |
重新開啟 [效能評測器選項] 對話方塊,以變更任何設定來修改目前的效能評測結果。 |
[狀態] 區域會報告是否已連線至主機,並提供效能評測器啟動、執行與停止的狀態資訊。
[效能評測結果] 區域包含兩個圖示,如下表所述:
圖示 |
名稱 |
用途 |
---|---|---|
|
啟動 Identity Manager 效能評測器 |
啟動效能評測器並開啟 [效能評測器選項] 對話方塊。 |
|
重設收集的結果 |
重設到目前為止所收集的效能評測結果。 |
[已儲存的快照] 區域提供所有儲存的快照清單。
儲存快照提供儲存快照的說明。
此外,您可以使用下列按鈕管理這些快照:
開啟:按一下此按鈕,即可在 [快照檢視] 視窗中開啟已儲存的快照。
您也可以在 [已儲存的快照] 清單中的快照上連按兩下,以開啟此快照。
刪除:選取 [已儲存的快照] 清單中的快照,然後按一下此按鈕以刪除選取的快照。
另存新檔:選取清單中的快照,然後按一下此按鈕以將此快照儲存至任意的外部位置。
載入:按一下此按鈕,即可在 [快照檢視] 視窗中開啟任意位置的快照。
當您開啟快照時,Identity Manager IDE 右上方的 [快照檢視] 視窗會顯示結果。
快照提供數種資料的檢視,以下各節將對此進行描述:
[呼叫樹狀結構檢視] 包含樹狀結構表格,顯示整個系統的呼叫計時及呼叫計數。
此樹狀結構表格包含三欄:
[Call Tree] 欄:列出所有節點。
頂層節點為下列其中之一:
系統中各種背景執行緒的 Thread.run() 方法
例如,若啟用 Java 效能評測,將會看到 ReconTask.WorkerThread.run() 方法。
請求計時
例如,若檢視 idm/login.jsp URL,將會看到 idm/login.jsp 的頂層項目。針對此項目,[Time] 欄中所顯示的資料表示請求的總時間。[Invocations] 欄中顯示的資料表示呼叫此頁面的總次數。您可以接著進一步研究此資料,以找出造成耗用這些時間的呼叫項目。
[呼叫樹狀結構] 也包含 [Self Time] 節點。[Self Time] 值表示節點本身會耗用的時間。(如需更多資訊,請參閱統計注意事項。)
[Time] 欄:列出從父系節點呼叫每個節點所耗用的時間,並指出與父系時間相較的百分比。
[Invocations] 欄:列出父系節點呼叫每個節點的次數。
[Hotspots 檢視] 提供直列式節點清單,顯示所有父系節點的集合呼叫計時。
此檢視包含下列欄:
Self Time:列出每個節點所耗用的總時間。
Invocations:列出父系節點呼叫每個節點的總次數。
Time:列出每個節點及其所有子節點所耗用的總時間。
[Back Traces 檢視] 提供顛倒的呼叫堆疊,顯示呼叫每個節點的所有來源呼叫鏈。
您可以使用這些統計回答以下問題:如果我省略此節點發出的此特定呼叫鏈,可以節省多少時間?
您可以在節點 (稱為根節點) 上按一下滑鼠右鍵,並從快顯功能表中選取 [顯示 Back Traces],以從任何其他快照檢視存取 [Back Traces] 檢視。
[Time] 與 [Invocations] 資料值在 [Back Traces] 檢視中有不同的含義:
Time:此欄中的值表示從指定呼叫鏈呼叫根節點時,在根節點中所費的時間。
Invocations:此欄中的值表示從指定呼叫鏈呼叫根節點的次數。
[被呼叫端檢視] 提供節點 (稱為根節點) 的彙總呼叫樹狀結構,而不考慮其父鏈為何。
如果從主要呼叫樹狀結構的許多位置呼叫的區域有問題,而您想檢視節點的整體設定檔,這些統計會很有幫助。
您可以在節點 (稱為根節點) 上按一下滑鼠右鍵,並從快顯功能表中選取 [顯示被呼叫端],以從任何其他快照檢視存取 [被呼叫端檢視]。
[被呼叫端檢視] 中所使用的 [Time] 與 [Invocations] 資料值,和 [呼叫樹狀結構] 檢視中所使用的資料值有相同含義。
在 [呼叫樹狀結構檢視] 或 [Hotspots 檢視] 中任何的節點上按一下滑鼠右鍵,會隨即顯示快顯功能表,內含下表所述的選項:
功能表選項 |
說明 |
---|---|
移至來源 |
選取此選項可檢視對應 Java 方法、工作流程、表單、規則或 XPRESS 之節點的 XML 來源。如需有關此檢視的詳細資訊,請參閱效能評測器查找及管理來源的方式。 |
顯示 Back Traces |
選取此選項可存取 [Back Traces] 檢視。如需有關此檢視的詳細資訊,請參閱Back Traces 檢視。 |
顯示被呼叫端 |
選取此選項可存取 [被呼叫端檢視]。如需有關此檢視的詳細資訊,請參閱被呼叫端檢視。 |
在 Hotspots 中尋找 |
選取此選項可在 [Hotspots 檢視] 中尋找節點。如需有關此檢視的詳細資訊,請參閱Hotspots 檢視。 |
清單選項 -> [排序] -> |
此選項有下列選項:
|
清單選項 -> [變更可見欄] |
選取此選項可變更 [呼叫樹狀結構] 或 [Hotspots] 清單中所顯示的欄。 您可以在 [變更可見欄] 對話方塊顯示時,選取下列一個或多個選項:1
|
使用 [快照檢視] 視窗頂端的 [搜尋] 圖示 ,在呼叫樹狀結構檢視或 Hotspots 樹狀結構中依名稱搜尋節點。
或者,在 [呼叫樹狀結構檢視] 或 [Hotspots 檢視] 中的任何節點上按一下滑鼠右鍵,然後從快顯功能表中分別選取 [在呼叫樹狀結構中尋找] 或 [在 Hotspots 中尋找] 以搜尋節點。
效能評測器提供數個儲存快照的選項。如需這些選項的描述,請參閱下表:
圖示 |
名稱 |
用途 |
---|---|---|
|
[在專案中儲存快照] 圖示 (位於 [快照檢視] 視窗頂端) |
在專案的 nbproject/private/idm-profiler 目錄中儲存快照。儲存在專案中的快照會列於效能評測器檢視的 [已儲存的快照] 區段中。 |
|
[在外部儲存快照] 圖示 (位於 [快照檢視] 視窗頂端) |
將快照另存在外部的任意位置。 |
|
[另存新檔] 按鈕 (位於 [已儲存的快照] 區域中) |
將快照另存在外部的任意位置。 |
Identity Manager 提供指導 (profiler-tutorial.zip) 以協助您瞭解如何使用效能評測器對表單、Java、規則、工作流程與 XPRESS 進行疑難排解。
使用下列步驟完成指導。
選取 [檔案] -> [新增專案]。
請在顯示 [新增專案] 精靈時指定下列項目,然後按 [下一步]:
填寫 [名稱與位置] 畫面上的下列欄位,然後按 [下一步]:
專案名稱:輸入 Idm80 作為專案名稱。
專案位置:使用預設位置或指定不同的位置。
專案資料夾:使用預設資料夾或指定不同的資料夾。
請在顯示 [Identity Manager WAR 檔案位置] 面板時,輸入 Identity Manager 8.1 war 檔案的位置。一般而言,解壓縮此檔案會在相同目錄中建立 idm.war 檔案。
按 [下一步] 繼續執行 [儲存庫設定] 畫面。
您應該不需要變更此面板上的預設設定,請直接按一下 [完成]。當您在 [Identity Manager IDE 輸出] 視窗中看到 BUILD SUCCESSFUL (建置成功) 訊息時,即可解壓縮效能評測器指導檔案。請參閱步驟 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 與 IDM 物件] 以評測表單、Java、規則、工作流程與 XPRESS 物件的效能。
選取 [Java 篩選器] 標籤。
使用下列步驟停用所有 Identity Manager Java 類別,但自訂 Java 類別 (在此案例中為 org.example.ProfilerTutorialExample) 除外:
按一下 [確定] 以執行效能評測器。
如果是第一次在專案上執行效能評測器,或最近執行過清除專案動作,則效能評測器需要幾分鐘才能完成。
當效能評測器完成處理時,系統會提示您登入。
輸入密碼 configurator,選取 [記住密碼] 方塊,然後按一下 [確定] 繼續。
請在顯示 Identity Manager 視窗時登入。
通常您應該以不同的使用者身份登入 Identity Manager,而不是再次以 configurator 登入。您已使用 configurator 的身份登入效能評測器,Identity Manager 階段作業池不允許使用者重複登入。登入多次可能造成階段作業池故障的假象,且可能扭曲細部效能問題的效能評測結果。
但是,針對此簡單的範例,階段作業區並不重要,因此您可以 configurator/configurator 登入。
在 Identity Manager 中,選取 [伺服器作業] -> [執行作業],然後按一下 [ProfilerTutorialWorkflow1]。
此指導可能需要幾分鐘才會回應。
雖然您現在可拍攝快照,但目前請重設結果、執行效能評測器並再執行一次,然後拍攝快照。
執行效能評測器幾次再拍攝快照是最佳作法,如此可確保所有快取皆就緒、所有 JSP 都已編譯等。
多次執行效能評測器可讓您專注在實際的效能問題上。但如果您有快取寫入的問題,則不要如此做。
Identity Manager IDE 會下載快照並在視窗右側顯示結果。
此區域為 [呼叫樹狀結構] 檢視。在 [呼叫樹狀結構] 頂端,您會看到 /idm/task/taskLaunch.jsp,其 [Time] 欄中列有時間。此時間應表示整個請求耗用六秒以上。
展開 /idm/task/taskLaunch.jsp 節點,您會看到 ProfilerTutorialWorkflow1 耗用六秒。
展開 ProfilerTutorialWorkflow1 節點。請注意,activity2 耗用四秒,而 activity1 耗用兩秒。
展開 activity2。
請注意,action1 耗用兩秒,而 action2 耗用兩秒。
展開 action1,請注意 <invoke> 也耗用兩秒。
連按兩下 <invoke> 以開啟 ProfilerTutorialWorkflow1.xml,並反白顯示下行:
<invoke name=’example’ class=’org.example.ProfilerTutorialExample’/> |
您應該會看到呼叫 ProfilerTutorialExample 方法耗用兩秒。
您實際上會瀏覽快照中擷取的 XML 來源,而非專案中的來源。快照本身即具備所有資料。(如需更多資訊,請參閱效能評測器查找及管理來源的方式。)
選取 [CPU:<date>< time>] 標籤以返回快照。
展開 <invoke> 節點,請注意效能評測器在 Java ProfilerTutorialExample.example() 方法中耗用兩秒。
連按兩下方法名稱以開啟 ProfilerTutorialExample.java 來源,並反白顯示下行:
Thread.sleep(2000); |
發生問題!此方法包含兩秒的執行緒暫停。
若返回 [呼叫樹狀結構],您會看到所有兩秒的路徑都指向此方法。(您應該看到三個路徑;總計六秒。)
選取 [Hotspots] 標籤 (位於 [呼叫樹狀結構] 區域底部) 以開啟 [Hotspots] 檢視。請注意,ProfilerTutorialExample.example() 的總計 Self Time 為六秒。
(如需有關 Hotspots 的更多資訊,請參閱使用快照檢視。)
在 ProfilerTutorialExample.example() 上按一下滑鼠右鍵,然後從快顯功能表中選取 [顯示 Back Traces]。
新的 [Back Traces] 標籤會顯示在此區域底端。
展開 [Back Traces] 標籤上的 ProfilerTutorialExample.example() 節點,會看到有三處呼叫此方法,且從每處呼叫此方法都耗用兩秒。
(如需有關 Back Traces 的更多資訊,請參閱使用快照檢視。)
按一下 [在專案中儲存快照] 圖示以儲存並關閉快照。
如果您查看 [IDM 效能評測器] 標籤上的 [已儲存的快照] 區段,應該會看到您的快照。(您可能必須向下捲動。)
選取已儲存的快照,然後按一下 [開啟] 重新開啟快照。
您可以使用 [另存新檔] 按鈕在外部儲存快照,並使用 [載入] 按鈕從專案外部載入快照。
再次關閉快照。
此指導的下一個部分會說明如何評測工作流程 ManualAction 的效能。
在 Identity Manager 中,選取 [伺服器作業] -> [執行作業],然後按一下 [ProfilerTutorialWorkflow2]。
在幾分鐘後,會顯示一個空白的表單。
按一下 [儲存],會隨即顯示進程圖。
再次選取 [伺服器作業] -> [執行作業]。
返回 Identity Manager IDE IDM 效能評測器檢視,然後在 [效能評測結果] 區段中,按一下 [重設收集的結果] 圖示。
現在按一下 Identity Manager 中的 [ProfilerTutorialWorkflow2]。
當空白表單再次顯示時,請按一下 [儲存]。
在 IDM 效能評測器檢視中,按一下 [拍攝快照]。
幾秒之後,快照應顯示在 [呼叫樹狀結構] 區域中。您應該會看到 /idm/task/workItemEdit.jsp 耗用六秒以上。(此結果會對應至工作流程中的手動操作。)
展開 /idm/task/workItemEdit.jsp 節點,並注意執行 ManualAction 表單中之所有 Derivation 的節點總計耗用六秒。
依序展開 Derivation、displayNameForm、variables.dummy 與 <block> 節點。
您應該會看到 <block> 耗用了六秒,其間效能評測器三次呼叫 ProfilerTutorialExample.example() 方法,每次呼叫耗用兩秒。
您可以連按兩下 <block> 以檢視來源。
本小節包含線上說明的文件校正。
「配置報告」說明頁面包含下行,請忽略此資訊:
JVM 中也應加入字型,以正確顯示圖形。
此行並不正確。要正確顯示 PDF 報告中的文字不必在 JVM 中加入字型。