ठीक है, मैंने कुछ खुदाई की और इसे स्वयं समझ लिया। (टॉमकैट-उपयोगकर्ता मेलिंग सूची में कई तरह के लोगों के लिए धन्यवाद!)
जेबी निजेट सही है:यदि आप जावा कोड से टॉमकैट डेटाबेस कनेक्शन पूल बना रहे हैं, तो प्रत्येक डेटासोर्स जिसे आप तत्काल चालू करते हैं, एक अलग कनेक्शन पूल है/प्रतिनिधित्व करता है। यह मेरे लिए आश्चर्य की बात थी; एक .NET पृष्ठभूमि से आ रहा है, मुझे लगता है कि टॉमकैट कनेक्शन पूलिंग SqlServer/ADO.NET कनेक्शन पूलिंग की तरह काम करेगी:यदि आप दो डेटाबेस कनेक्शन प्राप्त करने के लिए दो समान कनेक्शन स्ट्रिंग का उपयोग करते हैं, तो ये दोनों एक ही कनेक्शन पूल से आएंगे। हालांकि, टॉमकैट में, जावा कोड से डेटासोर्स ऑब्जेक्ट्स को तत्काल करते समय, प्रत्येक नया डेटासोर्स इंस्टेंस एक नया कनेक्शन पूल होता है। इसलिए, यदि आप JAX-RS वेब सेवा कॉल में इन कनेक्शन पूलों को जारी रखना चाहते हैं, उदाहरण के लिए, आपको अपना स्वयं का डेटाबेस-पूल (डेटासोर्स) कैश बनाने की आवश्यकता है, इसमें डेटासोर्स इंस्टेंस (प्रति डेटाबेस एक) डालें, और इसे स्टोर करें किसी ऑब्जेक्ट में JAX-RS पूरे वेब सेवा कॉल पर बना रहेगा। मैंने अभी यह किया है, और यह ठीक काम कर रहा है।
बीटीडब्ल्यू, टॉमकैट डेटाबेस कनेक्शन पूलिंग SqlServer/ADO.NET कनेक्शन पूलिंग के समान कार्यक्षमता प्रदान करता है, आपको केवल अपने डेटासोर्स इंस्टेंस बनाने के लिए जेएनडीआई संसाधनों का उपयोग करना होगा। (मेरे मामले में यह एक विकल्प नहीं है, क्योंकि डेटाबेस मेरे एप्लिकेशन में गतिशील रूप से बनाए जाते हैं, और जेएनडीआई परिभाषाएं आम तौर पर कॉन्फ़िगरेशन फ़ाइलों से बनाई जाती हैं जिन्हें टॉमकैट स्टार्टअप पर पढ़ता है।)