VPN බිඳ වැටීමෙන් පසු SQL Server සිට Oracle දක්වා පූරණය ප්රතිසාධනය කරන්න
VPN බිඳ වැටීමෙන් Oracle හි commit සිදු වූයේදැයි අමතන්නාට සැකයක් ඇති කරයි. කල් පවතින කණ්ඩායම් ID එකක් නිස්සාරණය, යෙදීම සහ සමනය එකින් එක පිළිතුරු දීමට ඉඩ සලසයි.
VPN බිඳ වැටෙන විට දත්ත සමුදායන් අතර මාරුව මිය යයි, සහ «නැවත ධාවනය කරන්න» යනු ප්රතිසාධන සැලැස්මක් නොවේ. මූලාශ්රයෙන් නිස්සාරණය සම්පූර්ණ වී තිබිය හැක, ඉලක්කය දැනටමත් commit කර තිබිය හැක, නැතහොත් පිළිතුර ආපසු එන මගේ නිකම්ම නැති වී තිබිය හැක. මෙම තත්ත්ව තුනට වෙනස් ක්රියාමාර්ග අවශ්ය වන අතර, «දෝෂය» පමණක් දන්නා සේවාලාභියාට ඒවා වෙන් කර හඳුනාගත නොහැක.
විසඳුම වාස්තුවිද්යාත්මක ය: සෑම ධාවනයකටම කල් පවතින කණ්ඩායම් අනන්යතාවක් දෙන්න, සහ සේවාලාභියාට අනුමාන කිරීමට ඉඩ දීම වෙනුවට දත්ත සමුදායන්ට ප්රශ්නවලට පිළිතුරු දීමට ඉඩ දෙන්න.
දත්ත සමුදාය සැබවින්ම සහතික කරන්නේ කුමක්ද
SQL Server සහ Oracle දෙකම ගනුදෙනුවක් තුළ පරමාණුකත්වය ලබා දෙයි. දෙක අතර පරමාණුකත්වය කිසිවක් ලබා නොදෙයි. නැති වූ සම්බන්ධතාවය දත්ත සමුදාය විනාශ නොකරයි, සහ අතින් ආපසු හැරවීමට බල නොකරයි, මන්ද සේවාදායකයා ඔබ නොමැතිව තම ගනුදෙනුව විසඳයි. බිඳෙන්නේ අමතන්නාගේ ප්රතිඵලය පිළිබඳ දැනුමයි.
වෙන වෙනම commit කිරීම යනු වෙන වෙනම commit කිරීමයි. සම්බන්ධතා දෙකම රැගෙන යන VPN එකක් commit දෙකක් එක් කාර්ය ඒකකයකට ඒකාබද්ධ නොකරයි.
ඔබ කිසිදා නොඇසූ commit
එක් අසාර්ථක ක්රමයක් සරල නැවත උත්සාහ තර්කනයට දඬුවම් කරයි: සේවාදායකයා commit කරයි, සහ තහවුරු කිරීම කිසිදා අමතන්නා වෙත නොපැමිණේ. Oracle මෙය නොදන්නා ප්රතිඵල ගැටලුව ලෙස ලේඛනගත කර ඒ සඳහා ගනුදෙනු ලේඛනවල Transaction Guard ලබා දෙයි. සන්නිවේදන දෝෂයක් යනු යවන ලද commit එකක් අසාර්ථක වූ බවට සාක්ෂියක් නොවේ, සහ එය සාක්ෂියක් ලෙස සැලකීම කණ්ඩායමක් දෙවරක් පළ කරන මාර්ගයයි. මෙම වෙනස නැවත උත්සාහ මාර්ගයේ වඩාත් වැදගත් වේ, එහිදී ක්රියාකරුට දෝෂ පණිවිඩයක් පමණක් ඇති අතර ක්රියා කිරීමට වෙනත් සංඥාවක් නැත.
එබැවින් ප්රතිසාධන පියවර ප්රතිඵලය දෝෂ පෙළෙන් අනුමාන කිරීම වෙනුවට ඉලක්කයෙන් කියවිය යුතුය.
මාරුවට කණ්ඩායම් අනන්යතාවක් දෙන්න
සෑම ධාවනයකටම වෙනස් නොවන කණ්ඩායම් ID එකක් ලැබේ, සහ ඉලක්කය එම ID සමඟ කුමක් කළේදැයි වාර්තා කරයි. ජීවන චක්රය පියවර හතරකි, සහ සැපයුම්කරු කවරෙකු වුවද එය එකම ලෙස පෙනේ:
- නිස්සාරණය වාර්තාගත ස්කීමා සහ මායිම සහිත හඳුනාගත්, වෙනස් නොවන මූලාශ්ර කණ්ඩායමක්.
- මාරු කරන්න එය ඉලක්කයේ පිළියෙළ කලාපයට, සහ සූදානම් යැයි ප්රකාශ කිරීමට පෙර අසම්පූර්ණ හෝ පරස්පර අන්තර්ගතය හඳුනාගන්න.
- යොදන්න ඉලක්කයේම සුවිශේෂත්ව හෝ අගුළු දැමීමේ නීති යටතේ, සහ එම ස්ථානීය ගනුදෙනුවේම සම්පූර්ණත්වය වාර්තා කරන්න.
- සමනය කරන්න කල් පවතින ප්රතිඵලය ආධාරක ප්රොටෝකෝලය හරහා, තහවුරු කිරීමට හෝ නැවත උත්සාහ කිරීමට පෙර.
නැවත උත්සාහ එම ID ම නැවත භාවිත කරයි. සෑම උත්සාහයකටම නව ID එකක් ඔබ දැන් ගොඩනැගූ අනුපිටපත් වැළැක්වීම බිඳ දමයි, එය නැවත උත්සාහ ආවරණයක් ස්වයංක්රීයව එකක් ජනනය කරන තෙක් පැහැදිලි ලෙස පෙනේ.
ID එක ඔබට පසුව සමනය කිරීමට යමක් ලබා දෙයි, සේවාලාභී ක්රියාවලිය බොහෝ කලකට පෙර අතුරුදහන් වූ පසුවත්.
කණ්ඩායම ඉල්ලා ගන්න, පසුව යොදන්න
යෙදීමේ පියවර කණ්ඩායම් ID ඉල්ලා ගත යුතුය, ව්යාපාරික වෙනස්කම් සිදු කළ යුතුය, සහ සම්පූර්ණත්වය එක් ස්ථානීය ගනුදෙනුවක වාර්තා කළ යුතුය. පරීක්ෂාව සහ ඇතුළත් කිරීම වෙන වෙනම ප්රකාශ ලෙස කිරීම ඔබ ඉවත් කිරීමට උත්සාහ කළ තරඟය නැවත ගෙන එයි. කම්කරුවන් දෙදෙනෙකු තරඟ කරන්නේ නම්, හරියටම එක් ඉල්ලීමක් ජය ගනී සහ අනෙකාට එය දන්වනු ලැබේ.
සම්පූර්ණත්ව වාර්තාවක් නොමැති වීම යනු ක්රියාත්මක වන ගනුදෙනුවක් කිසිදා commit නොකරන බවට සාක්ෂියක් නොවේ. ඉල්ලීම තරඟකාරී උත්සාහ සමාන්තර කළ යුතුය, නැතහොත් ප්රොටෝකෝලය ඕනෑම තීරණයකට පෙර කල් පවතින ප්රතිඵලය කියවිය යුතුය.
එම සමාන්තරකරණය සඳහා යෙදුම් කේතයේ පරීක්ෂා-පසුව-නැවත කරන ලූපයක් වෙනුවට දත්ත සමුදායේ ආධාරක යාන්ත්රණය භාවිත කරන්න.
නිර්මාණය තවමත් පොරොන්දු විය නොහැකි දේ
පිළියෙළ කිරීම කාර්යය නැවත ආරම්භ කළ හැකි බවට පත් කර දිගු සැසියක් මත යැපීම අඩු කරයි. එය SQL Server, Oracle සහ කාර්යය සිදු කරන ඕනෑම බාහිර අතුරු ආබාධයක් හරහා තනි පරමාණුක commit එකක් නිර්මාණය නොකරයි. ව්යාපාරයට එය සැබවින්ම අවශ්ය නම්, ආධාරක බෙදාහරින ලද ගනුදෙනුවක් හෝ සමනය කිරීමේ ක්රියාවලියක් නිර්මාණය කර සුදුසුකම් ලබා දෙන්න, අවිනිශ්චිත ප්රතිඵලයක් සහිත කාර්යය කාටද යන්නද ඇතුළත්ව. මෙයට වඩා දුර්වල ඕනෑම දෙයක් මාරු කේතයේ නොව, සමනය කිරීමේ අත්පොතෙහි අයත් වේ.
ස්ථාන තුනක බාධාව පිළිගන්න: මාරු කිරීම අතරතුර, යෙදීම අතරතුර, සහ commit කිරීමෙන් පසු නමුත් තහවුරු කිරීමට පෙර. පසුව සේවාලාභී පණිවිඩය වෙනුවට ව්යාපාරික ප්රතිඵලය පරීක්ෂා කරන්න, සහ කණ්ඩායම් ලෙජරයට කාර්යය අසම්පූර්ණද, commit කර ඇත්ද, නැතහොත් තවමත් විසඳා නැතිද යන්න කියන්නට ඉඩ දෙන්න.