Параллельные вызовы к проблемам веб-службы Oracle WebLogic 10.3 - PullRequest
0 голосов
/ 27 января 2012

У меня есть веб-служба (в java) на Oracle WebLogic 10.3, которая выполняет все виды запросов к базе данных.Недавно я начал стресс-тесты.Он прошел тесты на повторение (несколько раз вызывал WS несколько раз), но проблемы стали возникать, когда началось параллельное тестирование.Выполнение двух одновременных вызовов приводит к ошибкам.При выполнении правильных тестов результаты выглядели так, будто WS вообще не мог обрабатывать параллельные вызовы, что, очевидно, не должно иметь место.Ошибка включала исключения нулевого указателя, закрытые соединения или подготовленные операторы и т. Д. Я немного озадачен этим, поскольку я не смог найти какие-либо параметры конфигурации, которые могли бы повлиять на это, но опять же мои знания о WLS весьма ограничены.*

Спасибо за любые предложения заранее.

Ответы [ 2 ]

0 голосов
/ 12 марта 2013

Ответ, который вы пометили как правильный, абсолютно неправильный.

Методы веб-сервиса не должны выполняться для обеспечения многопоточности.

Многопоточность выполнения веб-сервиса weblogic.

Это похоже на сервлеты

"Сервлеты являются многопоточными. Приложения на основе сервлетов должны распознавать и обрабатывать это соответствующим образом. Если большие секции кода синхронизируются, приложение фактически становится однопоточным, и пропускная способность резко уменьшается."

http://www.ibm.com/developerworks/websphere/library/bestpractices/avoiding_or_minimizing_synchronization_in_servlets.html

Код внутри WS, который вы можете синхронизировать в зависимости от того, что вы делаете.

Имеет ли смысл синхронизировать метод веб-службы?

0 голосов
/ 12 марта 2013

Точно так же есть четкий ответ.

Когда есть несколько одновременных вызовов к данной веб-службе (в данном случае использовался SOAP / JAX-WS) в WLS, используется один и тот же объект (нетиспользуются пулы или очереди), поэтому реализация должна быть поточно-ориентированной.

РЕДАКТИРОВАТЬ:

Для пояснения: предположим, что в классе реализации WebService, созданном JDeveloper, есть атрибут classЕсли вы измените этот атрибут в своем веб-методе (и затем используете его), это вызовет проблемы синхронизации, когда метод вызывается (то есть вызывается WS) одновременно.Когда я впервые начал создавать веб-сервисы, я думал, что весь объект WebService создавался заново для каждого вызова WS, но, похоже, это не так.

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