Lotus Domino 서버에서 다음 Java 코드를 실행할 때 코드가 실행되는 위치에 따라 다른 결과가 나타납니다. 나는 자바 에이전트로 서버에서 코드를 실행하면Lotus Domino 서버에 액세스 할 때 다른보기 내용
private void doViewStuff(Session session, PrintStream out) throws NotesException {
Database db = session.getDatabase(null, "myDatabase.nsf");
View view = db.getView("myViewName");
Document doc = view.getFirstDocument();
while (doc != null) {
out.println("doc: " + doc.getUniversalID());
doc = view.getNextDocument(doc);
}
ViewEntryCollection entries = view.getAllEntries();
ViewEntry entry = entries.getFirstEntry();
while (entry != null) {
System.out.println("entry: " + entry.getColumnValues());
entry = entries.getNextEntry(entry);
}
}
- 은보기에 37,235 문서가 있습니다.
- 독립 실행 형 클라이언트에서 코드를 실행하면보기에 37217 개의 문서 만 있고 코드는 훨씬 느려집니다.
세부 사항 및 실행 환경 : 나는 클라이언트에 사용되는 NCSO.jar
는 SHA-1 d879f8992aae49a06769a564217633a9e0fbd1b6
을 가지고
- 서버 버전은 8.5.3이다.
- 데이터베이스
myDatabase.nsf
에는 약 150000 개의 문서가 있으며 각 문서에는 파일이 첨부되어 있습니다. - 누락 된 문서는 블록에 나타나지 않으며 색인 10000과 20000 사이에 나타납니다.
- 두 경우 모두 코드가 동일한 사용자 계정으로 실행됩니다.
18 개 문서를 찾을 수없는 이유는 무엇입니까?
업데이트 및 추가 검사시 명확한 설명
, 내가 참으로 다른 사용자 계정으로 코드를 실행했다고 밝혀, 및 액세스 할 수없는 문서는 어떤 리더 이름 필드를하였습니다.
서버에서 "대신 실행"CN=User Name/O=domain
에이전트를 구성했지만이 구성을 사용했습니다. 나는이 구성했다
effectiveUserName=CN=User Name/O=domain
commonUserName=domino01
userName=CN=domino01/O=domain
클라이언트의 경우 :
effectiveUserName=[NotesException: Not implemented]
commonUserName=User Name
userName=User Name/O=domain
을 그리고 나는이 코드를 사용하지만 그조차이었다 I가 Domino 콘솔에서 또는 HTTP를 통해 에이전트를 실행 여부는 중요하지 않았다 클라이언트 :
Session session = NotesFactory.createSession("127.0.0.1", "User Name", "password");
감사합니다. 나는 여전히 Domino 사용자 처리 및 액세스 권한에 대해 많이 배워야합니다. –