{"id":3242,"date":"2018-06-22T14:55:27","date_gmt":"2018-06-22T19:55:27","guid":{"rendered":"http:\/\/lisa.rushworth.us\/?p=3242"},"modified":"2018-06-28T15:02:36","modified_gmt":"2018-06-28T20:02:36","slug":"oracle-unified-directory-bug-paged-queries","status":"publish","type":"post","link":"https:\/\/www.rushworth.us\/lisa\/?p=3242","title":{"rendered":"Oracle Unified Directory Bug &#8211; Paged Queries"},"content":{"rendered":"<p>I&#8217;ve encountered a bug with paged queries to a front end (&#8220;directory proxy&#8221;) Oracle Unified Directory server. When the load balancing algorithm is configured to distribute traffic equally across the back-end servers (proportional distribution algorithm), some queries return duplicate records. Not\u00a0<em>quite<\/em> an infinite loop &#8212; for a small-ish (like 1300 objects) record set, I usually reach the end of the returned data round 50k records. But certainly not a valid result set either. And for a large result set (like 13,000 objects), it\u00a0<em>seems<\/em> endless.<\/p>\n<p>The oddest thing, though, is that different filters which produce the same result set do not\u00a0<em>all<\/em> return duplicate results. Our uid values are algorithmically formed &#8212; those with employeeType of RealEmployee all start with &#8216;A&#8217;, those with employeeType of Contractor all start with &#8216;B&#8217; type of rule. The prefix is then followed by a numeric sequence number. The filter (&amp;(!(uid=A*)(uid=B*))(sn=*)) duplicates results and seemingly runs forever. The filter (&amp;((employeeType=RealEmployee)(employeeType=Contractor))(sn=*)) returns the ~11k expected results. Go figure. Although this is\u00a0<em>algorithmically<\/em> quite odd, it does provide a nice work-around to the bug as I just had to try different filters until I found one that produced non-duplicated results.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve encountered a bug with paged queries to a front end (&#8220;directory proxy&#8221;) Oracle Unified Directory server. When the load balancing algorithm is configured to distribute traffic equally across the back-end servers (proportional distribution algorithm), some queries return duplicate records. Not\u00a0quite an infinite loop &#8212; for a small-ish (like 1300 objects) record set, I usually &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[550],"class_list":["post-3242","post","type-post","status-publish","format-standard","hentry","category-system-administration","tag-oracle-unified-directory"],"_links":{"self":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts\/3242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3242"}],"version-history":[{"count":1,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts\/3242\/revisions"}],"predecessor-version":[{"id":3243,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts\/3242\/revisions\/3243"}],"wp:attachment":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}