2015-09-09 7 views
5

मैं अभी हाल ही में मेरी डेटाबेस MariaDB को mysql से 2 नोड क्लस्टर डेटाबेस के साथ प्रतिकृति का समर्थन के लिए चले अधिक MariaDB galera क्लस्टर का उपयोग कर। डेटाबेस को विभिन्न डोमेन पर होस्ट किया जाता है और इसे ईएलबी पर एक्सेस किया जाता है, जब मैं अपने आवेदन को नोड में से किसी एक को इंगित करता हूं तो एप्लिकेशन ठीक काम करता है लेकिन जब मैं डेटाबेस से कनेक्ट करने के लिए ईएलबी यूआरएल का उपयोग करता हूं, तो यह यादृच्छिक रूप से उतार-चढ़ाव करता है और अक्सर फॉलोर त्रुटि दिखाता हैMySQL कनेक्शन समय के लिए बाहर, ईएलबी

Communication Link Failure 
could not execute query; nested exception is org.hibernate.exception.JDBCConnectionException: could not execute query 

यहाँ मेरी डेटा स्रोत विन्यास है: -

dataSource { 
shard = false 
pooled = true 
driverClassName = "com.mysql.jdbc.Driver" 
//dialect = "com.deerwalk.everest.MySQLUTF8InnoDBDialect" 
dbCreate = "update" // one of 'create', 'create-drop','update' 

properties { 
    initialSize=5 
    maxActive=50 
    minIdle=5 
    maxIdle=25 
    maxWait = 10000 
    maxAge = 10 * 60000 
    timeBetweenEvictionRunsMillis=5000 
    minEvictableIdleTimeMillis=60000 
    validationQuery="SELECT 1" 
    validationInterval=15000 
    testWhileIdle=true 
    testOnBorrow=true 
    testOnReturn=false 
    jdbcInterceptors = "ConnectionState" 
    defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED 
} 

किसी को क्या गलत की पहचान करने और के लिए यह

+0

आप DataSourceConfig.groovy में maxWait और maxAge में वृद्धि के साथ प्रयास करें कर सकते हैं के रूप में यह संभव है कि यह कभी-कभी सामान्य समय की तुलना में अधिक ले रहा है हो सकता है। –

+0

ने पहले से ही सभी संभावित संयोजन – thickGlass

+0

को अपने डेटासोर्सकॉन्फिग सेटिंग्स में एक ऑटो रीकनेक्ट प्रॉपर्टी जोड़ने के बारे में पहले से ही कोशिश की है। इसके लिए डिफ़ॉल्ट गलत है। आप इसे सत्य पर सेट करना चाहते हैं और देख सकते हैं कि यह आपकी समस्या हल करता है या नहीं। –

उत्तर

4

मैं इस मुद्दे पता लगा एक संभव समाधान प्रदान करें कर सकते हैं, वहाँ ईएलबी में एक क्षेत्र था idleTimeOut कहा जाता है एच को केवल 60 सेकेंड तक सेट किया गया था, और पूछताछ जो 1 मिनट से अधिक समय ले चुकी थी, अप्रत्याशित रूप से गिर रही थी, टाइमआउट को 600 सेकंड तक बढ़ाने के बाद समस्या अब और प्रतिकृति नहीं कर रही है। :)

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