Являются ли Axis2 сгенерированными заглушками потокобезопасными?

Являются ли клиентские заглушки сгенерированы WSDL потоком Axis2?

Конечно, для "потокобезопасности" не требуется строго определенный термин, поэтому мне, по крайней мере, интересно следующее:

Являются ли разные экземпляры одного и того же класса-заглушки доступными одновременно разными потоками с тем же эффективным поведением, что и однопотоковое выполнение?

Является ли один экземпляр одного и того же класса-заглушки доступным одновременно разными потоками с тем же эффективным поведением, что и одни и те же вызовы, чередующиеся каким-то образом в однопоточном исполнении?

Вы также можете использовать терминологию, описанную здесь здесь (и исходящую здесь), чтобы более точно обсудить это.

Ответы

Ответ 1

Я не уверен в отношении оси 2, но по крайней мере axis1 генерирует не-поточные клиентские заглушки. У меня сложилось впечатление, что каждый другой клиент SOAP не был также потоковым. Если я правильно помню, проблема заключалась в том, что библиотека синтаксического анализа XML использовалась не-потоковым способом с помощью клиентского заглушки.

Использование apache commons-pooling для объединения экземпляров и использования каждого из одного потока за время работы, хотя.

Обновление: для Axis2 см. https://issues.apache.org/jira/browse/AXIS2-4357 (утверждает, что Axis2 не является потокобезопасным, по дизайну)

Ответ 2

Эти заглушки являются апатридами, позволяющими повторно использовать экземпляры заглушки. Не могли бы вы рассказать о проблеме, с которой вы сталкиваетесь с Axis2. Обычно люди рекомендуют Xfire по оси.

Ответ 3

Думаю, я постараюсь ответить на мой собственный вопрос, предоставив некоторое обновление для дальнейших исследований, которые я сделал. Похоже, что по умолчанию более старые версии окунов Axis2 могут быть только "поточно-совместимыми" (не могут выполнять вызовы одного и того же экземпляра экземпляра одновременно из нескольких потоков, но вызовы в разные экземпляры в порядке).

См. например:

http://markmail.org/message/3lu7x7pfo47vgnck http://markmail.org/message/sljyf6lpecxqllgx

У вас могут возникнуть утечки сокетов и выключение сокетов, если вы не вызываете cleanup/cleanupTransport в соответствии с этим потоком и многими связанными:

http://issues.apache.org/jira/browse/AXIS2-3670

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

http://amilachinthaka.blogspot.com/2009/05/improving-axis2-client-http-transport.html