2013-05-21 9 views
0
  • 후 svnkit 자원을 해제하는 방법.내가 자바 응용 프로그램에서 <code>svnkit</code> SVN 개정 로그를 얻을 수 있지만, <code>visualVm</code> 일부 svnkit 자원 및 스레드 여전히 존재하고 살기에 마무리 후 공정에 사용 방법 로그

  • ex. org.tmatesoft.svn.core.internal.util.SVNHashMap $ KeyIterator, org.tmatesoft.svn.core.wc.DefaultSVNRepositoryPool $ TimeoutTask

  • 그리고 난 그것이 영향을 번 이상 로그온 할 때 응용 프로그램 성능.

  • 어떻게하면 svnkit 리소스를 출시 할 수 있습니까?

  • 코드 샘플 :

    public static SVNLogEntryHandler doLogFully(String[] paths, long startRevision, long endRevision, SVNRepository repository) throws SVNException { 
    SVNLogEntryHandler logEntryHandler = new SVNLogEntryHandler(); 
    
    repository.log(paths, startRevision, endRevision, true, true, 0, false, null, logEntryHandler); 
    
    return logEntryHandler; 
    } 
    
  • 이야기 로그 항목.

    for (SVNLogEntry logEntry : doLogFully(..,..,..,..,..).getLogEntries()) { 
        // store log entry 
        } 
    
  • 업데이트

    • 은 내가 SVNRepositoryFactory를 사용하여 SVNRepository을 만들 수 있습니다.

      SVNRepository repository = SVNRepositoryFactory.create(SVNURL.parseURIEncoded(repositoryUrl)); 
          repository.setAuthenticationManager(SVNWCUtil.createDefaultAuthenticationManager(repositoryUserName, repositoryPassword)); 
      

답변

0

실행 ISVNRepositoryPool # 당신이 SVNRepository 인스턴스를 만들 수있는 연결 풀에 폐기하십시오. 타이머가 멈 춥니 다.

SVNKit 리소스 공개에 대한 내용은 article도 참조하십시오.

+0

문서와 업데이트를 기반으로 질문을 업데이트합니다. 리소스와 연결을 해제하기 위해'repository.closeSession(); '만 호출하면됩니다. –

+0

어떤 프로토콜을 사용합니까? svn + ssh를 사용하면 SVNKit은 SSH 연결을 약 10 분 동안 계속 유지합니다. 그렇지 않으면 모든 작업이 매우 느려지므로. –

+0

나는 svn을 사용하고'repository.closeSession();'도 시도하지만 visualVm은 여전히'org.tmatesoft.svn.core.wc.DefaultSVNRepositoryPool $ TimeoutTask'을 얻는다. 'org.tmatesoft.svn.core.internal.util.SVNHashMap $ KeyIterator'를 호출합니다. –