كيف يمكنك إنشاء وتحليل تفريغ مؤشر ترابط من مثيل JBoss قيد التشغيل؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

كيف يمكنك إنشاء وتحليل تفريغ مؤشر ترابط من مثيل JBoss قيد التشغيل؟

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

المحلول

هناك طريقة خاصة بـ JBoss وهي أكثر سهولة في الاستخدام:

http://community.jboss.org/wiki/GenerateAThreadDumpWithTheJMXConsole

يعد هذا مفيدًا بشكل خاص عندما لا يكون لديك وصول مباشر إلى الجهاز المضيف (وهو ما يتطلبه "القتل").

نصائح أخرى

http://java.sun.com/developer/technicalArticles/Programming/Stacktrace/

...

"على منصات UNIX، يمكنك إرسال إشارة إلى برنامج باستخدام أمر القتل.هذه هي إشارة الإنهاء، والتي يتم التعامل معها بواسطة JVM.على سبيل المثال، في Solaris، يمكنك استخدام الأمر kill -QUITprocess_id، حيث يكونprocess_id هو رقم العملية لبرنامج Java الخاص بك.

وبدلاً من ذلك، يمكنك إدخال تسلسل المفاتيح <ctrl>\ في النافذة التي تم فيها بدء تشغيل برنامج Java.يؤدي إرسال هذه الإشارة إلى توجيه معالج الإشارة في JVM لطباعة جميع المعلومات الموجودة على الخيوط والشاشات داخل JVM بشكل متكرر.

...

"تحديد حالات الموضوع

سترى العديد من سلاسل الرسائل المختلفة في العديد من الحالات المختلفة في لقطة من تتبع مكدس JVM.المفتاح المستخدم هو :

R موضوع قيد التشغيل أو قابل للتشغيل

S موضوع معلق

CW Thread ينتظر متغير الشرط

موضوع MW في انتظار قفل الشاشة

تم تعليق MS Thread في انتظار قفل الشاشة"

تم العثور على تطبيق Stacktrace هنا يعد مفيدًا أيضًا، خاصة على أجهزة Windows عندما لا يتم تشغيل تطبيق Java من سطر الأوامر.

Thread.getAllStackTraces() (منذ Java 1.5)

خيارين:

الخيار 1 قم بإنشاء تفريغ مؤشر ترابط باستخدام وحدة تحكم JMX

من أجل إنشاء تفريغ مؤشر الترابط:

  1. افتح JMXConsole (على سبيل المثال: http://localhost:8080 )
  2. انتقل إلى jboss.system:type=ServerInfo مبيان (تَلمِيح: ربما يمكنك فقط الضغط على CTRL-F وإدخال type=ServerInfo في مربع الحوار)
  3. انقر على الرابط الخاص بمعلومات الخادم mbean.
  4. انتقل إلى الأسفل حيث تقول listThreadDump
  5. انقر فوقه واحصل على تفريغ الموضوع الخاص بك

ملحوظات:

إذا كنت تستخدم Internet Explorer فيجب عليك استخدام File > Save As لحفظ الإخراج بدلاً من نسخ البيانات إلى محرر نصوص.لسبب ما، عندما تقوم بنسخ النص من Internet Explorer، لا يتم نسخ فواصل الأسطر وينتهي كل الإخراج في سطر واحد.

الخيار 2 قم بإنشاء تفريغ مؤشر ترابط باستخدام Twiddle

وبدلاً من ذلك، يمكنك استخدام twiddle لتنفيذ ملف listThreadDump() الأسلوب وتوجيه HTML الذي تم إرجاعه مباشرةً إلى الملف.استخدم سطر الأوامر هذا:

<JBOSS_HOME>/bin/twiddle invoke "jboss.system:type=ServerInfo" listThreadDump > threads.html

في بعض الأحيان يتم قفل JBoss كثيرًا حتى أن jmx-concole لا يستجيب.في مثل هذه الحالة، استخدم kill -3 على Linux و إرسال الإشارة على ويندوز.

https://community.jboss.org/wiki/ThreadDumpJSP تحتوي الصفحة على Threaddump.war مستقل بذاته ويمكن استخدامه بدون JMX.

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