[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Handle-info] debug slow resolution of handles



Hi,

we are running a handle server for prefix 10273 at host dc-app3-10.gfz-potsdam.de, currently 3.6 million handles registered. Registration and resolution of handles works - but both is very slow (10 to 20 seconds, in some cases around 90 seconds).

To investigate the problem, I took the part of our program that resolves handles to URLs and discovered that it seems this slow in general (see inline JAVA code). I get answers in around 10 seconds for our prefix (10273) and for the two DataCite DOIs.

Since DataCite uses a different prefix and a different handle server, I wonder if I do something wrong? Does the HandleResolver class need a special setup to talk to our host (dc-app3-10.gfz-potsdam.de) directly?



Thanks
Damian



------

import java.nio.charset.Charset;
import net.handle.hdllib.AbstractMessage;
import net.handle.hdllib.AbstractResponse;
import net.handle.hdllib.AdminRecord;
import net.handle.hdllib.AuthenticationInfo;
import net.handle.hdllib.CreateHandleRequest;
import net.handle.hdllib.Encoder;
import net.handle.hdllib.HandleResolver;
import net.handle.hdllib.HandleValue;
import net.handle.hdllib.ModifyValueRequest;
import net.handle.hdllib.SecretKeyAuthenticationInfo;
import org.apache.commons.lang.StringUtils;
import java.security.PrivateKey;
import net.handle.hdllib.PublicKeyAuthenticationInfo;
import net.handle.hdllib.Util;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;

public class HandleService {

HandleResolver resolver = new HandleResolver();

public static void main(String[] args){
	
	HandleService s=new HandleService();
	try{
	System.out.println("--");		
	System.out.println(s.handleResolve("10273/TEST/TEST3"));
	System.out.println("--");		
	System.out.println(s.handleResolve("10273/TEST/TEST3"));
	System.out.println("--");		
	System.out.println(s.handleResolve("10.1594/GFZ.ISDC.CHAMP/CH-ME-2-ASC-BOOM"));		
	System.out.println("--");		
	System.out.println(s.handleResolve("10.1594/GFZ.ISDC.CHAMP/CH-ME-2-PLP"));				
	}catch(Exception e){
		System.out.println(e.getMessage());
	}
}

private String handleResolve(String doi) throws Exception{

try {
String[] types = { "URL" };
HandleValue[] values = resolver.resolveHandle(doi, types, null);
if (values.length == 0)
throw new Exception("no url found for handle " + doi);
return values[0].getDataAsString();
} catch (net.handle.hdllib.HandleException e) {
if (e.getCode() == net.handle.hdllib.HandleException.HANDLE_DOES_NOT_EXIST) {
throw new Exception("handle " + doi + " does not exist");
} else {
String message = "tried to resolve handle but failed: " + e.getMessage();
System.out.println(message);
throw new Exception(message, e);
}
}
}
}
------




--
Damian Ulbricht
Helmholtz Centre Potsdam
GFZ German Research Centre For Geosciences
Telegrafenberg, D-14473 Potsdam
Phone: +49 331 288-2392

_______________________________________________
Handle-Info mailing list
Handle-Info@cnri.reston.va.us
http://www.handle.net/mailman/listinfo/handle-info