IBM Worklight 6.0.0.1 — настройка времени ожидания в адаптерах

Как изменить таймаут при обращении из приложения к адаптеру с помощью WL.Client.invokeProcedure?

Я прочитал ответ в следующем сообщении, но он не работает: Как увеличить время ожидания процедуры адаптера в Worklight?

Моя конфигурация:

initOptions.js

timeout: 600000


XML адаптера

<procedure name="addInsertarMensaje" securityTest="wl_unprotected" requestTimeoutInSeconds="600">


Вызов адаптера

var timeout = 600000;
var invocationOptions = {
  onSuccess: successSynchDoc,
  onFailure: errorSynchDoc,
  invocationContext: context,
  timeout: timeout
};


Android LogCat:

12-02 11:23:04.603: D/Mapfre(21661): MyCustomTrace: Invoking the adapter

12-02 11:23:05.564: D/Mapfre(21661): Request [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query]

12-02 11:23:26.214: D/Mapfre(21661): MyCustomTrace: After invoking the adapter

12-02 11:24:29.297: E/Mapfre(21661): [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query] Host is not responsive. Try to manually access the URL through the android emulator browser to verify connectivity.


Существует ли максимальное значение?

Это следы в каждой части.

В приложении:

12-02 14:30:24.473: D/Mapfre(8641): Custom Trace. Just befor WL.Client.invokeProcedure
12-02 14:30:25.103: D/Mapfre(8641): Request [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query]
12-02 14:31:42.670: E/Mapfre(8641): [http://192.168.1.39:10080/xxx/apps/services/api/Mapfre/android/query] Host is not responsive. Try to manually access the URL through the android emulator browser to verify connectivity.

В адаптере, получающем вызов от приложения:

[2/12/13 14:31:45:224 CET] 000000bf ht.integration.js.JavaScriptIntegrationLibraryImplementation I Custom Trace. Into Adapter implementation.

В адаптере, получающем ответ от хоста:

[2/12/13 14:33:34:714 CET] 000000bf ht.integration.js.JavaScriptIntegrationLibraryImplementation I Custom Trace. Received id: 3

person Jxadro    schedule 02.12.2013    source источник


Ответы (1)


  • Приложение не вызывает адаптер. Основная схема:

Application << >>[ Worklight Server << >> Adapter ]<< >> Backend

  • Кроме того, Worklight не устанавливает максимальное значение времени ожидания. Есть значение по умолчанию, но вы изменили его во всех трех местах.

Краткое объяснение:

  1. В initOptions.js свойство timeout относится к количеству времени, в течение которого приложение будет ожидать подключения к серверу Worklight.

  2. В XML адаптера свойство requestTimeoutInSeconds относится к количеству времени, в течение которого сервер Worklight будет ожидать ответа от серверной части.

  3. В параметрах вызова свойство timeout относится к количеству времени, в течение которого приложение будет ожидать ответа от сервера Worklight.

В вашем случае ошибка указывает на то, что вы даже не достигли сервера Worklight, не говоря уже о вызове процедуры адаптера.

  • Убедитесь, что вы можете связаться с сервером; следуйте инструкциям из сообщения об ошибке — попробуйте загрузить Worklight Console в мобильном браузере вашего устройства.
  • Убедитесь, что устройство и сервер находятся в одной сети.
  • Убедитесь, что брандмауэр (если он включен) не блокирует важные порты или адреса.

В случае, если вы дошли до сервера Worklight, так как явно не прошло 600 секунд, я считаю, что хост просто недоступен. Убедитесь, что вы указываете правильный адрес хоста и ничто не мешает успешному соединению.

Если хост был найден, а в пути или сети что-то еще не так, то будет возвращен ответ, но он не будет ждать 600 секунд.

person Idan Adar    schedule 02.12.2013
comment
Я отредактировал вопрос со следами в каждой части и отметками времени. Отправляемое сообщение имеет размер 4 мг... - person Jxadro; 02.12.2013
comment
Эти 2 строки бесполезны; как написано в ответе, убедитесь, что хост указан правильно, выполните шаги проверки в нижней части ответа. - person Idan Adar; 02.12.2013
comment
Почему бы нет? Все верно. Я достигаю адаптера, адаптер достигает хоста, и адаптер получает ответ хоста. Таким образом, все хосты (Worklight Server и Final Host) доступны и работают. Единственная часть, которая не работает, — это приложение, которое выбрасывает тайм-аут до того, как адаптер вернет ответ. - person Jxadro; 02.12.2013