Могу ли я оставить SOAPConnection открытым навсегда? - PullRequest
2 голосов
/ 01 декабря 2011

Могу ли я сделать SOAPConnection открытым навсегда? Это не вызывает connection.close () после запроса мыла.

Ответы [ 4 ]

1 голос
/ 01 декабря 2011

В: Могу ли я сделать SOAPConnection открытым навсегда?

A: В теории да.

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

Это не обязательно плохая стратегия:

a) сначала откройте соединение и прочитайте все, что вам нужно

б) просто оставьте соединение открытым

в) проверка на наличие ошибок (которые вы должны сделать в любом случае)

d) закрывать и снова открывать только при необходимости (когда попытка чтения не удалась)

Просто мысль ...

0 голосов
/ 01 декабря 2011

Вы говорите о SAAJ?

Базовое TCP-соединение обычно кэшируется в течение определенного времени.
Либо время, в течение которого конечная точка сервера указана в заголовке HTTP, либо время, в течение которого JVM сохраняет его открытым.

Поэтому, если соединение слишком долго не используется, оно будет освобождено.
Я не уверен, как долго он будет оставаться открытым, хотя

0 голосов
/ 01 декабря 2011

Вы можете делать все, что хотите, но лучше всего использовать соединение IO, если вам не нужно использовать его снова, закройте / отпустите его, многочисленные ресурсы в памяти могут полностью утечь вашу программу или даже сломать ее.,

Но я не уверен, есть ли в SOAPConnection постоянный принцип, обеспечивающий автоматическое закрытие по истечении фиксированного времени.

0 голосов
/ 01 декабря 2011

могут быть проблемы с памятью, и, как указал другой пользователь, устаревшие соединения мыла будут уничтожены маршрутизаторами

...