আমি কীভাবে এসকিউএল সার্ভারে এমএসডিটিসি সক্ষম করব?


106

এটি কি একটি বৈধ প্রশ্ন? আমার কাছে একটি .NET উইন্ডোজ অ্যাপ রয়েছে যা এমএসটিডিসি ব্যবহার করছে এবং এটি একটি ব্যতিক্রম ছোঁড়াচ্ছে:

System.Transferences.TransactionManagerCommunicationException: বিতরণ লেনদেন পরিচালকের (এমএসডিটিসি) জন্য নেটওয়ার্ক অ্যাক্সেস অক্ষম করা হয়েছে। কম্পোনেন্ট সার্ভিসেস অ্যাডমিনিস্ট্রেটিভ টুল ---> সিস্টেম.আরুনটাইম.ইনটারপ সার্ভিস.কোম এক্সেকসেপশন (0x8004D024) ব্যবহার করে এমএসডিটিসির সুরক্ষা কনফিগারেশনে নেটওয়ার্ক অ্যাক্সেসের জন্য দয়া করে ডিটিসি সক্ষম করুন: লেনদেন পরিচালক দূরবর্তী / নেটওয়ার্ক লেনদেনের জন্য তার সমর্থনটিকে অক্ষম করে দিয়েছে। (এইচআরসিলেট থেকে: 0x8004D024 ব্যতীত) System.Transferences.Oletx.IDtcProxySimFactory.Reসেফট ট্রান্সজেকশন (UInt32 প্রগেশন টোকেনসিজে, বাইট [] প্রবর্তন টোকেন, ইন্টারপ্রেট পরিচালিত পরিচয়দাতা, নির্দেশিকা ও লেনদেনের চুক্তি ও লেনদেনের চুক্তি এবং লেনদেনের ব্যবস্থা

যে পিসিতে অ্যাপটি ইনস্টল করা হয়েছে তাতে এমএসডিটিসি সক্ষম করতে আমি Kbalertz গাইড অনুসরণ করেছি , তবে ত্রুটিটি এখনও ঘটে।

আমি ভাবছিলাম যে এটি কোনও ডাটাবেসের সমস্যা ছিল কিনা? যদি তা হয় তবে আমি কীভাবে এটি সমাধান করব?


যদি উল্লিখিত সমাধানগুলি সমস্যার সমাধান না করে তবে এই লিঙ্কটি দেখুন
শাহাব জে

উত্তর:


127

উইন্ডোজ সার্ভার ২০০৮ আর ২ এবং উইন্ডোজ সার্ভার ২০১২ আর 2 এর জন্য এটি ব্যবহার করুন

  1. শুরু ক্লিক করুন , রান ক্লিক করুন , dcomcnfg টাইপ করুন এবং তারপরে কম্পোনেন্ট সার্ভিসগুলি খুলতে ওকে ক্লিক করুন ।

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

  3. লোকাল ডিটিসিতে ডান ক্লিক করুন এবং স্থানীয় ডিটিসি প্রোপার্টি সংলাপ বাক্সটি প্রদর্শন করতে বৈশিষ্ট্যগুলি ক্লিক করুন ।

  4. সুরক্ষা ট্যাবে ক্লিক করুন ।

  5. "নেটওয়ার্ক ডিটিসি অ্যাক্সেস" চেকবাক্স চিহ্নিত করুন।

  6. অবশেষে "ইনবাউন্ডকে অনুমতি দিন" এবং "আউটবাউন্ডকে মঞ্জুরি দিন" চেকবাক্সগুলি চিহ্নিত করুন।

  7. প্রয়োগ করুন , ওকে ক্লিক করুন

  8. একটি বার্তা পরিষেবাটি পুনরায় চালু করার বিষয়ে পপ আপ করবে ।

  9. ওকে ক্লিক করুন এবং এগুলি সবই।

তথ্যসূত্র: https://msdn.microsoft.com/en-us/library/dd327979.aspx

দ্রষ্টব্য: কখনও কখনও স্থানীয় কম্পিউটার বা সার্ভারে নেটওয়ার্ক ফায়ারওয়াল আপনার সংযোগকে বাধাগ্রস্ত করতে পারে তাই নিশ্চিত করুন যে আপনি "ইনবাউন্ডকে মঞ্জুরি দিন" এবং "আউটবাউন্ডকে মঞ্জুরি দিন" সংযোগের জন্য নিয়ম তৈরি করেছেন forC:\Windows\System32\msdtc.exe


উইন্ডোজ সার্ভার 2012 আর 2 এর জন্যও কাজ করে। পরিষ্কার নির্দেশের জন্য ধন্যবাদ। এটি আমার নিজের মতো কখনও পেতাম না!
জোনাজু

@ জোনাজু এখন উইন্ডোজ সার্ভার 2012 আর 2 এর জন্যও আমার উত্তর আপডেট হয়েছে :)
শিব সিং

ভালো চাকরি শিবসিংহ!
সুপার কোডার

এর সঠিক পথটি msdtc.exeহ'ল:c:\windows\system32\msdtc.exe
ফায়ারপল

1
কমপক্ষে ক্লাস্টার্ড সার্ভার 2016 নোডে, ইউআইয়ের মাধ্যমে সেট করার সময় এই বৈশিষ্ট্যগুলি অবিচলিত হয় না এমন একটি বাগ আছে বলে মনে হচ্ছে। সমাধান রেজিস্ট্রি মধ্যে নিজে এই বৈশিষ্ট্য সেট করা: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Securityএখানে সম্পত্তি সম্পর্কিত আরও তথ্য ।
পল

102

এমনকি আপনার কি এমএসডিটিসি দরকার? আপনি যে ক্রমবর্ধমানটির মুখোমুখি হচ্ছেন তা প্রায়শই একটি একক লেনদেনস্কোপের মধ্যে একাধিক সংযোগ তৈরি করার কারণে ঘটে।

আপনার যদি এটির প্রয়োজন হয় তবে আপনাকে ত্রুটি বার্তায় বর্ণিত হিসাবে এটি সক্ষম করতে হবে। এক্সপিতে:

  • প্রশাসনিক সরঞ্জাম -> উপাদান পরিষেবাগুলিতে যান
  • উপাদান পরিষেবাগুলি -> কম্পিউটার -> প্রসারিত করুন
  • ডান ক্লিক করুন -> বৈশিষ্ট্য -> এমএসডিটিসি ট্যাব
  • সুরক্ষা কনফিগারেশন বোতামটি হিট করুন

2
উইন্ডোজ ফায়ারওয়ালে আমি 135 টিসিপি বন্দর খোলা এবং একটি ব্যতিক্রম হিসাবে সি: \ উইন্ডোজ \ এমএসডিটিসি.এক্সে যুক্ত করেছি
সমীর

20
একটি একক লেনদেনস্কোপের মধ্যে একাধিক সংযোগ তৈরি করার কারণে ত্রুটিটি ঘটছে সম্পর্কে মন্তব্য করার জন্য ধন্যবাদ Thanks আমি ত্রুটি পেয়ে যাচ্ছিলাম এবং এটি হ'ল সমস্যা। আমি এমএসডিটিসি ব্যবহার করতে চাইনি, তাই আমি ভুল নতুন সংযোগ খুঁজে পেয়েছি এবং একটি বিদ্যমানটিকে পুনরায় ব্যবহার করেছি। ধন্যবাদ!
জিম ম্যাককেথ

10
আমি উইন্ডোজ 7 এবং 8 এ আছি এবং কেবলমাত্র "ডিফল্ট সমন্বয়কারী" বিভাগ রয়েছে। আপনি যে সুরক্ষা কনফিগারেশনের কথা বলছেন তা কোথায় পাব?
qdev76

2
1) স্থানীয় ডিটিসি তে ডান ক্লিক করুন এবং বৈশিষ্ট্যগুলি বেছে নিন 2) সুরক্ষা ট্যাবটি খুলুন 3) কমপক্ষে নেটওয়ার্ক ডিটিসি অ্যাক্সেস পরীক্ষা করুন, রিমোট ক্লায়েন্টকে অনুমতি দিন এবং ইনবাউন্ডের অনুমতি দিন।
রব সেডগুইক

19

আমি খুঁজে পেয়েছি যে ডিবাগ করার সর্বোত্তম উপায় হ'ল ডিটিসিপিং নামক মাইক্রোসফ্ট সরঞ্জামটি ব্যবহার করা

  1. সার্ভার (ডিবি) এবং ক্লায়েন্ট (অ্যাপ্লিকেশন সার্ভার / ক্লায়েন্ট পিসি) উভয়ই ফাইলটি অনুলিপি করুন
    • এটি সার্ভার এবং ক্লায়েন্টে শুরু করুন
    • সার্ভারে: ক্লায়েন্ট নেটবিওস কম্পিউটারের নামটি পূরণ করুন এবং একটি ডিটিসি সংযোগ স্থাপনের চেষ্টা করুন
    • উভয় অ্যাপ্লিকেশন পুনরায় চালু করুন।
    • ক্লায়েন্টে: সার্ভার নেটবিওস কম্পিউটারের নামটি পূরণ করুন এবং একটি ডিটিসি সংযোগ স্থাপনের চেষ্টা করুন

আমাদের পুরানো কোম্পানির নেটওয়ার্কে আমার ভাড়া সংক্রান্ত সমস্যা ছিল এবং আমি কয়েকটি টিপস পেয়েছি:

  • যদি আপনি ত্রুটি বার্তাটি "গেথস্টবাইনেম ব্যর্থ" পেয়ে থাকেন তবে এর অর্থ কম্পিউটার তার নেটবায়োসের নামে অন্য কম্পিউটারটি খুঁজে পাবে না । সার্ভার উদাহরণস্বরূপ ক্লায়েন্টকে সমাধান করতে এবং পিং করতে পারে তবে এটি ডিএনএস স্তরে কাজ করে। নেটবায়োস দেখার স্তরে নয়। WINS সার্ভার ব্যবহার করা বা LMHOST (নোংরা) পরিবর্তন করা এই সমস্যার সমাধান করবে।
  • যদি আপনি "অ্যাকসেস অস্বীকৃত" ত্রুটি পান তবে সুরক্ষা সেটিংস মেলে না। আপনার এমএসডিটিসির জন্য সুরক্ষা ট্যাবটি তুলনা করা উচিত এবং সার্ভার এবং ক্লায়েন্টের সাথে মিল রাখতে হবে। আরেকটি বিষয় দেখার জন্য হ'ল সীমাবদ্ধ রেমোটক্লায়েন্টস মান। আপনার ওএস সংস্করণ এবং আরও গুরুত্বপূর্ণভাবে সার্ভিস প্যাকের উপর নির্ভর করে এই মানটি আলাদা হতে পারে।
  • সংযোগের অন্যান্য সমস্যা:
    • সার্ভার এবং ক্লায়েন্টের মধ্যে ফায়ারওয়ালকে অবশ্যই 135 পোর্টের মাধ্যমে যোগাযোগের অনুমতি দিতে হবে And যে বন্দরে)
    • প্রোটোকল প্রকৃত লেনদেন যোগাযোগের জন্য সংযোগ করতে একটি এলোমেলো বন্দর দেয়। ফায়ারওয়াল লোকেরা এটি পছন্দ করে না, তারা বন্দরগুলি একটি নির্দিষ্ট পরিসরে সীমাবদ্ধ রাখতে পছন্দ করে। ফায়ারওয়ালসের সাথে কাজ করার জন্য কীভাবে আরপিসি ডায়নামিক পোর্ট বরাদ্দ কনফিগার করতে হয় তার বিবরণ হিসাবে কীগুলি ব্যবহার করে আপনি RPC ডায়নামিক পোর্ট জেনারেশনকে একটি নির্দিষ্ট পরিসরে সীমাবদ্ধ করতে পারেন ।

আমার অভিজ্ঞতায়, ডিটিসিপিং যদি ক্লায়েন্টের কাছ থেকে আরম্ভ করা এবং সার্ভার থেকে শুরু করে একটি ডিটিসি সংযোগ স্থাপন করতে সক্ষম হয় তবে আপনার লেনদেনের সমস্যা আর নেই are


6

তাও দেখতে পারেন এখানে কিভাবে কন্ট্রোল প্যানেল এর services.msc থেকে MSDTC চালু করতে হবে।

যে সার্ভারটিতে ট্রিগারটি থাকে, সেখানে আপনাকে এমএসডিটিসি পরিষেবা চালু করতে হবে। আপনি এটি START> সেটিং> নিয়ন্ত্রণ প্যানেল> প্রশাসনিক সরঞ্জাম> পরিষেবাগুলি ক্লিক করে এটি করতে পারেন। 'বিতরণ লেনদেন সমন্বয়কারী' নামক পরিষেবাটি সন্ধান করুন এবং ডান ক্লিক করুন (এটিতে নির্বাচন করুন)> শুরু করুন।


4

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


আমি মনে করি এটিই নতুন অবস্থান মাইক্রোসফট
/en-us/download/details.aspx?id=30746

4

@Dan,

কাজের জন্য লেনদেনের জন্য আমার কি এমএসডিটিসি সক্ষম হওয়া দরকার না?

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


কাজের জন্য লেনদেনের জন্য আমার কি এমএসডিটিসি সক্ষম হওয়া দরকার না? যেভাবেই হোক, আমি যতটা সচেতন সেভাবে একাধিক সংযোগ তৈরি হচ্ছে না। আমি ইতিমধ্যে ক্লায়েন্ট পিসিতে এই পদক্ষেপগুলি চালিয়েছি, আপনি কি বলছেন যে আমারও এই পদক্ষেপগুলি ডাটাবেস সার্ভারে করা উচিত?
ড্যান

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