জেডিবিসির সাথে সংযোগ পুলিং বিকল্পগুলি: সিবিপিপি বনাম ডিবিসিপি


312

জাভা / জেডিবিসির জন্য সেরা সংযোগ পুলিং গ্রন্থাগারটি কী?

আমি 2 জন প্রধান প্রার্থী (নিখরচায় / মুক্ত উত্স) বিবেচনা করছি:

আমি ব্লগ এবং অন্যান্য ফোরামে এগুলি সম্পর্কে অনেক কিছু পড়েছি কিন্তু কোনও সিদ্ধান্তে পৌঁছতে পারিনি।

এই দুটির কি কোনও প্রাসঙ্গিক বিকল্প রয়েছে?

উত্তর:


181

ডিবিসিপি পুরানো এবং প্রডাকশন গ্রেড নয়। কিছুক্ষণ আগে আমরা দুজনের একটি অভ্যন্তরীণ বিশ্লেষণ পরিচালনা করেছিলাম, যা পরীক্ষার দৃxture়তা তৈরি করে যা বাস্তব জীবনের অবস্থার অধীনে তাদের উপযুক্ততা নির্ধারণের জন্য দুজনের বিরুদ্ধে বোঝা এবং একত্রীকরণ তৈরি করে।

ডিবিসিপি ধারাবাহিকভাবে আমাদের পরীক্ষার অ্যাপ্লিকেশনটিতে ব্যতিক্রম তৈরি করেছে এবং পারফরম্যান্সের স্তরে পৌঁছতে লড়াই করেছে যা কোনও ব্যতিক্রম ছাড়াই পরিচালনার পক্ষে সি 3 পি 0 এর চেয়ে বেশি ছিল।

সি 3 পি 0 দৃume়ভাবে ডিবি সংযোগ বিচ্ছিন্ন এবং পুনরায় শুরুতে স্বচ্ছ পুনরায় সংযোগ স্থাপন করেছে, যদিও লিঙ্কটি নীচে থেকে বাইরে নিয়ে যাওয়ার পরে ডিবিসিপি কখনও সংযোগগুলি উদ্ধার করতে পারে না। সবচেয়ে খারাপটি এখনও ডিবিসিপি সেই আবেদনের সাথে সংযোগের বস্তুগুলি ফিরিয়ে দিচ্ছিল যার জন্য অন্তর্নিহিত পরিবহনটি ভেঙেছিল।

তার পর থেকে আমরা 4 টি বড় ভারী-লোড গ্রাহক ওয়েব অ্যাপ্লিকেশনগুলিতে C3P0 ব্যবহার করেছি এবং কখনই পিছনে ফিরে তাকাতে পারি নি।

আপডেট: দেখা যাচ্ছে যে বহু বছর ধরে বালুচরে বসে থাকার পরে অ্যাপাচি কমন্স ফোকরা ডিবিসিপিটিকে সুপ্ততার বাইরে নিয়ে গেছে এবং এটি এখন আবার একটি সক্রিয়ভাবে বিকাশযুক্ত প্রকল্প। এইভাবে আমার মূল পোস্টটি পুরানো হতে পারে।

বলা হচ্ছে, আমি এখনও এই নতুন আপগ্রেড গ্রন্থাগারের কর্মক্ষমতা অনুভব করিনি, বা সাম্প্রতিক অ্যাপের কোনও ফ্রেমওয়ার্কে এটি ডি-ফ্যাক্টো হওয়ার কথা শুনিনি।


2
ধন্যবাদ! প্রস্তাবিত প্রকুল বিকল্প সম্পর্কে কীভাবে? হাইবারনেটের বর্তমান সংস্করণটি c3p0 এবং প্রক্সুল উভয়ই নিয়ে আসে।
ডেমা

আমরা প্রক্সুল চেষ্টা করি নি তবে আমি এখনই এটি পরীক্ষা করে নেওয়ার বিষয়টি নিশ্চিত করব :)
j pimmel

5
c3p0 এর কিছু ত্রুটি রয়েছে। এটি কখনও কখনও সংযোগ শৃঙ্গগুলি পরিচালনা করতে ব্যর্থ হয়।
জেনিং

3
4 বছর থেকে জিনিসগুলি অনেক পরিবর্তন হয়েছে যখন আপনি এই উত্তরটি প্রথম পোস্ট করেছিলেন, আপনি যদি সম্ভব হয় তবে বর্তমান পরিস্থিতিতে ভাগ করে নেওয়া কোনও আপডেট যুক্ত করতে পারেন?
রজত গুপ্ত

13
আমি হিকারিসিপি-র অত্যন্ত প্রস্তাব দিই , কিন্তু তখন আমি এটি লিখতে সহায়তা করি।
ব্রেটটউ

177

আমি আপনাকে বোনসিপিটি চেষ্টা করার জন্য আমন্ত্রণ জানাচ্ছি - এটি নিখরচায়, মুক্ত উত্স এবং উপলভ্য বিকল্পগুলির চেয়ে দ্রুত (বেঞ্চমার্ক বিভাগটি দেখুন)।

দাবি অস্বীকার: আমি লেখক তাই আপনি বলতে পারেন যে আমি পক্ষপাতদুষ্ট :-)

আপডেট: মার্চ ২০১০ পর্যন্ত, নতুন রচিত লিখিত অ্যাপাচি ডিবিসিপি ("টমকাট জেডিবিসি") পুলের চেয়ে এখনও প্রায় 35% দ্রুত। বেঞ্চমার্ক বিভাগে গতিশীল মাপদণ্ডের লিঙ্কটি দেখুন।

আপডেট # 2: (ডিসেম্বর '13) শীর্ষে 4 বছর পরে, এখন আরও দ্রুত প্রতিযোগী রয়েছে: https://github.com/brettwooldridge/HikariCP

# আপডেট 3: (সেপ্টেম্বর '14) দয়া করে বিবেচনা BoneCP করা অবচিত এই মুহুর্তে, স্যুইচ সুপারিশ HikariCP

আপডেট # 4: (এপ্রিল '15) - আমি আর jolbox.com ডোমেনটির মালিক নই


1
টোনক্যাট ডেটাসোর্স হিসাবে বোনসিপি ব্যবহার করে একটি সমস্যা সমাধানের বিষয়টি সত্যিই পছন্দ করবে। এর সাথে আমার যে প্রধান সমস্যাটি ছিল তা হ'ল এটির জন্য টমক্যাটের লিবিব দির, পাশাপাশি লগ 4 জে এবং গুগল ক্লাসে বোনসিপি ক্লাসের প্রয়োজন ছিল। এটি করার ফলে সংযোগ পুলগুলি কাজ করতে সক্ষম হয়েছিল - (ওয়ারে থাকাকালীন এটি কাজ করেনি) - তবে এটি টমক্যাটটির লগ 4
জে সেটিংয়ের সাথে

1
এটি অন্য কোনও কিছুর চেয়ে লগ 4 ই ইস্যুর মতো শোনাচ্ছে। ফোরাম.জলবক্স.কম এ আমাকে একটি লাইন ফেলে দিন এবং আমি আপনাকে এটি ASAP ট্র্যাক করতে সহায়তা করব।
ওয়াডজ

3
1 আপ, বোনসিপি উজ্জ্বল। সি 3 পি 0 থেকে স্যুইচ করা হয়েছে। এমনকি এটি আমাকে log4jdbc- রিমিক্সের উপর নির্ভরতা অপসারণ করার অনুমতি দিয়েছে, কারণ এটি বিবৃতিটি বাক্সের বাইরে লগ আউট করার অনুমতি দেয়!
11:48 এ সাবাল

68
আপনি দ্রুত লেখেননি এমন কিছু সম্পর্কে আপডেট করার জন্য +1!
CorayThan

1
@ অ্যান্ড্রুস্কট এভান্স সম্ভবত v0.7.1 এ ফিরে যাওয়ার পক্ষে সবচেয়ে ভাল
ওয়াডেজ করুন

16

সংযোগের সময় শেষ হওয়ার সাথে সাথে আমি সিবিপিপিতে ট্রায়াল করায় ডিবিসিপি নিয়ে আমার সমস্যা হয়েছিল। আমি এটি প্রযোজনায় প্রকাশ করতে যাচ্ছি তবে তারপরে পারফরম্যান্স টেস্টিং শুরু করলাম। আমি দেখতে পেয়েছি যে c3p0 ভয়ঙ্করভাবে সঞ্চালিত হয়েছে। আমি এটিকে মোটেও ভাল সম্পাদন করার জন্য কনফিগার করতে পারিনি। আমি এটি ডিবিসিপির চেয়ে দ্বিগুণ ধীর পেয়েছি।

আমি তখন চেষ্টা করেছিলাম টমকেট সংযোগ পুলিংয়ের

এটি সি 3 পি 0 এর চেয়ে দ্বিগুণ দ্রুত এবং আমি ডিবিসিপি-র সাথে অন্যান্য সমস্যাগুলি স্থির করেছিলাম। আমি তিনটি পুল অনুসন্ধান ও পরীক্ষা করার জন্য অনেক সময় ব্যয় করেছি। আপনি যদি টমকেটে নিযুক্ত করছেন তবে আমার পরামর্শটি হ'ল নতুন টমকেট জেডিবিসি পুলটি ব্যবহার করা।


14

ডিবিসিপি-র সাথে স্বয়ংক্রিয় পুনঃসংযোগ ইস্যুটির জন্য, নিম্নলিখিত 2 কনফিগারেশন প্যারামিটারগুলি ব্যবহার করার চেষ্টা করেছে?

validationQuery="Some Query"

testOnBorrow=true

হিসেবে ডকুমেন্টেশন , testOnBorrowডিফল্ট মান আছে true, তাই যদি validationQueryসংজ্ঞায়িত করা হয় আগেই আবেদন পাস করা হয়েছে DBCP যে সংযোগ পরীক্ষা হবে।
dma_k


12

এখন কয়েক বছর ধরে প্রোডাকশনে ডিবিসিপি ব্যবহার করছেন। এটি স্থিতিশীল, ডিবি সার্ভার পুনরায় বুট থেকে বেঁচে। কেবল এটি সঠিকভাবে কনফিগার করুন। এটির জন্য কেবলমাত্র কয়েক মুঠো প্যারামিটার নির্দিষ্ট করা দরকার তাই অলসতা বোধ করবেন না। আমাদের সিস্টেম প্রোডাকশন কোডের একটি স্নিপেট এখানে রয়েছে যা প্যারামিটারগুলি তালিকাভুক্ত করে যা আমরা স্পষ্টতই এটির কাজটি করার জন্য সেট করেছি:

DriverAdapterCPDS driverAdapterCPDS = new DriverAdapterCPDS();
driverAdapterCPDS.setUrl(dataSourceProperties.getProperty("url"));
driverAdapterCPDS.setUser(dataSourceProperties.getProperty("username"));
driverAdapterCPDS.setPassword(dataSourceProperties.getProperty("password"));
driverAdapterCPDS.setDriver(dataSourceProperties.getProperty("driverClass"));

driverAdapterCPDS.setMaxActive(Integer.valueOf(dataSourceProperties.getProperty("maxActive")));
driverAdapterCPDS.setMaxIdle(Integer.valueOf(dataSourceProperties.getProperty("maxIdle")));
driverAdapterCPDS.setPoolPreparedStatements(Boolean.valueOf(dataSourceProperties.getProperty("poolPreparedStatements")));

SharedPoolDataSource poolDataSource = new SharedPoolDataSource();
poolDataSource.setConnectionPoolDataSource(driverAdapterCPDS);
poolDataSource.setMaxWait(Integer.valueOf(dataSourceProperties.getProperty("maxWait")));
poolDataSource.setDefaultTransactionIsolation(Integer.valueOf(dataSourceProperties.getProperty("defaultTransactionIsolation")));
poolDataSource.setDefaultReadOnly(Boolean.valueOf(dataSourceProperties.getProperty("defaultReadOnly")));
poolDataSource.setTestOnBorrow(Boolean.valueOf(dataSourceProperties.getProperty("testOnBorrow")));
poolDataSource.setValidationQuery("SELECT 0");

8

এখানে কিছু নিবন্ধ রয়েছে যা দেখায় যে সিবিপিপি বা প্রক্সুলের তুলনায় ডিবিসিপি-র উল্লেখযোগ্য পরিমাণে উচ্চতর পারফরম্যান্স রয়েছে। এছাড়াও আমার নিজের অভিজ্ঞতায় সি 3 পি 0-তে কিছু দুর্দান্ত বৈশিষ্ট্য রয়েছে যেমন প্রস্তুত স্টেটমেন্ট পুলিং এবং এটি ডিবিসিপি-র চেয়ে আরও কনফিগারযোগ্য তবে আমি যে পরিবেশে এটি ব্যবহার করেছি সেখানে ডিবিসিপি স্পষ্টতই দ্রুততর।

Dbcp এবং c3p0 এর মধ্যে পার্থক্য? একেবারে কিছুই না! (একটি সাকাই বিকাশকারী ব্লগ) http://blogs.nyu.edu/blogs/nrm216/sakaidelic/2007/12/differences_between_dbcp_and_c3.html

ব্লগ পোস্টে দেওয়া মন্তব্যে জাভাটেক নিবন্ধ "সংযোগ পুল শোডাউন" এর মতো দেখুন।


4
একক থ্রেডযুক্ত পরিবেশে দ্রুত, সম্ভবত, বগি এবং অ-স্থিতিশীল এবং অন্য কোথাও কেবল সরল।

7

প্রক্সুল নামে আরও একটি বিকল্প এই নিবন্ধে উল্লেখ করা হয়েছে ।

আপনি সম্ভবত এটি জানতে সক্ষম হবেন যে হাইবারনেট তার ডিফল্ট সংযোগ পুল বাস্তবায়নের জন্য সি 3 পি 0 বান্ডিল করে কেন?


7

দুর্ভাগ্যক্রমে তারা সব পুরানো। ডিবিসিপি সাম্প্রতিককালে কিছুটা আপডেট করা হয়েছে, অন্যান্য দু'টি 2-3 বছর বয়সী, অনেকগুলি বকেয়া ত্রুটিযুক্ত।


এটি সত্য - সি 3 পিওর শেষ প্রকাশ (একটি 0.9 প্রাক রিলিজ) মে 2007 সাল থেকে। কমপক্ষে এটি একটি স্থিতিশীল 1.2 রিলিজ। আসলে সেখানে কি কিছু রক্ষণাবেক্ষণ করা হয়?
Guss

4
সুষ্ঠু হওয়ার জন্য এগুলি বড় প্রকল্প নয় তাই আপনার সি 3 পি 0 / ডিবিসিপিতে কম এবং কম আপডেটের আশা করা উচিত এবং সময় অতিক্রম করতে হবে।
wadge

7

সঠিকভাবে কনফিগার করা থাকলে ডিবিসিপি উত্পাদন প্রস্তুত।

এটি উদাহরণস্বরূপ 350000 দর্শক / দিনে এবং 200 সংযোগের পুলের বাণিজ্য ওয়েবসাইটে ব্যবহৃত হয়।

আপনি সঠিকভাবে কনফিগার করেছেন তবে এটি খুব ভাল সময়সীমা পরিচালনা করে।

সংস্করণ 2 অগ্রগতিতে রয়েছে এবং এর একটি ব্যাকগ্রাউন্ড রয়েছে যা অনেকগুলি উত্পাদন সমস্যা মোকাবেলা করার কারণে এটি নির্ভরযোগ্য করে তোলে।

আমরা এটি আমাদের ব্যাচ সার্ভার সমাধানের জন্য ব্যবহার করি এবং এটি কয়েকশো ব্যাচ চলছে যা ডাটাবেসে কয়েক মিলিয়ন লাইনে কাজ করে।

টমকাট জেডিবিসি পুল দ্বারা পরিচালিত পারফরম্যান্স টেস্টগুলি দেখায় যে এটির সিপিপি ০ এর চেয়ে ভাল পারফরম্যান্স রয়েছে।


ইউবিআইকে লোড প্যাক - আমরা DBCP 1.4 ব্যবহার করছি এবং 10000 রেকর্ড সহ আমাদের একক ব্যাচের ধ্রুব স্তব্ধ হয়ে চলেছি। আমরা স্প্রিং ব্যাচ + জেএসআর 352 ব্যবহার করছি এবং হিকারিসিপিতে স্যুইচ করার কথা ভাবছি। আপনি যখন বলছেন, 100 টি ব্যাচগুলি মসৃণ চলছে, আপনি কি এটি ডিবিসিপি ২.x বা অন্য কোনও সংস্করণ দিয়ে চলছে? এছাড়াও, আপনার কি কনফিগারেশনগুলি ভাগ করে নেওয়া উচিত? আমাদের কনফিগারেশনটি ম্যাক্স্যাকটিভ = ১৫০, মিনি আইডল = ১৫, ম্যাক্সিডেল = 75, ইনিশিয়াল সাইজ = 15 তবে হ্যাংগুলি চলে যেতে দেখেনি। আমরা কোনও বৈধকরণকুইয়ারি বা টেস্টঅনবোর / টেস্টঅনআর্টারন ব্যবহার করছি না। আপনি কি এটি ব্যবহারের পরামর্শ দিচ্ছেন?
যোগেন্দ্র

4

সবেমাত্র ডিবিসিপি দিয়ে দেড় দিন নষ্ট হয়ে গেছে। যদিও আমি সর্বশেষতম ডিবিসিপি রিলিজ ব্যবহার করছি, আমি জে পিমলের মতো ঠিক একই সমস্যার মধ্যে চলে এসেছি । আমি মোটেও ডিবিসিপিকে সুপারিশ করব না, বিশেষত এটি ডিবি চলে গেলে পুলের বাইরে সংযোগ নিক্ষেপ করার ঝাঁকুনি, ডিবি ফিরে এলে পুনরায় সংযোগ স্থাপনে অক্ষমতা এবং সংযোগের বস্তুগুলিকে পুনরায় পুলের মধ্যে যুক্ত করতে তার অক্ষমতা (এটি চিরতরে স্তব্ধ থাকে) একটি পোস্ট JDBC সংযোগ আই / ও সকেট পড়ুন)

আমি এখন সি 3 পি 0 এ স্যুইচ করছি। আমি এটি পূর্ববর্তী প্রকল্পগুলিতে ব্যবহার করেছি এবং এটি একটি কবজির মতো কাজ করেছে এবং সম্পাদন করেছে।


4

c3p0 ভাল হয় যখন আমরা মিডিথ্রেডিং প্রকল্পগুলি ব্যবহার করি। আমাদের প্রকল্পগুলিতে আমরা DBCP ব্যবহার করে একসাথে একাধিক থ্রেড মৃত্যুদন্ড ব্যবহার করেছি, তারপরে আমরা আরও থ্রেড এক্সিকিউশন ব্যবহার করি তবে আমরা সংযোগের সময়সীমা পেয়েছিলাম। সুতরাং আমরা c3p0 কনফিগারেশন সঙ্গে গিয়েছিলাম।


3

একটি ভাল বিকল্প যা ব্যবহার করা সহজ, তা হ'ল ডিবিপুল

"একটি জাভা ভিত্তিক ডাটাবেস সংযোগ পুলিং ইউটিলিটি, সময় ভিত্তিক মেয়াদোত্তীর্ণ সমর্থন, বিবৃতি ক্যাচিং, সংযোগের বৈধতা, এবং পুল পরিচালকের সাহায্যে সহজ কনফিগারেশন।"

http://www.snaq.net/java/DBPool/


আমি ডিবিপুল বনাম বোনসিপি বেঞ্চমার্ক করেছি। ডিবিপুল অন্যান্য জিনিসের মধ্যে getConnication () সিঙ্ক্রোনাইজ করে তোলে এবং বোনসিপির চেয়ে অনেক ধীরে ধীরে (দেখুন: jolbox.com/forum/viewtopic.php?f=3&t=175 )।
wWad '19:45

3

আমরা এমন পরিস্থিতি পেরিয়ে এসেছি যেখানে আমাদের সংযোগ পুলটি প্রবর্তন করা দরকার এবং আমাদের সামনে 4 টি বিকল্প ছিল।

  • DBCP2
  • C3P0
  • টমকেট জেডিবিসি
  • HikariCP

আমরা আমাদের মানদণ্ডের উপর ভিত্তি করে কিছু পরীক্ষা এবং তুলনা করেছি এবং হিকারিসিপি-তে যাওয়ার সিদ্ধান্ত নিয়েছি। এই নিবন্ধটি পড়ুন যা ব্যাখ্যা করে যে আমরা কেন হিকারিসিপি বেছে নিয়েছি।


1

C3P0 সর্বোত্তম উপায়ে কার্যকর করতে হলে এই উত্তরটি দেখুন

C3P0 :

এন্টারপ্রাইজ অ্যাপ্লিকেশনটির জন্য, সি 3 পি 0 হ'ল সর্বোত্তম পন্থা। সিডিপিসি হ'ল জেডিবিসি 3 স্পেস এবং জেডিবিসি 2 স্ট্যান্ড এক্সটেনশনের বিবরণ অনুসারে সংযোগ এবং স্টেটমেন্ট পুলিং বাস্তবায়নকারী ডেটাসোর্স সহ জেএনডিআই-বাইন্ডেবল ডেটাসোর্স সহ traditionalতিহ্যবাহী (ড্রাইভার-ম্যানেজার-ভিত্তিক) জেডিবিসি ড্রাইভারদের বাড়ানোর জন্য সহজেই ব্যবহারযোগ্য লাইব্রেরি। সি 3 পি 0 দৃume়ভাবে ডিবি সংযোগ বিচ্ছিন্ন এবং পুনরায় শুরুতে স্বচ্ছ পুনরায় সংযোগ স্থাপন করেছে, যদিও লিঙ্কটি নীচে থেকে বাইরে নিয়ে যাওয়ার পরে ডিবিসিপি কখনও সংযোগগুলি উদ্ধার করতে পারে না।

সুতরাং এই কারণেই সি 3 পি 0 এবং অন্যান্য সংযোগ পুলগুলিতে স্টেটমেন্ট ক্যাশেও প্রস্তুত রয়েছে - এটি অ্যাপ্লিকেশন কোডকে এই সমস্ত বিষয়গুলি এড়াতে অনুমতি দেয়। বিবৃতিগুলি সাধারণত কিছু সীমিত এলআরইউ পুলে রাখা হয়, তাই সাধারণ বিবৃতিগুলি একটি প্রস্তুতিমূলক স্টেস্ট্যান্ট উদাহরণ পুনরায় ব্যবহার করে।

সবচেয়ে খারাপটি এখনও ডিবিসিপি সেই আবেদনের সাথে সংযোগের বস্তুগুলি ফিরিয়ে দিচ্ছিল যার জন্য অন্তর্নিহিত পরিবহনটি ভেঙেছিল। সি 3 পি 0 এর জন্য একটি সাধারণ ব্যবহারের ক্ষেত্রে অ্যাপাচি টমক্যাটের সাথে অন্তর্ভুক্ত স্ট্যান্ডার্ড ডিবিসিপি সংযোগ পুলিং প্রতিস্থাপন করা। প্রায়শই, একটি প্রোগ্রামার এমন পরিস্থিতিতে চলে আসবে যেখানে সংযোগগুলি সঠিকভাবে ডিবিসিপি সংযোগ পুলে পুনর্ব্যবহার করা হয় না এবং সি 3 পি 0 এই ক্ষেত্রে একটি মূল্যবান প্রতিস্থাপন।

বর্তমান আপডেটগুলিতে সি 3 পি 0 এর কিছু উজ্জ্বল বৈশিষ্ট্য রয়েছে। এগুলি বোকা দেওয়া হয়:

ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setMinPoolSize();
dataSource.setMaxPoolSize();
dataSource.setMaxIdleTime();
dataSource.setMaxStatements();
dataSource.setMaxStatementsPerConnection();
dataSource.setMaxIdleTimeExcessConnections();

এখানে সর্বোচ্চ এবং সর্বনিম্ন পুলসাইজ সংযোগের সীমা নির্ধারণ করে যার অর্থ এই অ্যাপ্লিকেশনটি কীভাবে সর্বনিম্ন এবং সর্বাধিক সংযোগ গ্রহণ করবে। MaxIdleTime()এটি নিষ্ক্রিয় সংযোগটি কখন প্রকাশ করবে তা নির্ধারণ করুন।

DBCP :

এই পদ্ধতিরটিও ভাল তবে সংযোগের সময়সীমা এবং সংযোগ পুনরায় প্রকাশের মতো কিছু ত্রুটি রয়েছে। C3P0 ভাল হয় যখন আমরা মিডিথ্রেডিং প্রকল্পগুলি ব্যবহার করি। আমাদের প্রকল্পগুলিতে আমরা DBCP ব্যবহার করে একসাথে একাধিক থ্রেড মৃত্যুদন্ড ব্যবহার করেছি, তারপরে আমরা আরও থ্রেড এক্সিকিউশন ব্যবহার করি তবে আমরা সংযোগের সময়সীমা পেয়েছিলাম। সুতরাং আমরা c3p0 কনফিগারেশন সঙ্গে গিয়েছিলাম। আমি মোটেও ডিবিসিপিকে সুপারিশ করব না, বিশেষত এটি ডিবি চলে গেলে পুলের বাইরে সংযোগ নিক্ষেপ করার ঝাঁকুনি, ডিবি ফিরে এলে পুনরায় সংযোগ স্থাপনে অক্ষমতা এবং সংযোগের বস্তুগুলিকে পুনরায় পুলের মধ্যে যুক্ত করতে তার অক্ষমতা (এটি চিরতরে স্তব্ধ থাকে) একটি পোস্ট JDBC সংযোগ আই / ও সকেট পড়ুন)

ধন্যবাদ :)


1

আমার সুপারিশ হয়

হিকারি> ড্রুড> ইউসিপি> সি 3 পি0> ডিবিসিপি

এটি আমার যা পরীক্ষিত হয়েছিল তার উপর ভিত্তি করে - 20190202, আমার স্থানীয় পরীক্ষার পরিবেশে (4 জিবি ম্যাক / মাইএসকিএল ইন ডক / পুল মিনিসাইজ = 1, ম্যাক্স সাইজ = 8), হিকারি সংযোগ পেতে 1024 থ্রেড x 1024 বার পরিবেশন করতে পারে, প্রতিটি থ্রেডের গড় সময় সমাপ্তিটি 1 বা 2 মিলিয়ন সেকেন্ড, যখন সি 3 পি 0 কেবল 256 থ্রেড x 1024 বার পরিবেশন করতে পারে এবং প্রতিটি থ্রেডের গড় সময় ইতিমধ্যে 21 মিলিয়ন সেকেন্ড। (512 থ্রেড ব্যর্থ হয়েছে)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.