本章包含目錄代理伺服器發行時的重要產品特定資訊。
本章包含以下各節:
本節列出自目錄代理伺服器上一個版本以來已修正的錯誤。
在某些情況下,基於連結 DN 條件的用戶端連線會錯誤分類,而可能套用不正確的策略。
配置 ACI 時,目錄代理伺服器所傳回的搜尋結果與直接在 LDAP 資料來源上搜尋的結果不相同。如果搜尋篩選包含存取遭拒的屬性,則目錄代理伺服器不會傳回任何項目。
如果屬性描述區分大小寫,則無法使用 ldapmodify 刪除 JDBC 屬性。
建立的連線未持續作用。
使用篩選連結規則配置 join-data-view 沒有作用。
配置目錄代理伺服器中每個用戶端 IP 的最大連線次數時 (max-client-connections),同步連線數目的計算不正確。
資料庫停止後的第一個請求未提供任何結果與任何錯誤訊息。
當遠端資料來源連接埠無法連線時,不會啟動目錄代理伺服器。
目錄代理伺服器在修改作業期間不支援使用 SQL 建立物件。
將 JDBC 屬性增加至 JDBC 中不存在的項目時,未在 JDBC 表格中增加該項目。
如果在搜尋篩選中使用輔助檢視中的屬性,則在連結檢視上的搜尋不會有作用。
dpconf 指令在特性值中無法拒絕新行字元與換行字元。在設定特性值時,請避免使用新行字元與換行字元。
使用 dpadm 指令的 jvm-args 旗標,並重新啟動伺服器時,無法成功地配置 2 GB 以上的記憶體供 Java 虛擬機器使用。
目錄代理伺服器無法代理「密碼修改延伸」作業,ldappasswd 指令需要此作業才可重設使用者密碼。
本節列出發行時已知的問題與限制。
本節列出產品限制。
某些情況下,變更已安裝的 Directory Server Enterprise Edition 產品檔案之檔案權限,可能會使得軟體無法正常運作。請僅依照產品文件或 Sun 技術支援的指示變更檔案權限。
若要解決此限制,請以具有適當使用者與群組權限的使用者身份安裝產品,並建立伺服器實例。
建立自行簽署的伺服器憑證時,請務必指定長度足夠而無需再更新的有效憑證。
若要確保不可分割性,請勿對寫入作業使用連結資料檢視。如果在連結資料檢視上執行寫入作業,請使用外部機制以避免或偵測到不一致。您可以藉由監視目錄代理伺服器錯誤記錄,監視不一致。
本節列出 Directory Proxy Server 6.3 版所發現的已知問題。
若是連結 LDAP 與 JDBC 資料檢視的 join-data-view 作業,增加、取代或修改其值對資料庫儲存而言太長的屬性時,該值會遭到截斷,並觸發下列與資料來源相關的問題:
在 mySQL 中,屬性所屬的資料庫列會出現兩次。
在 DB2 中,特定資料庫表格在目錄代理伺服器重新啟動之前會變成不可用。
當資料來源池增加新的資料來源時,需要重新啟動伺服器。
若是 LDAP 與 JDBC 的連結檢視在連結規則中有 uid,且 JDBC 檢視包含額外的屬性,則該屬性的 ldapsearch 作業會從伺服器傳回不只一個而是全部的項目。
當「增加」作業跟隨的參照其 basedn 與其他原始機器的基底 DN 不同時,目錄代理伺服器無法變更「增加」作業的 DN。嘗試對目錄伺服器實例設定為跟隨參照的目錄代理伺服器實例執行「增加」時,不僅不會轉寄參照,還會因為 basedn 不正確而導致「增加」在參照的伺服器上遭到拒絕。
使用 ldapmodify 指令直接對目錄伺服器實例執行「增加」,可讓「增加」發揮作用。
透過 Directory Server Enterprise Edition 執行大量搜尋時,會造成目錄代理伺服器壓力,並可能發生 ArrayIndexOutOfBounds 與 NegativeArraySize 異常。
目錄代理伺服器搭配 Java 1.6 以 64 位元模式使用時可能會當機。使用 Java 1.5 可移除此風險。如需更多資訊,請參閱軟體相依性需求。
使用 modrate 工具對 LDAP 與 JDBC 的連結檢視執行修改時,會在使用多個執行緒時發生 Null 指標異常。錯誤訊息類似如下:
java.lang.NullPointerException com.sun.directory.proxy.server.JoinDataView. processModifyRequest(JoinDataView.java:916) com.sun.directory.proxy.server.JoinDataViewOpContext.processModifyRequest (JoinDataViewOpContext.java:243) com.sun.directory.proxy.server.ModifyOperation. processOperation(ModifyOperation.java:502 com.sun.directory.proxy.server .WorkerThread.runThread(WorkerThread.java:150) com.sun.directory.proxy.util.DistributionThread.run (DistributionThread.java:225) |
如果目錄代理伺服器配置特性 allow-bind-operations 設定為 false,則無法使用 dpconf指令行引數與 -–secure-port 選項在 SSL 連接埠上連線。但仍可透過 Start TLS (預設值) 或明文連線 (-–unsecured 選項) 進行連線。
remove-attr-value 轉換模式中無法編寫虛擬轉換。
修改項目時,編寫虛擬轉換的作用不如預期。
LDIF 資料檢視、JDBC 資料檢視、連結資料檢視與存取控制資料檢視不支援修改 DN 作業。
目前僅 LDAP 資料檢視支援 getEffectiveRight 控制項,尚未考慮代理伺服器的本機 ACI。
目錄代理伺服器可拒絕那些將子類型指定至目標屬性的 ACI,例如 (targetattr = "locality;lang-fr-ca")。
目錄代理伺服器無法恢復在資料來源連線失敗後所復原的 JDBC 資料來源連線。目錄代理伺服器僅在重新啟動目錄代理伺服器實例後才可恢復連線。
認證模式配置變更時,必須重新啟動目錄代理伺服器。
產生 CA 簽署的憑證請求之後,當您重新整理時,憑證會顯示為自行簽署的憑證。
如果目錄代理伺服器使用的 SSL 連接埠不正確,在該連接埠上請求安全的搜尋之後,目錄代理伺服器可能會關閉所有連線。
當您為憑證資料庫設定長度不足的密碼時,未發出任何警告。如果密碼太短,目錄服務控制中心會接受。發出 dpadm 指令與 cert 子指令可能會進而導致指令無回應。
若目錄代理伺服器配置為使用根據用戶端應用程式憑證 (而非代理授權) 的認證,即無法正確計算參照躍點的數目。
建立資料檢視時可指定 base-dn 特性;但在建立資料檢視之後,則無法將 base-dn 特性設定為根 DSE ""。
目錄服務控制中心會將值以字串方式排序。因此,當您在目錄服務控制中心中對數字進行排序時,這些數字的排序方式與字串相同。
對 0、20 與 100 進行向上排序的結果為 0、100、20。對 0、20 與 100 向下排序的結果為 20、100、0。
在其路徑中包含多位元組字元的目錄代理伺服器實例可能無法在 DSCC 中建立,也無法啟動或執行其他一般作業。
這些問題的其中一部分可透過建立實例所使用的字元集解決。使用下列指令設定字元集:
# cacaoadm list-params | grep java-flags java-flags=-Xms4M -Xmx64M # cacaoadm stop # cacaoadm set-param java-flags="-Xms4M -Xmx64M -Dfile.encoding=utf-8" # cacaoadm start |
在實例路徑中僅使用 ASCII 字元可避免這些問題。
配置警示後必須重新啟動目錄代理伺服器,才能使變更生效。
在目錄代理伺服器中,參照躍點限制無法運作。
若配置了數值或字母資料分佈,目錄代理伺服器即無法重新命名移至其他資料檢視的項目。
使用連結資料檢視時,目錄代理伺服器不會採用組成該連結之檢視中的資料分佈演算法。
若要解決此問題,請在搭配使用連結與資料分佈時,於連結資料檢視的層級上配置資料分佈。
在 Windows 上,dsadm 和 dpadm 指令的輸出以及說明訊息並未本土化為簡體中文和繁體中文。
無法動態偵測 JDBC 資料來源項目的建立作業。如果建立 JDBC 伺服器後再建立 JDBC 資料檢視,則在伺服器下次重新啟動之前,將會忽略此資料檢視。因此,配置 JDBC 資料來源後必須重新啟動目錄代理伺服器,才能偵測到變更。
在 JDBC 物件類別中,類別 A 使用一個表格作為輔助表格,而另一個類別 B 使用相同的表格作為唯一的主要表格,則在 B 上的請求沒有作用。目錄代理伺服器用於主要表格時,無法忽略 filter-join-rule 特性。
在 Windows 系統上完成安裝並建立伺服器實例後,安裝與伺服器實例資料夾的檔案權限允許所有使用者進行存取。
若要解決此問題,請變更安裝與伺服器實例資料夾的權限。
在 Windows 上,只有管理員使用者可以執行 DSCC 初始化。
重新啟動目錄伺服器後,透過目錄代理伺服器存取目錄伺服器時,Access Manager 發生與持續搜尋相關的快取問題。
若要解決此問題,請在重新啟動目錄伺服器後重新啟動 Access Manager 或目錄代理伺服器。
若要進一步進行微調,您可以增加 Access Manager 嘗試的次數以及嘗試之間的延遲時間,以重新建立持續搜尋連線。您可以變更 AMConfig.properties 檔案中的下列特性,以提高這些參數。
增加 com.iplanet.am.event.connection.num.retries,這代表嘗試次數。預設值為嘗試 3 次。
增加 com.iplanet.am.event.connection.delay.between.retries,這代表嘗試之間的等候毫秒數。預設值為 3000 毫秒。
如果您使用配置了 DB2 資料庫的 JDBC 資料檢視來執行搜尋,而且有大量的項目傳回搜尋結果,則在傳回 1,344 個項目後可能會發生錯誤。
如要克服此限制,請透過將 CLI/ODBC 配置關鍵字 CLIPkg 的數值設定為高達 30,來增加大型套裝軟體的數量。儘管如此,搜尋結果仍限制最大為 11,712 個項目。
如需瞭解更多資訊,請參閱 DB2 文件。
使用目錄服務控制中心建立自行簽署的憑證時,請勿於憑證名稱中使用多位元組字元。
目錄服務控制中心不顯示透過目錄代理伺服器所允許的預設 LDAP 控制項。
變更現有的排除子樹狀結構或替代搜尋基底的 DN 時,目錄服務控制中心會移除逗點。
首次啟用或停用非安全 LDAP 存取後,必須重新啟動目錄代理伺服器才能使變更生效。
時間限制與大小限制設定只能與 LDAP 資料來源搭配使用。
使用指令 dpadm set-flags cert-pwd-store=off 之後,即無法使用目錄服務控制中心重新啟動目錄代理伺服器。
如果在 dpadm start 指令中使用的伺服器實例名稱同時包含 ASCII 和多位元組字元,此指令會失敗。
在現有的連線處理程式上設定 data-view-routing-custom-list 特性時,會因為資料檢視名稱含有必須轉換的字元 (如逗點) 而發生錯誤。
若要解決此問題,請勿使用含有必須轉換的字元的資料檢視名稱。例如,請勿使用含有 DN 的資料檢視名稱。
與先前的版本不同,如線上手冊 allowed-ldap-controls(5dpconf) 所說明,目錄代理伺服器依預設不允許伺服器端排序控制項。
可以在允許的 LDAP 控制項 (由 allowed-ldap-controls 特性指定) 清單中增加 server-side-sorting,以使目錄代理伺服器支援伺服器端排序控制項。
$ dpconf set-server-prop \ allowed-ldap-controls:auth-request \ allowed-ldap-controls:chaining-loop-detection \ allowed-ldap-controls:manage-dsa \ allowed-ldap-controls:persistent-search \ allowed-ldap-controls:proxy-auth-v1 \ allowed-ldap-controls:proxy-auth-v2 \ allowed-ldap-controls:real-attributes-only \ allowed-ldap-controls:server-side-sorting |
請注意,您必須重複現有的設定。否則,將只允許伺服器端排序控制項。
請注意,使用目錄代理伺服器的 DN 重新命名功能時,重複的 DN 元件只會重新命名為唯一的替代元件。
例如,要將以 o=myCompany.com 結尾的 DN 重新命名為以 dc=com 結尾。對於 DN 與其原始元件相重複的項目 (如 uid=userid,ou=people,o=myCompany.com,o=myCompany.com),重新命名後所產生的 DN 將是 uid=userid,ou=people,dc=com,而不是 uid=userid,ou=people,o=myCompany.com,dc=com。
透過目錄代理伺服器存取 Oracle 9 的 JDBC 連線配置,不全如文件中所述。
請考慮下列配置:Oracle 9 伺服器在主機 myhost 連接埠 1537 上進行偵聽,且實例具有系統識別碼 (SID) MYINST。此實例具有資料庫 MYNAME.MYTABLE。
一般而言,若要配置透過 MYTABLE 進行存取,請設定下列特性。
在 JDBC 資料來源上,設定 db-name:MYINST。
在 JDBC 資料來源上,設定 db-url:jdbc:oracle:thin:myhost:1537:。
在 JDBC 表格上,設定 sql-table:MYNAME.MYTABLE
若這些設定沒有效用,請以下列設定配置透過 MYTABLE 進行存取。
在 JDBC 資料來源上,設定 db-name:(CONNECT_DATA=(SERVICE_NAME=MYINST)))
在 JDBC 資料來源上,設定 db-url:jdbc:oracle:thin:@(DESCRIPTION= (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1537)))
在 JDBC 表格上,設定 sql-table:MYNAME.MYTABLE
目錄代理伺服器無法寫入表示多對多 (N:N) JDBC 資料庫表格關係的 JDBC 屬性。
具有多位元組 DN 並使用 DSCC 建立的目錄代理伺服器實例無法在 Linux 上啟動。
當您在 Solaris 10 上使用服務管理設備 (SMF) 來啟用伺服器實例,則您的系統重新開機時,實例可能不會啟動。
若要解決此問題,如果從未呼叫過 dsadm enable service 指令,請將下列標示 + 的指令行增加至 /opt/SUNWdsee/ds6/install/tmpl_smf.manifest。
... restart_on="none" type="service"> <service_fmri value="svc:/network/initial:default"/> </dependency> + <dependency name="nameservice" grouping="require_all" \ + restart_on="none" type="service"> + <service_fmri value="svc:/milestone/name-services"/> + </dependency> <exec_method type="method" name="start" exec="%%%INSTALL_PATH%%%/bin/dsadm start --exec %{sunds/path}"... |
當在 Solaris 10 上使用服務管理設備 (SMF) 啟用伺服器實例,而您的系統重新開機時,實例可能不會啟動。
若要解決此問題,如果從未呼叫過 dsadm enable service 指令,請將下列標示 + 的指令行增加至 /opt/SUNWdsee/ds6/install/tmpl_smf.manifest。
... restart_on="none" type="service"> <service_fmri value="svc:/network/initial:default"/> </dependency> + <dependency name="nameservice" grouping="require_all" \ + restart_on="none" type="service"> + <service_fmri value="svc:/milestone/name-services"/> + </dependency> <exec_method type="method" name="start" exec="%%%INSTALL_PATH%%%/bin/dsadm start --exec %{sunds/path}"... |
如果先前已呼叫過 dsadm enable service 指令,解決方法如下所示:
建立包含下列內容的檔案:
select dps addpg nameservice dependency setprop nameservice/grouping = astring: require_all setprop nameservice/restart_on = astring: none setprop nameservice/type = astring: service setprop nameservice/entities = fmri: "svc:/milestone/name-services" |
對檔案執行下列指令:
svccfg -f file |
如果有實例在維護狀態,請執行下列指令:
svcadm clear svc:/application/sun/dps:dps-{instancepath} |
在 HP-UX 上,如果您以設定為不同語言環境的多重瀏覽器階段作業來存取 DSCC,DSCC 可能會顯示語言環境中的某些字串,其與瀏覽器中所設定的語言環境會有所不同。
若機器具備多個主機名稱,主控台就不能擷取目錄代理伺服器實例的後端狀態。
在與 JDBC 物件類別中的 DN 模式對應之 RDBMS 表格中,如果存在重複項目,則會在對 JDBC 資料檢視執行搜尋時,由目錄代理伺服器傳回重複的子樹狀目錄節點 (非尾節點)。例如,如果 JDBC 物件類別中有 DN 模式 ou,且在對應 JDBC 屬性 ou 的 RDBMS 欄位中有重複的項目 (如 sales),則搜尋結果中會有重複的節點 (如 ou=sales)。
若要解決此問題,請執行下列作業:
從包含對應到 ou JDBC 屬性之欄位的表格中取出這些值以建立 RDBMS 檢視,如此便不會有重複的項目。
以 JDBC 物件類別 (DN 模式為 ou) 中的 RDBMS 檢視名稱取代 RDBMS 表格名稱。此方法的限制在於,由於 RDBMS 檢視為唯讀,因此無法透過目錄代理伺服器為 JDBC 屬性 ou 增加任何值。
在 DSCC 之實例的 [更多的檢視選項] 中,[存取記錄]、[錯誤記錄] 和 [稽核記錄] 標籤下顯示的日期未本土化。
在使用 Tomcat 伺服器配置的 DSCC 中,[說明] 與 [版本] 快顯式視窗的標題會將多位元組字串顯示為亂碼。
dpadm show-cert dps-instance-path 指令輸出中的字串 owner 未翻譯為簡體中文和繁體中文。
提示確認停止或取消註冊伺服器的快顯式視窗,在法文語言環境中顯示雙引號 (")。