سؤال

أنا أستخدم Hibernate في حرب jboss الخاصة بي ، باستخدام C3P0 لتجميع الاتصال ، وكلاهما تم تكوينه في ملف تكوين hibernate.cfg.xml في classpath الخاص بي

<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>

لقد رأيت Server.log إنشاء خطوط مع معلومات مثيرة للاهتمام حول تجمع الاتصال:

Debug [com.mchange.v2.resourcepool.basicResourcepool] تتبع com.mchange.v2.resourcepool.basicresourcepool@63f5e4b6 [مُدار: 10 ، غير مستخدم: 9 ، مستبعد: 0

بالنسبة لمجموعة المراقبة الخاصة بي (أنا أستخدم nagios) ، أود أن أقدم JSP يعرف عدد الاتصالات التي يتم استخدامها وعددها المجاني ، كما يقول ملف السجل.

كيف يمكنني أن أسأل C3P0 كم عدد الاتصالات المدارة وغير المستخدمة الموجودة؟

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

المحلول

يمكنك مراقبة تجمعات (تجمعات) الاتصال عبر JMX. من الوثائق:

تكوين وإدارة C3P0 عبر JMX

إذا كانت مكتبات JMX و JMX Mbeanserver متوفرة في بيئتك (يتم تضمينها في JDK 1.5 وما فوق) ، فيمكنك فحص وتكوين بيانات بيانات C3P0 الخاصة بك عبر أداة إدارة JMX (مثل JConsole ، مجمعة مع JDK 1.5). ستجد أن C3P0 يسجل Mbeans تحت com.mchange.v2.c3p0, واحد مع إحصائيات عن المكتبة ككل (تسمى C3P0Registry) ، و mbean لكل منهما PooledDataSource أنت تنشر. يمكنك عرض خصائص التكوين الخاصة بـ DataSource وتعديلها ، وتتبع نشاط الاتصال والبيان وتجمعات مؤشرات الترابط ، وإعادة ضبط المجمعات ومقاطع البيانات عبر PooledDataSource ميبي. (قد ترغب في عرض مستندات API لـ PooledDataSource لتوثيق العمليات المتاحة.)

بالمناسبة ، يبدو أن هناك مكونات JMX لـ Nagios ، فأنت لا تضطر إلى استخدام JSP.

نصائح أخرى

يمكنك المراقبة مع ICINGA/NAGIOS مثل هذا.

  1. قم بتنزيل jmxquery من رمز Google. ستحتاج إلى التحقق من المراجعة 18 مثل ذلك.

    svn checkout -r 18 http://jmxquery.googlecode.com/svn/trunk/ jmxquery-read-only

  2. قم بتنزيل هذا التصحيح. رقعة Wildcard لـ C3P0

  3. استخدم هذا الأمر لتصحيح الكود المصدري: (تأكد من أنك في الدليل JMXQuery-Read-only/SRC/Main)

    patch -p0 -i wildcard_patch.diff

  4. الآن تنزيل أباتشي مافن واستخراجه باستخدام هذا الأمر

    tar -zxvf apache-maven-*-bin.tar.gz

  5. الآن قرص مضغوط في المجلد JmxQuery-Read-only وقم بتشغيل الأمر التالي (على افتراض أن Apache Maven و JmxQuery في نفس المجلد)

    ../apache-maven-*/bin/mvn compile

  6. ثم قم بتشغيل الأمر التالي:

    ../apache-maven-3.0.3/bin/mvn package

  7. يجب عليك الآن إنتاج ملف jmxquery.jar الذي يمكنك استخدامه للاستعلام عن تجمع اتصال C3P0 مثل So: (يمكن الحصول على ملف Check_jmx من مجرد تنزيل رمز JmxQuery من موقع رمز Google مثل Normal. هذا الرابط)

    check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:1090/jmxrmi -O com.mchange.v2.c3p0:type=PooledDataSource* -N 1 -A numBusyConnections -w 50 -c 100

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