database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
ㆍLDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
LDAP Q&A 2012 게시물 읽기
No. 2012
ldap jsdk 질문입니다.
작성자
초보
작성일
2004-02-18 11:26
조회수
7,553

java sdk가 아직은 c sdk처럼 최적화(?)가 덜 된 것 같다는 느낌이...저만 그런가요?

아직 많이는 안 써봐서리...

암튼 건 그렇구...java sdk에서 ldap search를 한 다음 몇개의 엔트리가 검색됐는지 갯수를 가져오는 함수가 있잖아요??

getCount 이런 함수를 찾긴했는데 결과가 제대로 안나오고 거의 1로 나왔던가? 그러더라구요..

c에 있는 함수는 제대로 동작을 하는데 말이죠...

그래서 루프를 돌면서 갯수를 파악해야하는데...혹시 관련함수가 있긴 한건가요??

어쩔땐 루프를 두번 돌려야할때도 있거든요...count를 먼저 알고 난 다음에 값을 가져와야 할 상황이 발생하면요...이럴땐 한번 서치할 시간의 두배의 시간이 걸리는 것 같더라구요...

아시는분 답변좀 부탁드리겠습니다.

 

이 글에 대한 댓글이 총 2건 있습니다.

getCount() 함수를 사용하는것이 맞는것 같습니다.

대략 다음의 예제처럼 .....

getCount()의 함수 API를 살펴본 결과 LDAPSearchConstraints 의 control이 필요한것 같습니다.

저도 첨엔 1로 밖에 나오지 않더군요..

그럼 이만

 

 

/////////////////////////////////////////////////////////////////////////////////////////

import netscape.ldap.*;
import java.util.*;
import java.io.*;

public class Search {
    public static void main( String[] args ) throws Exception
 {
  LDAPConnection ld = null;
  LDAPEntry findEntry = null;
  LDAPSearchResults res = null;  
  int dn_count=0;
  try {
   ld = new LDAPConnection();
   String MY_HOST = "localhost";
   int MY_PORT = 389;
   ld.connect( MY_HOST, MY_PORT );
   String MY_SEARCHBASE = " ou=people,c=kr";   
   String MY_FILTER = "objectclass=*";
   LDAPSearchConstraints cons = ld.getSearchConstraints();
   cons.setBatchSize(0);
    res = ld.search( MY_SEARCHBASE,LDAPConnection.SCOPE_SUB,MY_FILTER,null,false,cons);
   System.out.println( "AUTO Count : " + res.getCount() );
  } catch( LDAPException e ) {
          System.out.println( "Error: " + e.toString() );
  }
    while ( res.hasMoreElements() ) {
                      try {
                       findEntry = res.next();
                       dn_count++;
                      } catch ( LDAPException e ) {
                       e.printStackTrace();
                      }
                    }
    System.out.println( "MANUAL Count : " +dn_count);
  if ( (ld != null) && ld.isConnected() ) {
   try {
       ld.disconnect();
   } catch ( LDAPException e ) {
    System.out.println( "Error: " + e.toString() );
   }
  }
 }
}

////////////////////////////////////////////////////////////////////////

jack님이 2004-02-19 12:55에 작성한 댓글입니다.
이 댓글은 2004-02-19 13:03에 마지막으로 수정되었습니다. Edit

감사합니다..

문제는 cons.setBatchSize(0); 이거였습니다....

저는 샘플에 나온데로 1을 파라미터로 넘겨줬었거든요..

0으로 하니 결과가 제대로 나오네요...

 

초보님이 2004-02-19 15:57에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2015LDAP 관련 책은 없나요? [1]
김희석
2004-03-03
7375
2014openLDAP2.2.5 에서 slapd.conf 와 ACL 설정하는 방법좀 가르쳐주세요 [1]
윤성중
2004-02-27
7336
2013한대의 서버에 다중도메인을 포함하고 아이디를 똑 같은 걸로?
김승섭
2004-02-25
7058
2012ldap jsdk 질문입니다. [2]
초보
2004-02-18
7553
2011openldap를 이용하여 NIS 구축.. [1]
꼬막이
2004-02-18
7410
2010Netscape DS 4.12인데 에러로그에 이상한 것이.. [2]
초보
2004-02-13
7430
2009DSML & JNDI Programming에 대한 자료를 구합니다. [1]
조윤희
2004-02-12
7502
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2022 DSN, All rights reserved.
작업시간: 0.062초, 이곳 서비스는
	PostgreSQL v14.2로 자료를 관리합니다