Monday, October 26, 2009

JAVA Timer Task පිලිබඳ ගැටළුවක්

Java Applications(Standalone/Enterprsie) වලදී අපිට නිතරම අවශ්‍ය වන කාර්යයක් තමයි Scheduling.ඒ කියන්නේ මොකක් හරි task එකක් නියමිත වේලාවක හෝ යම්කිසි සංඛ්යාතයකින් ක්‍රියාත්මක කිරීමට.මේ සඳහා අපිට Java Timer Task හෝ ජනප්‍රිය 3rd party component එකක් වෙන Quartz Scheduling (http://www.opensymphony.com/quartz/)භාවිතා කරන්න පුලුවන්.පහත දැක්වෙන්නේ ඉතාමත් සරල ආකාරයට පැය 4ට වරක් ක්‍රියාත්මක වීම සඳහා ලියන්න පුලුවන් java code block එකක්.

Timer timer1 = new Timer();
timer1.scheduleAtFixedRate(new TimerTask() {

@Override
public void run() {
System.out.println("Timer Task is Running...");
//your task can be done here
}
}, new Date(), 240 * 60 * 1000);

මා විසින් මේ ආකාරයට ක්‍රියාත්මක වෙන timer task එකක් web application එකක අන්තර්ගත කලා.එය හොස්ට් කලාට පසුව ඉතාමත් කාර්යක්ශමව පැය 4ට වරක් හොඳින් ක්‍රියාත්මක වුනා.නමුත් මාස කීපයකින් server log එක බලන විට මෙය ක්‍රියාතමක වීම නතර වී ඇති බව මට නිරීක්ෂණය වුනි.Documentations වල ඉඳලා ගොඩාක් දේවල් නැවත බැලුවා මෙයට හේතු වන්න ඇත්තේ කුමක්ද කියලා.

පසුව දැනගන්න ලැබුනා වෙනත් පුද්ගලයෙක් application එක host කරලා තිබුන server එකේ system time එක වෙනස් කරලා.ඊට පස්සේ එහෙම දෙයක් වුනාම ඒක බලපාන්න ඇති මේ අක්‍රියවීම සඳහා කියලා උපකල්පනය කරලා ඒ ගැන හොයද්දී තමයි මේ link එක හම්බවුනේ.

http://bugs.sun.com/view_bug.do?bug_id=4290274

Sun එකේ කට්ටිය මේක bug එකක් විදියට හඳුනාගෙන තිබුනත් තාම මේක fix කරලා නෑ.මේ bug එක වාර්තා කරලා තියෙන්නේ 1999 දී.

scheduling වලට timer tasks භාවිතා කරන අය මේ ගැටළුව දැනගෙන හිටියොත් හොඳයි කියල හිතලයි මේ සටහන ලිව්වේ.කවුරු හරි කෙනෙක් මේ සම්බන්ධයෙන් මීට පෙර මුහුන දීලා තියේනම් හෝ මේ සඳහා විසඳුමක් තියේනම් comment එකක් දාන්න.

system time එක වෙනස් නොකර සිටීම තමයි විසඳුම කියලානම් කියන්න එපා. :-)

Tuesday, October 20, 2009

Google හදිය

ගිය සතියේ අපේ කාලිංග ඇතුලත්මුදලි(http://sinhala.kalingasblog.com/) අයියා හමුවුන වේලාවක පොඩි කතා බහක් ඇති වුනා Google නැතුව වැඩ කරන්න පොඩි ට්‍රයි එකක් දෙන්න පුලුවන්ද කියලා.අඩුම ගානේ දවසක්.මාත් ටිකක් කල්පනා කරලා බැලුවා එහෙම පුලුවන්ද කියලා.ඒත් ටිකක් වෙලා හිතලා බලනකොට තමයි තේරුනේ ඒක නම් හීනයක් කියලා.මොකද ඒ තරමටම අපි ඒකට ඇබ්බැහි වෙලා ඉවරයි.

මං ඊට පස්සේ තවත් ටිකක් කල්පනා කරනකොට මතකයට ආවා දැනට අවුරුදු දහයකට විතර කලින් මං Google කියලා එකක් අහලවත් තිබුනාද කියලා.ඇත්තටම නෑ.කාලය කා දමන්න NetCafe එකකට රිංගනකොට යන්තම් අහලා තිබුනේ ‍Yahoo ගැන විතරයි.ඒකත් පාවිච්චි කරේ මේවා තමයි Search Engine කියලා හිතාගෙන නෙමේ.‍Yahoo ගැනත් කිව්වේ දවසක් NetCafe එකේ මට එහා පැත්තේ ඉන්දගෙන හිටපු යාලුවෙක්.අමාරුවෙන් අකුරු ගලපමින් URL ටිකක් ටයිප් කරන්න දඟලනවා දැකලායි ඒකත් කියලා දුන්නේ.

ඊට පස්සේ පරිගණක විද්‍යාව හදාරන්න හීනෙකින් වත් හිතපු නැති මට A/L විභාගයේ ප්‍රතිඵල අනුව ඒක හදාරන්නත් වුනා.ආපු කාලේ මෙලෝ රහක් නෑ.Game එකක් ගහන්නයි තව පොඩි වැඩ ටිකකටයි විතරයි මට ඒ කාලේ පරිගනකයක් ඕන වුනේ.කොහොමෙන් හරි යාලුවෙක් මට ‍Yahoo Email Account එකකුත් හදල දුන්නා.ඒ කාලේ වෙනකොටත් Google ගැන මෙලෝ idea එකක් තිබුනේ නෑ.Email හදන්න දෙන්නෙත් මොකක්දෝ invitation ක්‍රමයකට කියලායි අහන්න ලැබුනේ.ඔන්න අවුරුද්දකට විතර පස්සේ search engine එකක් කියන්නේ මොකක්ද කියලත් පොඩ්ඩක් දැනගත්තාට පස්සේ google.com පාවිච්චි කරන්න ගත්තා.වැඩේ ටිකක් අල්ලලා ගියා.ටිකෙන් ටික දවසින් දවස Google search engine එක විතරක්ම පාවිච්චි කරන්න ගත්තා.ඊට පස්සේ Yahoo පාවිච්චි කරන ඒක නතර වෙලා ඒක නැත්තටම නැති වෙලා ගියා.

පස්සේ හාහාපුරා කියලා invitation ක්‍රමය ඉවර වුනාට පස්සේ Google email account එකකුත් හදාගත්තා.ඒත් මාස පහක් හයක් යනකන් primary එක වුනේ yahoo.හැබැයි මං වත් දන්නැතුව primary එක Google වලටත් secondary එක yahoo එකටත් මාරු වුනා.අදටත් කල්පනා කරන්නේ ඒක වුනේ කොහොමද කියලා.දැන් ඉතින් සතියකට එක සැරයක් වාගේ තමයි Yahoo account එකට යන්නේ, ඒත් නිකමට හරි browser එකක් open කරගත්තාම Google account එකටනම අනිවාර්යෙන්ම යනවා.මොනාවුනත් තාම ගිනිහිවලා අතෑරලා Google Chrome වලටනම් මාරුවුනේ නෑ.ඒ වගේම දැන් මාස දහයක විතර ඉඳලාම මගේ Software Development කටයුතු සිද්ධවෙන්නේත් Google Apps සම්බන්ධවයි.ඒ සඳහා Google විසින් වෙනම API දීලා තියෙනවා.full interesting වැඩක්.ඉදිරියෙදි ඒ ගැන වෙනම බ්ලොග් එකක් ලියන්න හිතන් ඉන්නේ.අන්තිමේට මගේ බ්ලොග් එකේ දත්ත රැස් කරන්න භාවිතා වෙන්නෙත් Google Analytics.

මටනම් හිතෙන්නේ Google වල තියෙන simplicity එක තමයි මේකට ගොඩක්ම බලපානවා ඇත්තේ කියලයි.Simplicity is better than Complexity කියලා පොඩි කියමනකුත් තියෙනවානේ.හැබැයි Google කට්ටිය බැරි වේලාවත් ඒ කට්ටියගේ services වලට අයකරන්න ගත්තොත් මොනවා වෙයිද?ඒක හිතන එක මේක කියවන අයට බාරයි.මේ කියන Google හදිය ඔය ගොල්ලන්ටත් වෙලාද කියලා පොඩ්ඩක් හිතලා බලන්න.