4

任意のサイズの応答を送信できるサーバーがあります。応答サイズ 1MB で を呼び出すと、WSO2 API マネージャーは正常に動作します。(1 分あたり 1000 リクエスト) 10MB の応答サイズで同じ呼び出しを行うと、WSO2 API マネージャーは最初に応答のサイズを削減し、最終的にサイズが 0 の応答になります。1 分あたり 1000 リクエストの場合、最初の 28 リクエストのみが 10MB で応答し、その他はサイズが小さくなります。10MB の応答サイズでバックエンド サービスに直接アクセスしようとしましたが、すべての応答は 10MB です。

ここに私のserver.jsがあります(nodejs用に書かれています)

var http = require("http");
var url  = require('url');

var server = http.createServer(function(request, response) {
        var params = url.parse(request.url, true).query;
        var size = parseInt(params.size);
        var buffer = new Buffer(size);
        buffer.fill("a");
        response.write(buffer.toString());
        response.end();
});

server.listen(8083);
console.log("Server is listening");

WSO2 は、パラメータ サイズでこのサーバーにヒットします。

私の直接のhttp呼び出しは次のようになります

wget http://A.B.C.D:8083/?size=10485760

私のWSO2呼び出しは次のようになります

wget --header="Authorization: Bearer Xobzt7lefiMadwt4u4Vp9q93dR8a" -qO- http://E.F.G.H:8280/loadtest/1.0/?size=10485760

ログはスタック トレースでエラーを示します

java.lang.IllegalStateException: I/O リアクターがシャットダウンされました
        org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.connect(DefaultConnectingIOReactor.java:229) で
        org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest (HttpCoreNIOSender.java:366) で
        org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:252) で
        org.apache.axis2.engine.AxisEngine.send (AxisEngine.java:442) で
        org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send (DynamicAxisOperation.java:185) で
        org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl (DynamicAxisOperation.java:167) で
        org.apache.axis2.client.OperationClient.execute (OperationClient.java:149) で
        org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send (Axis2FlexibleMEPClient.java:460) で
        org.apache.synapse.core.axis2.Axis2Sender.sendOn (Axis2Sender.java:57) で
        org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send (Axis2SynapseEnvironment.java:325) で
        org.apache.synapse.endpoints.AbstractEndpoint.send (AbstractEndpoint.java:329) で
        org.apache.synapse.endpoints.AddressEndpoint.send (AddressEndpoint.java:59) で
        org.apache.synapse.mediators.builtin.SendMediator.mediate (SendMediator.java:95) で
        org.apache.synapse.mediators.AbstractListMediator.mediate (AbstractListMediator.java:71) で
        org.apache.synapse.mediators.filters.FilterMediator.mediate (FilterMediator.java:112) で
        org.apache.synapse.mediators.AbstractListMediator.mediate (AbstractListMediator.java:71) で
        org.apache.synapse.mediators.base.SequenceMediator.mediate (SequenceMediator.java:114) で
        org.apache.synapse.rest.Resource.process(Resource.java:297) で
        org.apache.synapse.rest.API.process (API.java:308) で
        org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI (RESTRequestHandler.java:76) で
        org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:63) で
        org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage (Axis2SynapseEnvironment.java:191) で
        org.apache.synapse.core.axis2.SynapseMessageReceiver.receive (SynapseMessageReceiver.java:83) で
        org.apache.axis2.engine.AxisEngine.receive (AxisEngine.java:180) で
        org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine (RESTUtil.java:144) で
        org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:139) で
        org.apache.synapse.transport.nhttp.util.RESTUtil.processGetAndDeleteRequest (RESTUtil.java:146) で
        org.apache.synapse.transport.nhttp.DefaultHttpGetProcessor.processGetAndDelete (DefaultHttpGetProcessor.java:464) で
        org.wso2.carbon.transport.nhttp.api.NHttpGetProcessor.process(NHttpGetProcessor.java:296) で

これに続くのは

[2013-11-16 17:25:12,679] INFO - LogMediator To: 、MessageID: urn:uuid:aec86528-8132-4329-9262-9204a9f1317c、方向: 応答、ステータス = デフォルトの「障害」シーケンスを実行中、ERROR_CODE = 504 、ERROR_MESSAGE = 送信タイムアウト、エンベロープ: 0ステータス レポート実行時エラーメッセージの送信中に予期しないエラーが発生しました

4

0 に答える 0