यह भारी जावा उन्मुख है, लेकिन मूल डेटाबेस क्लाइंट API को JDBC डेटा स्रोतों से जोड़ा जा सकता है। टंगस्टन मायोसोटिस, MySQL मूल के लिए JDBC ब्रिजिंग के लिए एक उदाहरण है।
टंगस्टन एंटरप्रिस मल्टी-मास्टर एसिंक्रोनस के लिए अच्छा है। मुझे लगता है कि यह MySQL, PostgreSQL और Oracle के लिए काम करता है। यह स्टैंडअलोन चला सकता है या जावा एप्लिकेशन में एम्बेडेड हो सकता है। मैंने इसे MySQL के लिए काम करते देखा है, लेकिन वे PostgreSQL का दावा करते हैं। उनका प्रतिकारक घटक खुला-स्रोत है, लेकिन पूर्ण समाधान में अधिक भाग होते हैं और लाइसेंसिंग लागत की आवश्यकता होती है। कॉन्टिन्युट मूल रूप से मल्टी-मास्टर सिंक्रोनस के लिए सेकोइया था, लेकिन उन्होंने इसे छोड़ दिया, और मल्टी-मास्टर एसिंक्रोनस के बजाय टंगस्टन बनाया - वे तुल्यकालिक एसीआईडी स्थिरता की तुलना में अधिक रणनीतिक व्यवसाय को स्केल मानते हैं। टंगस्टन जावा में लिखा गया है, इसीलिए वे मूल डेटाबेस क्लाइंट को पाटने के लिए मायोसोटिस की पेशकश करते हैं।
सममितीय बहु-मास्टर एसिंक्रोनस के लिए अच्छा है। यह ओपन-सोर्स है। यह बिन लॉगिंग के बजाय अपडेट कैप्चर करने के लिए ट्रिगर / अनइंस्टॉल स्थापित करता है। यह स्टैंडअलोन चला सकता है या जावा एप्लिकेशन में एम्बेडेड हो सकता है।
HA-JDBC मल्टी-मास्टर सिंक्रोनस के लिए अच्छा है। यह C-JDBC और Sequoia जैसे पुराने डिफंक्शन सॉफ्टवेयर को सुपरस्टार करता है। यह ओपन-सोर्स है। यह बोलियों के माध्यम से PostgreSQL, MySQL, Oracle, SQL Server, Derby, Sybase और कई अन्य लोगों के लिए दो-चरण प्रतिबद्ध और काम करता है। यह मुख्य रूप से एम्बेडेड है, इसलिए इसे PostgreSQL को पुल करने के लिए जावा एप्लिकेशन में एम्बेड करें। वितरित ताले, क्रम, समय, रैंड, और इतने पर Redhat / JBoss से jGroups द्वारा नियंत्रित किया जाता है। एक अच्छा फीचर लेन-देन मोड "सीरियल" के बजाय "समानांतर" है, अगर आपका ऐप डेडलॉक का अनुभव करता है और रोलबैक का समर्थन नहीं करता है। मैंने इस "धारावाहिक" मोड का उपयोग एक विरासत ऐप को फिर से अपडेट करने के लिए किया था जो डीबी-क्लस्टर के बारे में पता नहीं था, इसलिए यह लेनदेन रिट्री कोड गायब था। सीरियल मोड ने दिन बचाया और एक बुरा फिर से लिखने से बचा।
H2 मल्टी-मास्टर सिंक्रोनस के लिए अच्छा है। यह ओपन-सोर्स है। यह HA-JDBC आर्किटेक्चर के समान दो-चरण प्रतिबद्ध का उपयोग करके स्टैंडअलोन डेटाबेस या क्लस्टर का समर्थन करता है, लेकिन यह दो-चरण प्रतिबद्ध के लिए एक अतिरिक्त घटक की आवश्यकता के बजाय सभी में है। यह सुनिश्चित नहीं है कि यह स्वयं ताले वितरित करता है, या jGroups या हेज़ेलकास्ट जैसे तीसरे पक्ष पर निर्भर करता है।
PostgreSQL और अन्य डेटाबेस के लिए किसी भी JDBC आधारित प्रतिकृति को JDBC पुल के लिए एक मूल निवासी की आवश्यकता होती है, जब तक कि आपका आवेदन जावा में पहले से ही न लिखा हो। MySQL के लिए, टंगस्टन एंटरप्राइज Myosotis नामक एक वैकल्पिक घटक प्रदान करता है। मैंने JDBC के लिए PHP / Perl / C / mysqlclient को पाटने के लिए सफलतापूर्वक उपयोग किया, जहाँ JDBC डेटा स्रोत 4-नोड MySQL / InnsDB क्लस्टर की ओर इशारा करते हुए HA-JDBC डेटा स्रोत हुआ।
टंगस्टन अपने रेप्लिकेटर और राउटर घटकों में PostgreSQL का समर्थन करता है, लेकिन मायोसोटिस घटक के बारे में निश्चित नहीं है। शायद। टंगस्टन रेप्लिकेटर / राउटर घटक मल्टी-मास्टर एसिंक्रोनस के लिए हैं, लेकिन मायोसोटिस आपको वैकल्पिक JDBC बैक-एंड जैसे HA-JDBC या H2 को सिंक्रोनस के लिए पुल कर सकते हैं।
अगर JDBC पुल के लिए एक पोस्टग्रेसीक्यू देशी है तो मैं इसके बारे में सुनना चाहूंगा। सिद्धांत रूप में, JDBC टाइप 4 ड्राइवर वाले किसी भी डेटाबेस को पाटा जा सकता है। टाइप 4 JDBC उस डेटाबेस के लिए मूल क्लाइंट इंटरफ़ेस की तरह ही देशी डेटाबेस प्रोटोकॉल बोलता है, इसलिए JDBC कॉल के लिए देशी कॉल की एक-से-एक मैपिंग होनी चाहिए।