2011-10-14 9 views
5

मैं अपने डेटाबेस से कनेक्शन बनाने जा रहा हूं और मैं ईजेबी और जेपीए का उपयोग कर रहा हूं। मैंने हाल ही में इन तकनीकों को करना शुरू कर दिया है, इसलिए मुझे इस समस्या पर कुछ समस्याएं समझ गई हैं :) मुझे पता है कि जेपीए का उपयोग करने के लिए persistence.xml की आवश्यकता है। यह वह फ़ाइल है जहां मैं डेटाबेस से कनेक्ट करने के लिए कॉन्फ़िगर करता हूं, जो मुझे पता है। हालांकि ऐसा लगता है कि ऐसा करने के कई तरीके हैं।जेडीबीसी संसाधनों और जेडीबीसी कनेक्शन पूल के आसपास कुछ भ्रम ग्लासफ़िश

persistence.xml फ़ाइल और ग्लासफ़िश में उपयोगकर्ता नाम, डेटाबेस, पासवर्ड इत्यादि जैसे गुणों को परिभाषित करने के लिए अंतर (या मुझे दूसरे विकल्प पर भी कब उपयोग करना चाहिए?) क्या होगा? यदि कोई हो तो लाभ/नुकसान।

मेरे द्वारा पोस्ट की गई छवि के नीचे मेरे पास जेडीबीसी संसाधन और जेडीबीसी कनेक्शन पूल हैं। मैं दोनों की शब्दावली के बारे में उलझन में हूं। हम जेडीबीसी संसाधनों में उपयोगकर्ता नाम, डेटाबेस, पासवर्ड आदि जैसे गुण क्यों नहीं जोड़ते? क्या कोई उनके बीच अंतर और उनके क्या मतलब बता सकता है?

JDBC संसाधन

एक JDBC संसाधन (डेटा स्रोत) एक डेटाबेस से कनेक्ट के एक साधन के साथ आवेदन पत्र प्रदान करता है। आम तौर पर, व्यवस्थापक डोमेन में तैनात अनुप्रयोगों द्वारा उपयोग किए गए प्रत्येक डेटाबेस के लिए एक जेडीबीसी संसाधन बनाता है। (हालांकि, एक से अधिक JDBC संसाधन एक डेटाबेस के लिए बनाए जा सकते हैं।) http://download.oracle.com/docs/cd/E19316-01/820-4335/ablih/index.html

मैं हम पूल पर लेकिन संसाधन में नहीं इस तरह के गुण जोड़ने यह अजीब है कि लगता है, लेकिन मैं शायद अवधारणाओं गलत।

enter image description here

उत्तर

6

"JDBC कनेक्शन पूल्स" में आप कंटेनर बना सकते हैं JDBC डेटा स्रोतों (कनेक्शन पूलिंग क्षमताओं के साथ) में कामयाब रहे। डेटा स्रोत को कम से कम जेडीबीसी चालक, जेडीबीसी यूआरएल, उपयोगकर्ता नाम और पासवर्ड के बारे में जानना आवश्यक है।

"जेडीबीसी संसाधन" में आप उन कंटेनर को जेडीबीसी डेटा स्रोतों को एक या अधिक जेएनडीआई नामों में बाध्य कर सकते हैं ताकि वे तैनात वेब एप्लिकेशन के लिए जेएनडीआई उपलब्ध हों।

persistence.xml में आप निर्दिष्ट कर सकते हैं कि स्थानीय डेटा स्रोत का उपयोग करना है या कंटेनर प्रबंधित डेटा स्रोत का उपयोग करना है या नहीं। यदि आप एक कंटेनर प्रबंधित डेटा स्रोत का उपयोग करना चाहते हैं, तो आपको अपना जेएनडीआई नाम निर्दिष्ट करना चाहिए। एक कंटेनर प्रबंधित डेटा स्रोत का उपयोग करने का लाभ यह है कि आप एकाधिक वेब अनुप्रयोगों के बीच एक डेटा स्रोत साझा कर सकते हैं। जेपीए के मामले में, यह भी लाभ है कि आप जेटीए (कंटेनर प्रबंधित लेनदेन) का उपयोग कर सकते हैं ताकि आपको प्रत्येक विधि में transaction.begin(), commit(), rollback() आदि पर कॉल करने की आवश्यकता न हो।

+0

तो आप persistence.xml में गुण कब सेट करते हैं? जब आपके पास जावा एसई में कोई एप्लीकेशन है? लेकिन अन्यथा यह अनिवार्य रूप से वही गुण है और इसलिए आप persistence.xml में परिभाषित कर सकते हैं? – LuckyLuke

+0

हां, केवल एक सादा वेनिला जावा एसई अनुप्रयोग में यह समझ में आता है (उदाहरण के लिए, जब आप अपने जेपीए प्रोजेक्ट को यूनिट-टेस्ट करना चाहते हैं)। जावा ईई कंटेनर में आप वास्तव में एक कंटेनर प्रबंधित डेटासोर्स के साथ जेटीए के लिए जाना चाहते हैं ताकि आपके ईजेबी लेनदेन संबंधी संदर्भ में अच्छी तरह से अपना काम कर सकें। आम तौर पर आप अपने वेब प्रोजेक्ट में एक और 'persistence.xml' प्रदान करते हैं जो जेपीए प्रोजेक्ट से कक्षाएं प्राप्त करता है और कंटेनर के जेएनडीआई नाम को इंगित करते हुए' 'के साथ लेनदेन प्रकार को जेटीए के रूप में ओवरराइड करता है। प्रबंधित डेटा स्रोत। – BalusC

+0

ठीक है, तो मुझे लगता है कि मैं इसे समझना शुरू कर देता हूं :) – LuckyLuke