2011-08-04 14 views
7

मैं सिर्फ BoneCP उपयोग शुरू कर दिया है और यह मेरा पहली बार एक कनेक्शन पूल का उपयोग कर से कनेक्शन हैंडलिंग। मैं कुछ हद तक उलझन में हूं कि मुझे इसका उपयोग कैसे करना है। वर्तमान में मैं एक स्थिर चर के रूप में BoneCP-object को सहेज रहा हूं, और इस प्रकार मैं इसे विभिन्न कनेक्शनों के बीच उपयोग कर सकता हूं।BoneCP का उपयोग करना: पूल

जब मैं कनेक्शन के साथ किया जाता हूं, तो मैं इसे connection.close() के साथ बंद करता हूं।
क्या मुझे यह करना चाहिए, या क्या इसे पूल द्वारा पुन: उपयोग करने में सक्षम करने के लिए इसे बंद नहीं करना चाहिए?

यह मेरे वर्तमान एक कनेक्शन लेने के लिए दिया गया है:

private static BoneCP connectionPool; 

public Connection getConnection() throws SQLException { 
    if (connectionPool == null) { 
     initPool(); 
    } 
    return connectionPool.getConnection(); 
} 

private void initPool() throws SQLException { 
    BoneCPConfig config = new BoneCPConfig(); 
    config.setJdbcUrl(DB_URL); 
    config.setUsername(DB_USERNAME); 
    config.setPassword(DB_PASSWORD); 
    config.setMinConnectionsPerPartition(5); 
    config.setMaxConnectionsPerPartition(10); 
    config.setPartitionCount(1); 
    connectionPool = new BoneCP(config); 
} 

यह सही प्रतीत होता है या मैं गलत समझा है कि कैसे मैं BoneCP का उपयोग करना चाहिए?

उत्तर

9

अपने निजी स्थिर अंतिम बनाने और एक स्थिर ब्लॉक में init बदलने के अलावा (या वैकल्पिक रूप से आपके getConnection सिंक्रनाइज़ करने के लिए), आप ठीक हैं।

आप सही आप connection.close करना चाहिए रहे हैं() पूल पर लौटने के लिए। जब आपका ऐप बंद हो जाता है, कनेक्शन पूल

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