OID 11g/12c Search Using VLV And Multiple Attribute Sorting Fails with LDAP-12 or LDAP-19 Error
(Doc ID 2480031.1)
Last updated on MARCH 07, 2019
Applies to:
Oracle Internet Directory - Version 11.1.1.9.0 and laterInformation in this document applies to any platform.
Symptoms
On : 11.1.1.9.0 version, OID LDAP Server
OID Supports VLV and Sort controls as the following are available in the "supportedControl" attribute list
- 1.2.840.113556.1.4.473 --- This is the SortControl
- 2.16.840.1.113730.3.4.9 --- This is the VirtualListViewControl
However, when a search is executed against OID using VLV paging with Sort control having multiple attributes, it fails.
1) Using Java API, gets LDAP error code 12
Corresponding log snippet from oidldapd log
ConnDN:cn=orcladmin INFO :gslfseADoSearch BASE = cn=users,dc=company FILTER =
(objectclass=*) #REQDATTR = 0 SCOPE = 1 REQDATTRS = TIMELIMIT = 3600 SIZELIMIT = 0 DEREF = 3
* gslsbsSearch * BASE = "cn=users,dc=company,dc=com" FILTER = "(objectclass=*)" SCOPE = 1
* gslbsvlvaProcVlvReqCtrl * Recevied VLV control with BeforeCount: 0, AfterCount: 5, Offset: 0, ContentCount: 10
* gslfbpsParseSortCtrlValue: Sort attr = uid, ascending=0, status = 0
* gslbsvlvbGenProcVlvResCtrl * Target position computed: 0
* INFO:gsleswrASndResult OPtime=44769 micro sec RESULT=12 tag=101 nentries=0
* Qtime=0 micro sec
2) Using ldapsearch, gets LDAP error 19
Note: ldapsearch shipped with OID doesn't have the options to test this. So, may need to test it using ldapsearch that comes with an OUD installation (if available)
example:
ldapsearch -h <OID_host> -p <OID_port> -D "cn=orcladmin" -w <password> -b "cn=users,dc=company,dc=com" -s sub
--virtualListView "0:2:1:0" --sortOrder "uid,cn" "objectclass=*" dn
SEARCH operation failed
Result Code: 19 (Constraint Violation)
ConnDN:cn=orcladmin INFO :gslfseADoSearch BASE = cn=users,dc=company,dc=com FILTER =
(objectclass=*) #REQDATTR = 1 SCOPE = 2 REQDATTRS = dn TIMELIMIT = 3600 SIZELIMIT = 0 DEREF = 0
* gslsbsSearch * BASE = "cn=users,dc=company,dc=com" FILTER = "(objectclass=*)" SCOPE = 2
* gslbsvlvaProcVlvReqCtrl * INFO * Entry
* gslbsvlvaProcVlvReqCtrl * Recevied VLV control with BeforeCount: 0, AfterCount: 2, Offset: 1, ContentCount: 0
* gslbsvlvaProcVlvReqCtrl * INFO * Exiting with status 0
* gslfbpsParseSortCtrlValue: Sort attr = uid, ascending=0, status = 0
* gslsbsSearch * entryCount: 8
* gslbsvlvbGenProcVlvResCtrl * INFO * Entry
* gslbsvlvbGenProcVlvResCtrl * Target position
* gslbsvlvbGenProcVlvResCtrl * INFO * Exit
* INFO:gsleswrASndResult OPtime=16122 micro sec RESULT=19 tag=101 nentries=0
Same search works fine if only single attribute is passed for sorting (--sortOrder "uid" )
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Cause |
Solution |
References |