JavaのSVNKitを使用してSVNエクスポートを行うと、500件ほどエクスポートするとSVNサーバが落ちてしまいます。
同様のツールで、Windowsからエクスポートすると2000件以上エクスポートできています。
WindowsからとLinuxからではSVNにかける負荷が変わるのでしょうか?
ご存知の方、原因が予想できる方いらっしゃいましたらご教授ください。
ちなみにSVNはWindows Server上に構築しています。
以下、SVNKitをしようしてエクスポートする処理のソースです。
```
public boolean SVNExport(String messagepath, String propath, DBAccess acc,
ReleaseData reldata, String VLR, String osName, String fullpath)throws IJXException {
/** 抜出結果 */
boolean result = false;
/** SVN格納パス */ String svnpath = ""; /** モジュール名 */ String module = ""; /** SVNリビジョン */ int svnrevision = 0; /** SVNルートパス */ // String svnroot = ""; /** SVNユーザー */ String svnuser = ""; /** SVNパスワード */ String svnpass = ""; try { // プロパティファイルから情報を取得 Properties property = acc.propertyread(messagepath, propath); svnuser = property.getProperty("svnuser");// SVNユーザーを取得 svnpass = property.getProperty("svnpass");// SVNパスワードを取得 // DBから情報取得 svnpath = reldata.getSvn_path(); // SVN格納パスの取得 module = reldata.getModule_name(); // 抜出モジュール名の取得 svnrevision = reldata.getSvn_revision(); // SVNリビジョンの取得 // File型に変換 File file = new File(fullpath); // StringBuilder型に変換(文字列操作) System.out.println("SVN格納パス:" + svnpath); StringBuilder sb = new StringBuilder(svnpath); // SVN格納先(絶対パス)を取得 sb = sb.append(module); svnpath = sb.toString(); System.out.println("SVN格納パス:" + svnpath); // SVNURL型に変換 String url = SVNEncodingUtil.autoURIEncode(svnpath); SVNURL svnUrl = null; svnUrl = SVNURL.parseURIEncoded(url); // SVNRevision型に変換 SVNRevision revision = SVNRevision.create(svnrevision); System.out.println(revision); // SVNKitの初期化 setupLibrary(); // SVNクライアントマネージャー生成 SVNClientManager _svnClient = SVNClientManager. newInstance(SVNWCUtil.createDefaultOptions(true), svnuser, svnpass); SVNUpdateClient client = _svnClient.getUpdateClient(); ISVNOptions comit = client.getOptions(); boolean ch = comit.isUseCommitTimes(); System.out.println("コミット判定:"+ch); // 抜出先に同ファイルが既に存在していれば削除(初期化) FileWrite fw = new FileWrite(); fw.Deletefile(file); // boolean same = fw.Deletefile(file); /*if(same){ String updator = reldata.getUpdate_user_id(); }*/ System.out.println("SVNリビジョン" + revision + "を" + file + "に抜き出します"); // 抜出対象リビジョン番号(戻り値) long revisionnumber = 0; // 抜出処理(Export) // SVNRevision.HEAD revisionnumber = client.doExport(svnUrl, file, SVNRevision.HEAD, revision, null, true, SVNDepth.INFINITY); SVNInfo svninfo = _svnClient.getWCClient().doInfo(svnUrl, SVNRevision.HEAD, revision); file.setLastModified(svninfo.getCommittedDate().getTime()); // 引数6番目のtrue = 同じファイル名があった場合は置き換える System.out.println("SVNリビジョン" + revisionnumber + "を" + file + "に抜き出しました"); result = true; } catch (SVNException e) { result = false; // システムエラーログ出力 LogUtil.writeLog(LogUtil.ERROR, this.getClass().getSimpleName(), METHOD_NAME, LogUtil.MSG_SYSTEM_ERR, null, e); e.printStackTrace(); throw new IJXException(); } finally { // メソッド終了ログ出力 LogUtil.writeLog(LogUtil.DEBUG, this.getClass().getSimpleName(), METHOD_NAME, LogUtil.MSG_METHOD_END); } return result; } /**SVNKitの初期化メソッド*/ private static void setupLibrary() { // SVNURLが svn:// and svn+xxx://の場合 SVNRepositoryFactoryImpl.setup(); }
}