لا يتم إغلاق اتصالات Jetty في CLOSE_WAIT

0

لا يتم إغلاق اتصالات Jetty في CLOSE_WAIT. رصيف مضمن (9.4.11) يستخدم مع Glassfish للحاويات ومع حقن التبعية. موازن تحميل Ngnix هو إعادة توجيه الطلب إلى رصيف يعمل كعميل. في خادم Ngnix (العميل) ، يسير طلب / اتصال TCP الخاص برصيف TCP في حالة FIN_WAIT2 ثم يتم إغلاقه أخيرًا ولكن اتصال jetty (Server) يسير في مكان قريب إلى الأبد ولا يتم إغلاقه.

أي حل ممكن أو تغيير التكوين لحلها؟

المرجع: Jetty open link link. لا يتم إغلاق اتصالات Jetty-9.2 في CLOSE_WAIT

تكوين Http (jetty.xml):

<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
    <Set name="secureScheme">http</Set>
    <Set name="securePort"><Property name="jetty.secure.port" default="8443" /></Set>
    <Set name="outputBufferSize"><Property name="jetty.output.buffer.size" default="32768" /></Set>
    <Set name="outputAggregationSize"><Property name="jetty.output.aggregation.size" default="8192" /></Set>
    <Set name="requestHeaderSize"><Property name="jetty.request.header.size" default="8192" /></Set>
    <Set name="responseHeaderSize"><Property name="jetty.response.header.size" default="8192" /></Set>
    <Set name="sendServerVersion"><Property name="jetty.send.server.version" default="false" /></Set>
    <Set name="sendDateHeader"><Property name="jetty.send.date.header" default="false" /></Set>
    <Set name="headerCacheSize"><Property name="jetty.header.cache.size" default="512" /></Set>
    <Set name="delayDispatchUntilContent"><Property name="jetty.delayDispatchUntilContent" default="false"/></Set>
    <Set name="persistentConnectionsEnabled"><Property name="jetty.persistentConnectionsEnabled" default="false"/>false</Set>
    <Call name="addCustomizer">
        <Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg>
    </Call>
</New>

<Call id="httpsConnector" name="addConnector">
    <Arg>
        <New class="org.eclipse.jetty.server.ServerConnector">
            <Arg name="server"><Ref refid="Server" /></Arg>
            <Arg name="acceptors" type="int"><Property name="ssl.acceptors" default="5"/></Arg>
            <Arg name="selectors" type="int"><Property name="ssl.selectors" default="0"/></Arg>
            <Arg name="factories">
                <Array type="org.eclipse.jetty.server.ConnectionFactory">         
                    <Item>
                        <New class="org.eclipse.jetty.server.HttpConnectionFactory">
                            <Arg name="config"><Ref refid="httpConfig"/></Arg>
                        </New>
                    </Item>
                </Array>
            </Arg> 
            <Set name="host"><Property name="jetty.host" /></Set>
            <Set name="port"><Property name="http.port" default="8443" /></Set>
            <Set name="idleTimeout"><Property name="https.timeout" default="30000"/></Set>
            <Set name="acceptorPriorityDelta"><Property name="ssl.acceptorPriorityDelta" default="0"/></Set>
            <Set name="acceptQueueSize"><Property name="https.acceptQueueSize" default="150"/></Set>
        </New>
    </Arg>
</Call>

1 إجابة

0

من خلال تحليل تفريغ الخيط ، اكتشفت أن مؤشرات الترابط تسير في حالة الانتظار (java.lang.Thread.State: WAITING (parking)) مما يتسبب في الإقفال الكلي. تتسبب المكتبة الأخرى المستخدمة من قبل التطبيق المنشور في Jetty في عدم انتظار سلسلة الرسائل.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام