මතකනේ Y2K ප්‍රශ්නය, එහෙමත් නැත්නම් Millennium Bug එක. මුලින් පරිඝනක ක්‍රමලේඛනවල අවුරුද්ද දක්වන්න ඉලක්කම් දෙකක් භාවිතා කිරීමනේ මේකට හේතුව උනේ. කොහොමින් හරි කලින්ම ප්‍රශ්නය අඳුරා ගෙන පූර්වෝපායයන් ගත්ත නිසා වසර 2000 උදා වෙද්දී දැනෙන බලපෑමක් ඇති උනේ නෑ.  මේ වගේම තව ප්‍රශ්නයක් ගැන තමයි මේ ලියන්න යන්නේ. සංචාරකයාත් මේක දැන ගත්තේ කන්තෝරුවෙන් හදපු මෘදුකාංගයක මෙය හා අනුබද්ධ ප්‍රශ්නයක් ආවාමයි.

මුලින්ම සංචාරකයාගේ අත්දැකීම විස්තර කරල ඉන්නම්කෝ. අපේ මෘදුකාංගයේ කොටසක් ලියලා තිබුනේ Java වලින්. දින හා අදාළ කටයුතු සඳහා භාවිතා කළේ Unix Timestamp එක. ඒ කියන්නේ Java Program එකට දිනය තවත් එක ඉලක්කමක් විතරයි. ඒ සඳහා භාවිතා කළේ Integer කියන Data Type එක.  මෙහිදී දිනය වැඩි කිරීමට අවශ්‍යතාව තිබුනේ සාපේක්ෂ අගයන්වලින් [උ.දා.: කලින් දවස + දවස් 10 ක්].  කාලයක් ගියාම අපි දැක්කා දවස 2038-01-19 03:14:07 පැනපුවාම Client Program පිස්සු කෙළිනවා කියලා.

UNIX Timestamp එකෙන් කරන්නේ 1970-01-01 00:00:00 එකේ ඉඳල ගෙවිච්ච තත්පර ගාන කාලය නිරූපණය කරන්න ගන්න එකයි. පරණ මෙහෙයුම් පද්ධතිවල මේ සඳහා යොදා ගත්තේ  bits 32 යි.  එක bit එකක් ලකුණට (sign) එකට වෙන් කළාම නිරූපණය කරන්න පුළුවන් උපරිම ඉලක්කම 231-1=2147483647. මේක තත්පර කළාම තමයි අර කලින් කියපු 2038-01-19 03:14:07 සීමාව ලැබෙන්නේ.

දැන් බලමු මෙයින් ප්‍රශ්න වෙන අවස්ථාවල් මොනවද කියලා.  මෙහෙයුම් පද්ධතිය 32 bit නම් මේ ප්‍රශ්නය වෙන්න පුළුවන්. හැබැයි දැන් එන Servers බොහොමයක් 64 bit නිසා බොහෝ විට මෙහෙයුම් පද්ධතියත් 64 bit. අතරින්පතර සමහර තැන්වල් 32 bit Servers ඉතුරු වෙලා තියෙන්න පුළුවන්. අනික එක තමා මෘදුකාංග ඇතුළෙන් [සංචාරකයාට උනා වගේ] මේ ප්‍රශ්නය මතු වෙන්න පුළුවන්. ප්‍රශ්නය මතු වෙන්න 2038 වෙනකන්ම ඉන්න ඕනේ නෑ. දින සම්බන්ධ ගණයන කිරීම් කරන මෘදුකාංගවල කලින්ම මතු වෙන්න පුළුවන්.

Advertisements