2009-07-10 16 views
6

के साथ सक्रिय सत्र गणना प्राप्त करना मैं वेब अनुप्रयोग के लिए सक्रिय सत्र गणना प्राप्त करने के लिए जेएमएक्स एपीआई का उपयोग करने की कोशिश कर रहा हूं।जेएमएक्स (जावा प्रबंधन एक्सटेंशन) एपीआई

  1. क्या इस तरह की जानकारी प्राप्त करने के लिए जेएमएक्स एपीआई का उपयोग करना संभव है?
  2. यदि हां, तो यह कितना विश्वसनीय होगा?
  3. यह कैसे किया जाए इस पर कोई उदाहरण कोड?

मैं जेएमएक्स ट्यूटोरियल और दस्तावेज पढ़ रहा हूं, लेकिन वे मुझे तकनीक का अवलोकन दे रहे हैं। मैं अभी तक जो कुछ भी चाहता हूं उसे इंगित नहीं कर सकता हूं।

उत्तर

5

एक बार जब आप अपने एप सर्वर को जेएमएक्स पोर्ट का पर्दाफाश करने के लिए कॉन्फ़िगर करते हैं तो आप JConsole या JVisualVM जैसे कुछ का उपयोग करके इसे पूरा कर सकते हैं। आप उल्लेख नहीं करते कि आप कौन से ऐप सर्वर का उपयोग कर रहे हैं लेकिन टॉमकैट के लिए, यह यहां वर्णित है: http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html। एक बार जब आप जेकोनसोल से जुड़ जाते हैं, तो टोमकैट एक एमबीन का खुलासा करता है जिसमें सत्र की जानकारी होती है लेकिन फिर यह निर्भर करता है कि आप किस कंटेनर का उपयोग करते हैं।

+1

प्रश्न टैग है "Jboss", तो यह बिलाव, लेकिन इसके बारे में jboss स्वाद है। यह शायद मानक टोमकैट जेएमएक्स परत नहीं होगा। – skaffman

2

सत्रों को ट्रैक करने के लिए आप HttpSessionListener का उपयोग कर सकते हैं। यदि आप जेएमएक्स के माध्यम से सक्रिय सत्रों का पर्दाफाश करना चाहते हैं, तो आप एक एमबीएन पंजीकृत कर सकते हैं और इसे अन्य अनुप्रयोगों से कॉल कर सकते हैं (जेएमएक्स दस्तावेज देखें)।

1

जेबॉस पहले ही जेएमएक्स के माध्यम से सक्रिय सत्र गणना का खुलासा करता है, लेकिन केवल पूरे सर्वर पर, प्रति वेबपैम पर नहीं। यदि आपके पास केवल एक वेबपैप का उपयोग किया जा रहा है, तो यह आपके लिए ठीक होना चाहिए।

पोर्ट 8080 पर जेएमएक्स कंसोल पर जाएं, और host=localhost,path=/,type=Manager नामक प्रविष्टि की तलाश करें। इसके अंदर आपको सक्रिय सत्र गणना के लिए एक प्रविष्टि मिल जाएगी।

0

जवाब skaffman द्वारा दिए गए काफी उपयोगी है, लेकिन मैं में संशोधन होता है कि JBoss की तलाश द्वारा आप webapp प्रति सत्र देने में सक्षम है:

मेजबान = स्थानीय होस्ट, पथ =/your_webapp_context, type = प्रबंधक

(your_webapp_context webapp आप में रुचि रखते हैं के संदर्भ के साथ बदलें ...)

3
ObjectName name = new ObjectName("Catalina:type=Manager,path=/NAME_OF_APP,host=localhost"); 
ManagementFactory.getPlatformMBeanServer().getAttribute(name, "activeSessions"); 
+2

एचएम, टॉमकैट 7 पर जो काम नहीं करता है। लेकिन 'कैटालिना: टाइप = प्रबंधक, संदर्भ =/NAME_OF_APP, होस्ट = लोकलहोस्ट' – knalli

संबंधित मुद्दे