Являются ли 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