У нас возникла проблема при попытке развернуть военные файлы на сервере приложений glassfish v2 с порталом liferay. когда мы обновили Ubuntu 10.4 до 10.10 (и выше), время развертывания сократилось с 21 секунды до 6 минут. Мне кажется, проблема в том, что при попытке получить http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd из оракула возникает тайм-аут. Должно быть что-то изменилось в Ubuntu между этими выпусками. Я думаю, что отчасти проблема в том, что мы находимся за корпоративным брандмауэром / прокси, но это не изменится, я боюсь ..
Так что было бы "лучше", чтобы. установите sun.net.client.defaultConnectTimeout равным 21 секунде (работает и дает то же время развертывания, что и в 10.4), храните dtd локально для доступа (так как теперь у нас нет доступа к нему ни с 10.4, ни с 10.10, следовательно, время -из ). Я думаю, мы могли бы изменить настройки tcp для linux на наших машинах для разработчиков, но это совсем не похоже на хорошее решение.
Используя следующий код, мы получаем время ожидания около 21 с на 10,4 и 189 с на 10,10.
long start = System.currentTimeMillis();
try {
System.out.println("start");
URL u = new URL("http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd");
URLConnection conn;
conn = u.openConnection();
System.out.print(conn.getConnectTimeout());
//conn.setConnectTimeout(5*1000);
int readTimeout = conn.getReadTimeout();
BufferedReader in = new BufferedReader(
new InputStreamReader(
conn.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
}
in.close();
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("Total time = " + (System.currentTimeMillis() - start) / 1000.0 + " seconds");