لماذا لا يتم استخدام تجمع خيوط Tomcat 6 Executor من قبل الموصل؟

StackOverflow https://stackoverflow.com/questions/2761618

سؤال

يبدو أن server.xml ما يلي:

<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<Executor  name="tomcatThreadPool" 
           namePrefix="catalina-exec-"
           maxThreads="200" 
           minSpareThreads="4"/>

<Connector executor="tomcatThreadPool"
           port="8080" protocol="HTTP/1.1"
           connectionTimeout="10000"
           maxKeepAliveRequests="1"
           redirectPort="8443" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

ومع ذلك ، في مدير Tomcat (http: // localhost/manager/status) يظهر لاتباعه

http-8080: Max threads: -1 Current thread count: -1 Current thread busy: -1
jk-8009: Max threads: 200 Current thread count: 4 Current thread busy: 1

لسبب ما ، يبدو أن HTTP-8080 لا يستخدم المنفذ على الرغم من أنه موجه أيضًا ويستخدم JK-8009 المنفذ على الرغم من أنه لم يتم توجيهه إليه. هل المدير يسيء فقط أو لم أقم بإعداد تجمع الخيوط بشكل صحيح؟

هل كانت مفيدة؟

المحلول

أظن أن المدير يقوم بالإبلاغ عن القيم التي تم تعيينها كجزء من تحديد الموصل ، وعدم الإبلاغ عن القيم من المنفذ. يعمل المنفذ ويل كما هو متوقع ، ولم يتم الإبلاغ عنه بشكل صحيح في المدير.

القيمة 200 لموصل AJP مضللة هنا ، لأن 200 هي القيمة الافتراضية ل maxThreads (كما هو محدد هنا) ؛ لأنك لم تحدد maxThreads بالنسبة لموصل AJP ، هذه هي القيمة المستخدمة.

يقوم موصل HTTP بالإبلاغ عن قيم هراء لأنه يقوم بتفويض إدارة مؤشرات الترابط إلى المنفذ.

للتحقق مما إذا كان هذا صحيحًا ، حاول تغيير maxThreads قيمة المنفذ لقيمة مختلفة. يجب أن ترى maxThreads من موصل AJP يقيم في 200 (لأن هذه هي قيمتها الافتراضية).

نصائح أخرى

الحد الأقصى لعدد مؤشرات ترابط معالجة الطلبات المراد إنشاؤه بواسطة هذا الموصل ، والذي يحدد بالتالي الحد الأقصى لعدد الطلبات المتزامنة التي يمكن معالجتها. إذا لم يتم تحديدها ، يتم تعيين هذه السمة على 200. إذا كان المنفذ مرتبطًا بهذا الموصل ، فسيتم تجاهل هذه السمة لأن الموصل سيقوم بتنفيذ المهام باستخدام Executor بدلاً من تجمع مؤشرات ترابط داخلي. لاحظ أنه إذا تم تكوين المنفذ ، فسيتم تسجيل أي قيمة لهذه السمة بشكل صحيح ولكن سيتم الإبلاغ عنها (على سبيل المثال عبر JMX) على أنها -1 لتوضيح أنه لم يتم استخدامه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top