मैं कतार सर्वर के लिए चैनल/कनेक्शन का पूल बनाने की कोशिश कर रहा हूं और ऑब्जेक्टपूल का उपयोग करने की कोशिश कर रहा था लेकिन example से उनकी साइट पर इसका उपयोग करने में परेशानी हो रही है।क्या जावा ऑब्जेक्टपूल/पूल का उपयोग करने के तरीके पर कोई अच्छा ट्यूटोरियल या उदाहरण हैं?
अभी तक मेरे पास धागे हैं जो काम करते हैं लेकिन मैं चाहता हूं कि उनमें से प्रत्येक पूल से एक चैनल पकड़ ले और फिर इसे वापस कर दें। मैं समझता हूं कि इसका उपयोग कैसे करें (उधार ऑब्जेक्ट/रिटर्नऑब्जेक्ट्स) लेकिन यह सुनिश्चित नहीं है कि इंटियल पूल कैसे बनाएं।
यहाँ कैसे चैनलों RabbitMQ में बना रहे हैं क्या है:
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
और मेरे कोड सिर्फ सामान करने के लिए चैनल का उपयोग करता है। मैं उलझन में हूं, क्योंकि केवल उदाहरण मैं (अपनी साइट पर) मिल सकता है इस तरह यह शुरू होता है:
private ObjectPool<StringBuffer> pool;
public ReaderUtil(ObjectPool<StringBuffer> pool) {
this.pool = pool;
}
कौन सा मेरे लिए कोई मतलब नहीं है। मुझे एहसास हुआ कि डेटाबेस कनेक्शन स्थापित करना आम है इसलिए मैंने डेटाबेस और ऑब्जेक्टपूल का उपयोग करके ट्यूटोरियल ढूंढने की कोशिश की लेकिन वे डीबीसीपी का उपयोग करने लगते हैं जो डेटाबेस के लिए विशिष्ट है (और मैं अपने कतार सर्वर के लिए तर्क का उपयोग नहीं कर सकता)।
इसका उपयोग करने के तरीके पर कोई सुझाव? या जावा में पूल के लिए एक और दृष्टिकोण इस्तेमाल किया जाता है?
वाह बहुत बहुत धन्यवाद। मैं कोड के साथ खेलूँगा। मुझे समझ में नहीं आता कि चैनलों की संख्या कहां निर्दिष्ट करें। आपके उदाहरण में आप एक कनेक्शन साझा कर रहे हैं या कोई जगह मैं कह सकता हूं कि मैं एक्स कनेक्शन पूर्व-निर्माण करना चाहता हूं? – Lostsoul
पूल अपने पूल किए गए ऑब्जेक्ट को पूर्ववत नहीं करते हैं। वे उन्हें मांग पर बनाते हैं और उन्हें पूल से ले जाते हैं या पूल खाली होने पर ताजा बनाते हैं। तो आमतौर पर कोई सीमा नहीं है। लेकिन मुझे नहीं पता कि आप किस वर्ग का उपयोग करते हैं या पूल क्लास काम/वे क्या करने में सक्षम हैं। मैंने अभी आपके लिए उदाहरण का अनुवाद किया है :) – zapl
जेनेरिकऑब्जेक्टपूल पूल किए गए ऑब्जेक्ट्स को पूर्व-निर्मित करेगा यदि आप निष्कासन थ्रेड को सक्षम करते हैं और "मिनीआईडल" प्रॉपर्टी सेट करते हैं। http://commons.apache.org/pool/api-1.6/org/apache/commons/pool/impl/GenericObjectPool.html – dnault