2015-07-30 2 views
0

При выполнении нагрузочных тестов на WSO2 BPS 3.2.0 мы столкнулись с проблемой.NullPointerExceptions при выполнении LoadTest на WSO2BPS

Позвольте мне рассказать вам больше о проекте и наших действиях. Наш процесс BPS предназначен для управления некоторыми взаимодействиями с 3 системами. В основном он «распространяется» на две части - сначала для CREATE INSTANCE в одной из систем, затем ожидания бит, а затем SELECT OFFER в контексте экземпляра. В реальной жизни это выглядит так: пользователь хочет получить продукт, приложение запрашивает систему для предложений, а затем пользователь выбирает предложение из доступных. В BPS первая часть представляет собой прямолинейный процесс, вторая часть распространяется на два потока - один для обновления информации с новыми предложениями, а другой - ждать, если пользователь выберет один из них. Наша цель - выдерживать около 1000-1500 симуляционных потоков при нагрузочном испытании. Внешние системы моделируются макетами, выполняемыми LoadUI.

Мы можем достичь нашей цели, если мы отключим «События мониторинга уровня процесса» в дескрипторе развертывания (установите его «none») нашего процесса. Все идет хорошо и гладко в течение нескольких часов.

Но если включить эту функцию (и нам нужно), все падает с ошибкой очень скоро (на около 100-200 серии):

[2015-07-28 17: 47: 02573] ERROR {org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy} - Ответ на обработку ошибок для MEX null java.lang.NullPointerException at org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy.onResponse (BPELProcessProxy.java:402) на org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy.onAxisServiceInvoke (BPELProcessProxy.java:187) в [.... и так далее ....]

После первого появления этой ошибки появляется другой тип - другие потоки просто падают после таймаута.

Кажется, что база данных в порядке (кстати, это MySQL 5.6.25). На приборной панели нет экстремальных уровней ввода или вывода.

Поэтому я считаю, что сам BPS делает узкое место. Мы дали ему 8gb heap, и его параметры conf заданы для экстремальных объемов потоков (если это возможно, отрицательные значения установлены, а если нет - просто смешно большие, как 100000).

Кто-нибудь когда-либо сталкивался с этой проблемой? Цените любую помощь очень много.

+0

Оказывается, что не БТС, но база данных является узким местом. Что-то не так с параллельными потоками. – Yury

+0

Кажется, что версия BPS 3.5.0 решает эту проблему, но пока не уверен в сценариях с высокой нагрузкой. Но я уже точно знаю один сценарий, который вызывает NullPointerException на 3.2.0 и отлично работает на 3.5.0. – Yury

ответ

0

решаемых в версии 3.5.0 BPS см освободить струны