Я хочу прокси-сервер RemoteUserStoreManagerService (выставлен на WSO2 IS) через WSO2 ESB.WSO2 ESB Proxy для WSO2 IS RemoteUserStoreManagerService
Когда я вызываю операцию getUserClaimValuesForClaims, я получаю ответ. Я тестировал WSO2 IS (подключенный к моему Active Directory) для производительности. Я отправил запросы в 100 потоков (каждый поток с задержкой в 250 мс), и это дало мне средний ответ 250 мс (это нормально для меня).
Таким образом, я проксировал операцию getUserClaimValuesForClaims, используя прокси Transformation, и он также работал. Но во время тестирования производительности (с той же или меньшей нагрузкой) у меня появились следующие ошибки, и не все сообщения вернулись (в среднем 1 из 100 сообщений).
[2014-01-06 19:28:21,047] INFO - LogMediator To: http://www.w3.org/2005/08/addressing/anonymous, WSAction: , SOAPAction: , MessageID: urn:uuid:d2b85c03-beaf-409b-bf39-2e8143bd9e0b, Direction: response
[2014-01-06 19:28:38,441] ERROR - SourceHandler I/O error: An established connection was aborted by the software in your host machine
java.io.IOException: An established connection was aborted by the software in your host machine
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:25)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:202)
at sun.nio.ch.IOUtil.read(IOUtil.java:175)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:243)
at org.apache.http.nio.reactor.ssl.SSLIOSession.receiveEncryptedData(SSLIOSession.java:348)
at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:376)
at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady
[2014-01-06 19:29:14,051] WARN - TargetHandler http-outgoing-66: Connection time out while in state: REQUEST_DONE
[2014-01-06 19:29:14,061] WARN - EndpointContext Endpoint : AnonymousEndpoint will be marked SUSPENDED as it failed
[2014-01-06 19:29:15,041] WARN - EndpointContext Suspending endpoint : AnonymousEndpoint - last suspend duration was : 30000ms and current suspend duration is : 30000ms - Next retry after : Mon
[2014-01-06 19:29:14,451] WARN - SourceHandler Connection time out after request is read: http-incoming-57
Я думаю, что он говорит, это тайм-ауты на бэкэнд; но я получаю ответ, записанный в faultSeuence.
Я заметил, что проблема вызвана медиатором XSLT в реализации прокси, потому что когда я удалял медиаторы xslt, журнал пуст. Я попробовал xquery, и все было так. Эти проблемы вызывают даже посредник журнала в outSequence.
Вот мой последний прокси.
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="GetUserProxy" transports="https http" startOnLoad="true" trace="disable">
<target>
<endpoint>
<address uri="https://localhost:9443/services/RemoteUserStoreManagerService.RemoteUserStoreManagerServiceHttpsSoap12Endpoint/"/>
</endpoint>
<inSequence/>
<outSequence>
<log/>
<send/>
</outSequence>
<faultSequence/>
</target>
</proxy>
Когда я извлекаю посредник журнала, WARN MESSAgES disapears из журнала и ВСЕ ответные сообщения возвращаются в SoapUI.
Может ли кто-нибудь сказать мне, почему он ведет себя таким образом? спасибо. David
Привет, Abhi, я использую wso2esb-4.8.0. – David
Если WSO2IS отлично работает, когда вы вызываете самостоятельно (используя curl или soapUI). Затем попытайтесь закрыть соединение явно в вашем прокси в ESB –
Abhi
Благодарим вас за подсказку Abhi. Но теперь 2 сообщения из 1000 не приходили, используя медиаторы XSLT. [2014-01-07 18: 06: 55,422] ERROR - исключение NativeWorkerPool Uncaught org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError в [row, col]: [8,21] Сообщение: Разметка в документе, следующем за корневым элементом, должна быть хорошо сформирована. [2014-01-07 18: 06: 55,578] ОШИБКА - Ошибка RelayUtils при создании Passthrough stream org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError в [row, col]: [1, 1] Сообщение: Содержимое не допускается в прологе. – David