Как доказать, что тайм-аут соединения с сокетом происходит в течение 60 секунд? - PullRequest
2 голосов
/ 27 марта 2012

Я знаю, что время ожидания сокета для извлечения URL-адресов установлено на 60 секунд.

Я использую java.util.logging, и прежде чем вызвать функцию https, я регистрирую это:

2012-03-27 14: 46: 15.445 TelenorClient changeSimStatus: попытка 1 ....

И исключение возникает через 5 секунд

2012-03-2714: 46: 20.197 TelenorClient changeSimStatus: исключение java.net.SocketTimeoutException: время ожидания при получении: https://serviceportal...

Я использую клиент веб-службы на основе JAX-WS и задаю время ожидания с помощью BindingProviderProperties, а RequestContext не являетсяразрешено, согласно этому сообщению:

com.sun.xml.internal.ws.client.BindingProviderProperties не поддерживается средой выполнения Java в Google App Engine

Что соответствуетс первым утверждением, что Google App Engine имеет свой собственный способ установки времени ожидания.Но опять же, мне кажется, что это намного короче, чем 60 секунд.

Я ищу советы о том, как решить эту проблему.

Ответы [ 2 ]

3 голосов
/ 27 марта 2012

Служба получения URL-адресов (используемая вашим клиентом JAX-WS) имеет значение с ограничением времени ожидания 5 секунд .Вы можете увеличить его до 60 секунд с помощью setConnectTimeout().Для более (до 10 минут) вы должны выполнить его через очередь задач или Cron.

Обновление:

Если клиент youR JAX-WS не предоставляет вам доступ ксоединение, чем вы можете попробовать выполнить весь вызов JAX-WS в очереди задач.Это проще всего сделать с помощью DeferredTask.

2 голосов
/ 03 июля 2012

Я получил этот совет от Митча Рудоминера; просто используйте текстовые значения констант.

Map<String, Object> context = ((BindingProvider) service).getRequestContext();
context.put("com.sun.xml.ws.request.timeout", 60*1000);
context.put("com.sun.xml.ws.connect.timeout", 10*1000);

Похоже, это работает:

2012-07-03 14: 26: 45 .604 com.simservices.bus.kpndata.DataDetailsServlet getDetailData: 2012-04-01 - 8931084711061420005

2012-07-03 14: 26: 56 .183 com.simservices.bus.kpndata.DataDetailsServlet getDataUsage: получение ответ для данных из КПН

2012-07-03 14: 27: 33 .619 com.simservices.bus.kpndata.DataDetailsServlet getDataUsage: detailsList содержит 4612 элементов

2012-07-03 14: 27: 36 .540 com.simservices.bus.kpndata.DataDetailsServlet getDataUsage: добавлено 4612 элементов данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...