WSO2的WSO2 ESB代理是RemoteUserStoreManagerService

WSO2的WSO2 ESB代理是RemoteUserStoreManagerService,wso2,wso2esb,wso2is,Wso2,Wso2esb,Wso2is,我想通过WSO2 ESB代理RemoteUserStoreManagerService(在WSO2 IS上公开) 当我调用GetUserClaimValuesForcollaims操作时,我得到了响应。我测试了WSO2(连接到我的Active Directory)的性能。我发送了100个线程的请求(每个线程有250毫秒的延迟),它给了我平均250毫秒的响应(这对我来说还行) 因此,我使用转换代理代理来代理GetUserClaimValuesForcollaims操作,它也起了作用。但是在性能测试

我想通过WSO2 ESB代理RemoteUserStoreManagerService(在WSO2 IS上公开)

当我调用GetUserClaimValuesForcollaims操作时,我得到了响应。我测试了WSO2(连接到我的Active Directory)的性能。我发送了100个线程的请求(每个线程有250毫秒的延迟),它给了我平均250毫秒的响应(这对我来说还行)

因此,我使用转换代理代理来代理GetUserClaimValuesForcollaims操作,它也起了作用。但是在性能测试期间(使用相同或更小的负载),我遇到了以下错误,并且并不是所有消息都返回(平均100条消息中有1条)

我知道它说了什么,它在后端超时;但我在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>

当我删除日志中介器时,警告消息将从日志中消失,所有响应消息将返回到SoapUI

有人能告诉我为什么它会这样吗? 非常感谢你。
David

ESB的版本是什么?您使用的是什么


尝试重新启动ESB并再次调用该服务。请记住,对Identity server的调用是安全调用

RemoteUserStoreManagerService是一种管理服务。因此,您需要在基本身份验证头或会话cookie中发送Identity Server的用户名/密码。我看不到您的代理配置中授权头的设置,例如

<property expression="fn:concat('Basic ', base64Encode('username:password'))" name="Authorization" scope="transport"></property> 


更多细节将另行通知。此外,您还需要创建一个消息体,以发送到“RemoteUserStoreManagerService”并读取响应消息。这些必须使用ESB配置来实现。但是,您也可以编写一个自定义ESB中介来实现这一点。可以找到调用此服务的示例java代码。您可以从

中找到编写自定义中介的详细信息,我们已经了解到,这个问题可能更一般,并且不仅仅与WSO2 is有关,因为我们在将WSO2 is服务与SoapUI模拟时遇到了相同的问题

问题可能出在axis配置中的HTTP passthru传输中,因为当我们切换到HTTP-NIO时,问题就消失了,而且速度更快

有一篇关于帮助我们的帖子

然而,我想知道我们在生产中应该使用什么交通工具,或者问题出在哪里。因为现在我们似乎无法在生产环境中使用HTTP passthru传输


有人遇到过这个问题吗?

谢谢你的回复。我正在发送身份验证标题。为了清晰起见,我在代理实现中省略了这一行。我将auth头从SoapUI发送到proxy,并将其传播到WSO2 IS。这是可行的,但问题是在重载情况下出现的。嗨,Abhi,我使用的是wso2esb-4.8.0。如果WSO2IS在您独立调用(使用curl或soapUI)时工作正常。然后尝试在ESB中的代理中显式关闭连接谢谢您的提示。但是现在,当使用XSLT中介时,1000条消息中有2条没有到达。[2014-01-07 18:06:55422]错误-NativeWorkerPool未捕获异常org.apache.axiom.om.OmeException:javax.xml.stream.XMLStreamException:ParseError at[row,col]:[8,21]消息:根元素后面的文档中的标记必须格式正确。[2014-01-07 18:06:55578]错误-在生成Passthrough stream org.apache.axiom.om.OmeException:javax.xml.stream.XMLStreamException:ParseError at[row,col]:[1,1]消息:prolog中不允许包含内容。
<property expression="fn:concat('Basic ', base64Encode('username:password'))" name="Authorization" scope="transport"></property>