Saturday, January 2, 2016

udemy မွာေလ႔လာပါ။ Coursera မွာသင္ယူပါ။

Online မွာေလ႔လာတဲ႔အခါ အခ်ိန္နဲ႕ ေငြေၾကးလုိပါတယ္။

ေငြေၾကးထက္ အေရးၾကီးတာ အခ်ိန္ပါ။ အခ်ိန္မရိွရင္ မေလ႔လာႏုုိင္ပါဘူး။ အခ်ိန္ေရာေငြေၾကးပါ ျပည္႕စံုရင္ သင္ယူမႈဟာ ျမန္ဆန္ပါတယ္။

Java သမားေတြအတြက္ဆုုိရင္လည္း အေျခခံက အစ သင္ေပးတဲ႔ course ေလးေတြရိွပါတယ္။ ဥပမာအားျဖင္႔  udemy မွာ Eclipse ကုိ ဘယ္လုိ install လုပ္တယ္ကအစ၊ အသံုုးဝင္တဲ႔ ၊ သိသင္႔သိထုိက္တဲ႔ အခ်က္ေလးေတြေျပာျပေပးတဲ႔ course ဆုိရင္ တစ္နာရီဝန္းက်င္ေလာက္ပဲ။ အလကားသင္ႏုိင္တယ္။

https://www.udemy.com/luv2code-eclipse-ide-for-beginners/learn/#/lecture/1979654

တစ္ခ်ိဳ႕ကုုိယ္သိခ်င္တာေလးေတြရိွရင္ course တစ္ခုု သံုုးေလးဆယ္နဲ႕ ေလးနာရီ၊ငါးနာရီေလာက္ ေလ႔လာလုိက္ရင္ အဆင္ေျပသြားႏုိင္တယ္။ ဥပမာ Node JS သင္ခန္းစာမ်ိဳး။ Amazon Web Service Certificate အတြက္သင္တန္းဆုိရင္ ၄၇ ေဒၚလာေလာက္ပဲ။

Chess ထုိးတဲ႔သင္ခန္းစာေတြလည္းရိွတယ္။ ဓာတ္ပံုုပညာအတြက္လည္း သင္ခန္းစာအတုိေလးေတြရိွတယ္။

Coursera မွာ ဆုိရင္လည္း အလကားသင္လုိ႕ရတာအမ်ားၾကီးရိွတယ္။ Computer နဲ႕ပတ္သက္တာေတြလည္းရိွသလို၊ စီးပြားေရးနဲ႕ပတ္သက္တာေတြလည္းရိွတယ္။ ကမာၻ႕အဆင္႔မီ တကၠသုိလ္ေတြက ပါေမာကၡေတြ၊ ကထိကေတြသင္တာဆုိေတာ႔ ေျပာစရာမလုိေအာင္ေကာင္းတယ္။ အဆင္႔အတန္းျမင္႔တဲ႔ ပညာေတြကုုိ အလကားသင္ယူႏုုိင္တာဟာ မဂၤလာတစ္ပါးပါ။

တစ္သက္တာ ပညာသင္ယူမႈကုုိ လက္မေလွ်ာ႔သူေတြ ျဖစ္ႏိုိင္ၾကပါေစ။

စာမေရးတာ အခ်ိန္ေတာ္ေတာ္ၾကာသြားျပီ။ ဒီလထဲမွာေတာ႔ ျပန္အားလာတာနဲ႕ နည္းနည္းစေရးလုုိက္ပါတယ္။ ေရးစရာေတြ အမ်ားၾကီးရိွေနပါေသးတယ္။ ေလာေလာဆယ္ဖတ္ျဖစ္တဲ႔ ITIL foundation နည္းနည္းေလာက္ေရးဦးမယ္။

Regards,
0/0

Wednesday, April 9, 2014

WebLogic Clustered Env:

WebLogic  Clustered Env:

Corporate ေတြရဲ႕ web application ေတာ္ေတာ္မ်ားမ်ားဟာ Clustered Environment မွာထားၾကတယ္။

Clustering အေၾကာင္းေျပာေနရင္ ရွည္လ်ားေထြျပားကုန္မယ္။ အၾကမ္းဖ်င္းကေတာ႔ Availability ျမင္႔ေအာင္ၾကပါတာပါ။ Weblogic မွာေတာ႔ Managed Server  အေနနဲ႕လုပ္ၾကပါတယ္။ App1 ကို အရင္စ။ cluster ထဲသြင္းထား။ ေနာက္ထပ္ App2 ကုိစ Cluster ထဲသြင္း။  cluster နဲ႕မွန္မွန္ကန္ကန္ေလးတက္လာတဲ႔ server ေတြမွာဆို
 
အဲဒီ BEA 000102 ေလးေတြ႕ရလိမ္႔မယ္။ အဲဒီ IP နဲ႕ Port ေနာက္မွာ Clusters 2 ခုရိွတယ္ေပါ႔။ App1 နဲ႕ App2 ကို Node ေတြလုိ႕လည္းေခၚတယ္။ ဒါက အလြယ္ဆံုး ဥပမာေျပာတာ။

မ်ားေသာအားျဖင္႔ေတာ႔ Load Balancer Hardware/software/Plug-in တစ္ခုခု ေရွ႕နားကေန ခံထားေလ႔ရိွတယ္။ အဲဒါမွမဟုတ္ရင္လည္း အလကားလုပ္ထားသလိုျဖစ္ကုန္မွာကိုး။

ၾကံဳေလ႔ၾကံဳထရိွတဲ႔ ျပႆနာသံုးေလးခုအေၾကာင္းေျပာၾကရေအာင္။ ပထမဆံုးက cluster လုပ္ထားရင္ session ကို share ရမယ္။ မဟုတ္ရင္ ပထမ request က App1 ေၾကာင္႔၊ ဒုတိယ request က App2 ေရာက္ေတြျဖစ္ကုန္ရင္ Session Timeout ေတြျဖစ္ေစႏုိင္တယ္။

Load Balancer က App ကို တုိက္ရုိက္လႊဲလိုက္တာေတာ႔မဟုတ္ဘူး။ App ေတြရဲ႕ အေပၚမွာ Web ရိွဦးမယ္။ Balancer က Web ရဲ႕ အေပၚမွာရိွရမယ္။ အဲဒီလုိထားၾကတယ္။

ဒုတိယတစ္ခု သတိထားရမွာက session ကို share ပါျပီတဲ႔။ session ထဲကို ထည္႕လုိက္တဲ႔ bean ေတြက serializable ျဖစ္ရမယ္။ အဲဒါမွမဟုတ္ရင္ အဆင္မေျပဘူး။ Clustered Env မွာ Serialized မလုပ္ထားတဲ႔ object ေတြ ဒြတ္ခေရာက္ကုန္မယ္။ Good Practice ကေတာ႔ Object မွန္သမွ် Base object တစ္ခုကို extends လုပ္ခိုင္းထားျပီး၊ အဲဒီ base Object ကို serializable interface implements လုပ္လုိက္ရင္ ေနာက္လာေနာက္သားေတြ စိတ္ေအးရတယ္။

ေနာက္တစ္ခုကေတာ႔ ဂြစာေတြ။ third party plug-in ေတြက တစ္ခ်က္တစ္ခ်က္ serialized လုပ္လုိ႕မရတာရိွတယ္။ အဲဒီ lib ေတြပါလာရင္ ေစာေစာစီးစီး ေျပာင္းသံုးလုိ႕ရတုန္း ေျပာင္းသံုးထားလုိက္။မဟုတ္ရင္ ေနာက္မွာ ဒုကၡေသခ်ာေပါက္ေပးလိမ္႔မယ္။

အခုလက္ရိွလုပ္ေနတဲ႔ project အေဟာင္းတစ္ခုမွာ user ကို active ျဖစ္ေနလား၊ မျဖစ္ေနလားကို log-in လုပ္ကတည္းက user ID နဲ႕ session ID ကို persist လုပ္ထားလုိက္ျပီး၊ ျပန္ျပန္စစ္တာမ်ိဳး။ ဆာဗာတစ္လံုးထဲဆိုရင္ ဘာမွမျဖစ္ဘူး။ Load Balancer ကို sticky session လုပ္ထားရင္လည္း အဆင္ေျပတယ္။(သို႕ေသာ္ မေကာင္းဘူး။ std: အရလည္း မလုပ္သင္႔တာေတြရိွတယ္။) session ID ကို ျပန္သံုးတဲ႔အခါမွာ session.getSessionID() method နဲ႕သံုးထားတာေတြ႕တယ္။ အဲဒီမွာ ျပႆနာအၾကီးၾကီးရိွတယ္။ cluster ေတြမွာ session ထဲမွာ သိမ္းထားတဲ႔ Java Object ေတြကို replicate လုပ္တာမွန္ေပမယ္႔၊ session ID ႏွစ္ခုဟာ somehow identical ျဖစ္မေနတာေတြ႕တယ္။ အဲဒီမွာ logical error ျဖစ္ကုန္ျပီး၊ users မွန္သမွ် session timeout ၾကေလသတည္းျဖစ္ကုန္တယ္။ အရင္က အလုပ္မလုပ္တဲ႔ load balancer က သူ႕ဟာသူ ၂ ႏွစ္ေလာက္ပ်က္ေနတုန္းက အေကာင္းပဲ။ သူအလုပ္စလုပ္တာနဲ႕ အဲဒီျပႆနာေပၚလာတယ္။ ေနာက္ေတာ႔ session ID ကို user Obj ထဲေပါင္းထည္႕ထားျပီး အဲဒီ user Obj ကို session ထဲျပန္ထည္႕ထားလုိက္မွေအးသြားတယ္။ Obj ေတြက cluster မွာ replicate-if-cluster ဆိုတဲ႔ parameter on ထားလုိက္ရင္ အဆင္ေျပတယ္။ weblogic.xml မွာျပင္ရတယ္။

အခုကိစၥေတြဟာ ဖတ္ထားရင္ လြယ္လြယ္သိတယ္။ ကုိယ္တုိင္ၾကံဳမွဆုိရင္ ရြာလည္တတ္တယ္။ အထူးသျဖင္႔ Production Environment လိုမ်ိဳး Clustered Env မရိွရင္သာေတာင္ခက္တယ္။ အဲဒီ Setup Local မွာလုပ္တာကိုေတာ႔ ေနာက္ထပ္ post တစ္ခုမွာ ေရးလုိက္ပါဦးမယ္။

Regards,
Zero

Ref:http://docs.oracle.com/cd/E13222_01/wls/docs103/webapp/weblogic_xml.html#wp1071982




Thursday, March 20, 2014

SQLPLUS Notes

SQLPLUS Notes

1.Spool file ထုတ္တဲ႔အခါမွာ ေနာက္မွာ space ေတြ အရွည္ၾကီးပါေနတတ္တယ္။
အဲဒီလိုပါေနရင္ ဖုိင္ size ဟာ မလုိအပ္ဘဲသိပ္ရွည္လာတယ္။ အဲဒါဆိုရင္ Trimspool ကို On လုိက္ရင္ ျငိမ္းပါတယ္။ မဟုတ္ရင္ေတာ႔ ဖြင္႔မရေအာင္ၾကီးတဲ႔ဖုိင္ေတြျဖစ္လာမယ္။ procedure ေတြcompare လုပ္တဲ႔အခါ file size သိပ္ၾကီးေနတာဟာ အာရံုေနာက္တယ္။

Set Trimspool on ၾကပါ။

2. Database က Date Format က Oracle မွာ ပံုမွန္အားျဖင္႔ DD-MON-RR ပံုစံျပတယ္။ ကိုယ္႔စိတ္ၾကိဳက္ေျပာင္းခ်င္ရင္ to_char(sample_date,'DD-MON-YYYY') ဆိုျပီး တစ္ခုစီလုိက္ေျပာင္းေနရတာ အာရံုေနာက္တယ္။ column အခု တစ္ရာေလာက္ေျပာင္းရရင္ စိတ္ညစ္စရာၾကီး။ အဲဒါမ်ိဳးျဖစ္ရင္ Spool file ထုတ္တဲ႔အခါမွာ

ALTER SESSION SET nls_date_format = 'DD-MON-YYYY'; လုပ္ထားလုိက္လုိ႕ရပါတယ္။
အဲဒါက session မွာ သူ႕ default ရိွေနတဲ႔ nls_date_format ကို ကိုယ္႔စိတ္ၾကိဳက္ change လို႕ရသြားေစပါလိမ္႔မယ္။

3.Requirement  တစ္ခုက ေတာ္ေတာ္ရယ္စရာေကာင္းတယ္။ Spool file ထုတ္တဲ႔အခါမွာ Column name က repetitive ျဖစ္ပါတယ္။ အဲဒါကိုေဖ်ာက္ခ်င္တာပါ။ Linesize ကလည္း ၅ေသာင္းလား၊ ၆ေသာင္းလားအထိပဲရပါတယ္။ အဲဒါေက်ာ္သြားရင္ အလုပ္မလုပ္ေတာ႔ဘူး။ Production မွာရိွတဲ႔ records က သိန္းနဲ႕၊သန္းနဲ႕ျဖစ္ေနတာဆိုေတာ႔ column name repetitive မျဖစ္ေအာင္ Line Size ကို 0 ထားျပီး Column Name ကို Prompt နဲ႕ ကိုယ္႔ဟာကိုယ္ ေရးလုိက္ရပါတယ္။ Forum ေတြဖတ္ၾကည္႕ရင္ အဲဒီလို ကိစၥေတြလူမ်ားေတြ ေတြ႕ျပီးသားျဖစ္ေနတာဖတ္ရပါတယ္။ ကိုယ္တုိင္ၾကံဳေတာ႔လည္း အသံုးဝင္သြားတာပါပဲ။

ႊRegards,
Zero


Thursday, October 31, 2013

စင္ကာပူအစိုးရ၊ အေနာနမတ္စ္နဲ႕ ဆကယူရထီ

စင္ကာပူအစိုးရ၊ အေနာနမတ္စ္နဲ႕ ဆကယူရထီ

ဘာမဆိုျဖစ္ႏုိင္တယ္။
software ဆိုတာေတြက ေလေပၚမွာ စိတ္ခ်ရေတာ႔တာမဟုတ္တာၾကာျပီ။ အလြယ္ေျပာရရင္ေတာ႔ အခ်င္းခ်င္းနားနားကပ္ေျပာတာကို အနားက တစ္ေယာက္က ၾကားရသလုိမ်ိဳး၊ သူတုိ႕ဟာသူတို႕ အထာနဲ႕ေျပာလုိ႕ (encrypted) ျဖစ္ေနလို႕ ခ်က္ခ်င္းသေဘာမေပါက္တာသာရိွတယ္။ အဲဒီအထာစကားကို နားလည္တဲ႔သူကို ၾကားခဲ႔တဲ႔စကားကို ျပန္ဖြင္႔ျပႏိုင္ရင္ နားလည္သြားႏုိင္တာနဲ႕ဆင္တယ္။

စင္ကာပူအစိုးရဝဘ္ဆုိဒ္မ်ား။
.gov.sg ေတြမွာ တူညီတာေတြ အမ်ားၾကီးရိွတယ္။ စင္ကာပူက အစိုးရမွာ မူဝါဒတစ္ခ်ိဳ႕ရိွတယ္။ ဥပမာ single sign-on သေဘာမ်ိဳးအတြက္သံုးတာေတြက တစ္ခုနဲ႕တစ္ခုခပ္ဆင္ဆင္ဆိုရမယ္။ Authentication အတြက္ေတာ႔ အဓိက Singpass ကိုသံုးတယ္။ SingPass ကို individual အေနနဲ႕သံုးတယ္ေျပာရမယ္။ စင္ကာပူမွာ လူတုိင္းနီးပါး SingPass ရိွတယ္။ အခြန္ေဆာင္ေဆာင္၊ အစိုးရနဲ႕ပတ္သက္တာဘာလုပ္လုပ္ SingPass က လိုသလိုျဖစ္ေနတယ္။ SingPass ကို Crimson Logic ဆိုတဲ႔ ကုမ္ပနီကေရးတယ္။ Singapore Government websites ေတြရဲ႕ ၉၀ ရာခုိင္ႏႈန္းေက်ာ္ဟာ SingPass authentication ေပၚမူတည္တယ္။ အေနာနမတ္စ္ ေတြဟာ ဒါေတြကို သိမွာပဲ။ စင္ကာပူမွာလည္း အေနာနမတ္စ္ေတြရိွေကာင္းရိွေနမွာကိုး။

SingPass သံုးဖုိ႕ API ကို အစိုးရ websites လုပ္တဲ႔ ရံုးတုိင္းနီးပါးမွာ ရိွတယ္ထင္တယ္။ အဲဒါေတြကလည္း system ေပၚမူတည္တဲ႔အတြက္ system တုိင္းမွာရိွတဲ႔ အားနည္းခ်က္ေတြရိွမွာပဲ။ ေနာက္ထပ္ Authentication ႏွစ္ခုက EASY(e-Services Authorisation System) နဲ႕၊ ကုမ္ပနီေတြအတြက္သံုးတဲ႔ UEN နဲ႕ Login ဝင္တာေတြပဲ။

ေနာက္တစ္ခုက RSA keying လို႕ေခၚတယ္။ ဘဏ္ေတြမွာ 2-factor သံုးသလိုမ်ိဳး၊ စင္ကာပူမွာ အစိုးရ ဝက္ဘ္ဆုိထ္စ္ေတြမွာသံုးတယ္။ first layer provider ေတြထဲမွာေတာ႔ NCS က ေစ်းကြက္ရွယ္ရာေတာ္ေတာ္ရထားတယ္။ medinet.gov.sg ဆိုတာမ်ိဳးပဲ။ အဲဒီကေနမွတစ္ဆင္႔ government network ထဲေနာက္တစ္ဆင္႔ဝင္လုိ႕ရတယ္။ secured channel လုပ္လုိက္တာနဲ႕တူတယ္။ ျပီးေတာ႔ encrypted url ထပ္လုပ္တယ္။ ဆိုလုိတာကေတာ႔ ပထမအဆင္႔ကိုေဖာက္ျပီးမွ ဒုတိယအဆင္႔ကိုေရာက္မယ္။ အဲဒီပထမအဆင္႔ log-in server ကမွသာ ဝန္ၾကီးဌာနအသီးသီးရဲ႕ system ေတြကို သြားႏုိင္တယ္။ အဲဒီမွာ firewall setting ေတြရိွတယ္။ ဆိုလုိတာကေတာ႔ အဲဒါေတြဟာ မိန္းဂိတ္ေပါက္ဝေတြပဲ။ ဒီကေနမွျဖတ္သန္းဝင္ေရာက္ႏုိင္မယ္။ ေနာက္ထပ္ ၾကားေပါက္တစ္ခုေတာ႔ရိွေသးတယ္။ အစိုးရရံုးေတြမွာ ရံုးက အုိင္ပီနဲ႕ဆိုရင္ေတာ႔ production server ကို တိုက္ရိုက္ဖြင္႔ေပးထားတာရိွတယ္။ အဲဒါေတြကေတာ႔ first level authentication ကို bypass လုပ္ႏုိင္တယ္။

Hack တယ္ဆိုတဲ႔ေနရာမွာလည္း web ကေန hack တာက ခက္ခဲပင္ပန္းတဲ႔နည္းလမ္းလို႕ဆုိရမယ္ထင္တယ္။ attack ေတာ္ေတာ္မ်ားမ်ားဟာ os level ေတြေလာက္ကိုပစ္မွတ္ထားကုန္ၾကတာေတြ႕ပါတယ္။ cloud server မွာ Host ထားတာကိုေတာင္ down လုနီးပါးျဖစ္သြားတာ ဟိုတစ္ေလာကပဲၾကားလုိက္ပါေသးတယ္။ ရိုးရိုး စက္စုတ္ေလးေတြဆိုရင္ေတာ႔ ဝပ္စင္းျပီး ျပန္ေတာင္မတက္ေတာ႔ဘူး။ DB ကို ဦးတည္ျပီး တိုက္ခိုက္တာေတြလည္း အလြယ္နည္းေတြရိွပါတယ္။ ဥပမာ FAQ တို႕၊ Feedback တို႕အတြက္ကို main database မွာမ်ား table အေနနဲ႕ထားလိုက္ရင္ေတာ႔ အန္တရာယ္အလြန္ၾကီးသြားတတ္ပါတယ္။ network layer မွာ attack လုပ္တာေတြကလည္း ရိုးရွင္းထိေရာက္ပါတယ္။ ဆာဗာေတြအားလံုး CPU 100%  ျဖစ္ေအာင္လုပ္တာတုိ႕၊ Switch ေတြ၊ Routers ေတြ match ျဖစ္ေအာင္မသံုးထားတဲ႔ Data Center ထဲအထိ သာသာယာယာေလးဝင္လာတာတုိ႕ျဖစ္တတ္ပါတယ္။ ဟိုတေလာက PA ဆိုတဲ႔ အစုိးရစနစ္တုိက္ခိုက္ခံလုိက္ရပါေသးတယ္။ အရင္ေရးတဲ႔သူေတြေရာ၊ အခုလက္ရိွ ထိန္းသိ္မ္းေနတဲ႔သူေတြပါ အေမးျမန္းခံထိပါတယ္။

ေနာက္တစ္ခုက Shine portal ဆိုတာ ရိွပါတယ္။ NCS ကေနလုပ္ထားတာပါ။ အစိုးရစစ္စစ္လုပ္ငန္းေတြဆိုရင္ အဲဒီကေနပဲသြားဖုိ႕ အစိုးရရဲ႕ ဆုိက္ဘာလံုျခံဳေရးမူထဲမွာပါပါတယ္။ သူတုိ႕ရဲ႕ standard sets ေတြရိွပါတယ္။ အဲဒါေတြကို လုိက္နာရပါတယ္။ email ပို႕ဖုိ႕ကအစ၊ web service သံုးရင္လည္း service တစ္ခုခ်င္းစီလုိက္ ပုိက္ဆံေပးရတဲ႔ central web service system ကေနသာ ျဖတ္သန္းသြားလာဖုိ႕ဆိုတဲ႔ စည္းကမ္းေတြရိွပါတယ္။ security certificate ေတြကိုလည္း အဆင္႔ဆင္႔လုိက္နာၾကရတာေတြရိွပါတယ္။ သုိ႕ေသာ္လည္း ဧည္႕ဆုိးဆိုတာေတာ႔ ဧည္႕စာရင္းတုိင္ရတဲ႔လမ္းဘက္က ဘယ္လာပါ႔မလဲဗ်ာ။

ေနာက္တစ္ခုက အစိုးရေတြဟာ အေျပာင္းအလဲတစ္ခုတစ္ခုအတြက္ အခ်ိန္ေတာ္ေတာ္ယူတယ္။ အဲဒါဟာ တျခားေနရာမွာေတာ႔ ေကာင္းရင္ေကာင္းမယ္။ software အတြက္ေတာ႔ သိပ္မေကာင္းလွဘူး။ Java upgrade ကို ၁.၄ ေတြ အမ်ားၾကီးရိွတယ္။  အဲဒါေတြကို 1.7 ကိုေျပာင္းတယ္။ 2013 ေလာက္မွ ညီညီညာညာ တေပ်ာ္တပါးေျပာင္းၾကတာ။ 1.7 မွာလည္း သူ႕ျပႆနာနဲ႕သူရိွတယ္။ java update ေတြဟာ ျပႆနာရွင္းဖုိ႕ ထုတ္ေနတာကို နားမလည္တဲ႔သူက နားမလည္ဘူး။ တစ္ခ်ိဳ႕ကေတာ႔ နားလည္ပါရဲ႕ သို႕ေသာ္လည္း web server ေတြ၊ app server ေတြက ေနာက္ဆံုးထုတ္ေတြနဲ႕ တစ္ခ်က္တစ္ခ်က္ ခ်က္ခ်င္း သဟဇာတမျဖစ္ေတာ႔ မျပင္ၾကဘူး။ known issue ကို မျပင္ရင္ေတာ႔ ကိုယ္႔ေသတြင္းကို ကိုယ္႔လက္နဲ႕တူးသြားတာမ်ိဳးျဖစ္တတ္တယ္။ Web Logic patch ေတြဆိုလည္း update လုပ္ခ်င္မွ လုပ္တာေတြ႕တယ္။ Strut 2 မွာ vulnerable ရိွတယ္ဆိုတာ ဟိုတစ္ေလာက email ပို႕တယ္။ အမွန္ေတာ႔အဲဒါေတြအတြက္ security team ေတြက ေစာင္႔ၾကည္႕ေလ႔လာေနရမွာ။ vendor ေတြအားကိုးလုိ႕ကေတာ႔ ဘာမွျဖစ္လာမယ္မထင္ဘူး။ Java နဲ႕ေရးထားတဲ႔ application အေဟာင္းေတြ ေတာ္ေတာ္မ်ားမ်ားဟာ ေတာ္ေတာ္ေလး outdated ျဖစ္ေနျပီ။ Spring သံုးတဲ႔ application ေတြမွာလည္း spring security မသံုးၾကတာမ်ားတယ္။ အမ်ားဆံုးအတြဲအစပ္ကေတာ႔ Struts/Spring/Oracle/Weblogic အဲဒါပဲ။ အဲဒီမွာမွ clustering ခပ္စုတ္စုတ္ေလးတစ္ခုေလာက္ပါမယ္။ App1/App2 လုပ္ထားမယ္။ (မစြံတာမ်ားတယ္။) System အေဟာင္းေတြဆိုရင္ sftp ကေန file upload ေတြေတာင္ပါေသး။ အဲဒါမ်ိဳးေတြက မသမာတဲ႔သူနဲ႕ေတြ႕ရင္ အန္တရာယ္သိပ္မ်ားတယ္။ data file uploading ေတြဟာ UI မွာလုိ စစ္ထားေဆးထားတာ မပါတာမ်ားတယ္။ vendor ခ်င္းနားလည္မႈနဲ႕လုပ္စားေနၾကသလုိျဖစ္ေနတယ္။

SingPass မွာလည္း username က FIN/IC no. ဆိုေတာ႔ အဲဒီ အယ္လ္ဂိုရစ္သမ္ကို သိရင္ အလြယ္ေလးပဲ။ အေရွ႕ဆံုးတစ္လံုး၊ ေနာက္ဆံုးတစ္လံုး။ checksum ကို ဘယ္အယ္လ္ဂိုရသမ္နဲ႕စစ္ဆိုတာမ်ိဳးရိွတယ္။ ဒါမွလည္း system ေတြမွာ NRIC လက္ခံတဲ႔အခါ valid ျဖစ္၊မျဖစ္ စစ္ေပးႏုိင္မွာကိုး။

အခုနေျပာခဲ႔တဲ႔ Struts တို႕၊ Spring တို႕လို MVC framework  ေတြက အလကားေပးတာေတြပါ။ အဲဒီေတာ႔ source ကိုလည္း ၾကည္႕လုိ႕ရပါတယ္။ Framework တစ္ခုခ်င္းစီမွာ သူ႕အားသာခ်က္၊ သူ႕အားနည္းခ်က္နဲ႕ပါပဲ။ စနစ္တက်မသံုးရင္ loophole ျဖစ္တတ္ပါတယ္။ ဂ်ာဗားေပၚကာစတုန္းက applet ေတြစိတ္ခ်ရတယ္၊စိတ္ခ်ရတယ္လုပ္ေနရာက applet ခ်င္း session sharing လုပ္ေနတဲ႔ ျပႆနာကို ေစာေစာသိလုိက္လို႕ ျပႆနာသိပ္မၾကီးက်ယ္ဘဲ ျငိမ္းသြားဖူးတယ္။ web ေပၚမွာေတာ႔ ဘာမွ စိတ္ခ်ရတယ္မရိွပါဘူး။ ဖ်က္လိုဖ်က္စီးမလုပ္ခ်င္တဲ႔သူေတြ မဖ်က္လို႕၊ မပ်က္တာပဲရိွတယ္။ NASA က web ကို စမ္းသပ္ျပီးေတာ႔ စိတ္တုိင္းမက်လို႕ လူေတြသံုးဖုိ႕ေပးလုိက္တာဆုိေတာ႔ စကတည္းက အေျခခံျပႆနာေလးေတြရိွျပီးသား။ protocol ေတြက ကိုယ္ျပင္လုိ႕ရတာမဟုတ္ဘူး။ web architecture အတိုင္းရိွျပီးသားကို သံုးၾကရတာ။ browser ေတြကို ႏုိင္နင္းတဲ႔သူမ်ားၾကေတာ႔လည္း လုိသလို ဖ်ားေယာင္းႏုိင္ျပန္ေရာ။

တိုက္ခိုက္ခံရရင္ recovery အတြက္ Contingency Plan ရိွဖုိ႕အင္မတန္အေရးၾကီးပါတယ္။ အထူးသျဖင္႔ database ေတြပါပဲ။ က်န္တာေတြက ျပန္တက္လာေအာင္ တစ္နည္းနည္းနဲ႕ၾကံစည္လုိ႕ရေသးတယ္။ confidential data ေတြ ေပါက္ၾကားသြား၊ ပ်က္သြားရင္ေတာ႔ အစိုးရအေနနဲ႕လည္း အင္မတန္အထိနာႏုိင္တယ္။ တစ္ခ်ိဳ႕စနစ္ေတြမွာ ရံုးတြင္းမွာပဲ ေနာက္ေရြးေကာက္ပြဲအတြက္ အမတ္ေနရာေပးဖုိ႕ ရည္ရြယ္ထားျပီးသားလူေတြစာရင္းတုိ႕ဘာတုိ႕ရိွတတ္ေသးတယ္ဆိုေတာ႔ ဒါေတြလည္းပါသြားလို႕မျဖစ္ဘူး။ database ေတြကလည္း size ေပၚမူတည္ျပီး backup လုပ္ရတာၾကာတယ္။ port ေတြ ip ေတြကို trusted ကပဲ access လုပ္ႏုိင္ေအာင္ ဘယ္ေလာက္လုပ္ထားလုပ္ထား ေရွ႕နားက အကာအရံေတြ၊ မီးတံတုိင္းေတြျပိဳျပီဆိုရင္ေတာ႔ သူ႕မွာလည္း မစြမ္းသာေတာ႔ဘူး၊ရန္သူ႕လက္က်ရတာပဲ။

ဒါေတြကို တန္ျပန္ႏုိင္ဖုိ႕ ရုရွနဲ႕တရုတ္က geek ေတြကို စင္ကာပူအစိုးရက ေမြးစားဦးမယ္ထင္မိတယ္။ မၾကာခင္မွာ DSTA ရဲ႕အသံုးစားရိတ္၊ စင္ကာပူမွာ ယာယီစစ္မႈထမ္းရင္း ေသဆံုးတဲ႔စာရင္း၊ ဆီမီးအစိုးရကုမ္ပနီမ်ားအၾကားသေဘာတူညီမႈ၊ ဝန္ထမ္းအသံုးစားရိတ္၊ အီးအာရ္ပီ ေန႕စဥ္အျမတ္ေငြ၊ အစိုးရတစ္ဖက္လွည္႕လုပ္ငန္းမ်ားျဖစ္ေသာ MRT, singapore POOLS  ေတြရဲ႕ အျမတ္ေငြ၊ CPF စီမံခန္႕ခြဲေရးမူဝါဒ၊ အစိုးရ၏ ဘဏ္လုပ္ငန္းအေပၚစည္းၾကပ္မႈေတြကို ၾကားရင္ၾကားရမယ္။

ဘာေတြဆက္ျဖစ္ဦးမလဲဆုိတာေတာ႔ ကိုယ္႔ဟာကိုယ္ထုိင္ၾကည္႕တာ ပိုေကာင္းပါတယ္။ ဘာမွမျဖစ္ဘဲလည္း ျငိမ္းခ်င္ျငိမ္းသြားမွာ။ ဖုန္းေရႊအစြမ္းနဲ႕ကယ္တင္သြားတာမ်ိဳးမျဖစ္ဘူးမေျပာႏုိင္ဘူး။ ဒီမွာလည္း အဲဒါေတြကို ယံုၾကည္ပါဘိသနဲ႕။                    ။

Regards,
သုည


Tuesday, October 8, 2013

Explain Plan Oracle

Explain Plan

EXPLAIN PLAN FOR
SELECT * from [table] where [col1]='sth' and  [col2]='sth' and  and [col3]='sth' ;

select * from PLAN_TABLE;

Oracle မွာေတာ႔ အဲဒီလို execute လုပ္ၾကည္႕ေလ႔ရိွၾကတယ္။ ဒါမွ ကိုယ္႔ query က ဘယ္လို ဘယ္လို အလုပ္လုပ္ေနတယ္ဆိုတာ ေသခ်ာသိႏုိင္တယ္။

Thursday, October 3, 2013

weblogic errors

weblogic errors

weblogic 8 က error ႏွစ္ခုအေၾကာင္းေျပာမယ္စိတ္ကူးတယ္။

တစ္ခုက stuck thread ပါ။ thread ေတြရဲ႕ maximum time ေက်ာ္သြားတာပါ။ process ေတြၾကာတဲ႔အခါျဖစ္ေလ႔ရိွပါတယ္။ report ေတြဘာေတြ ေႏွးေကြးေလးလံလာရင္ မၾကာမၾကာၾကံဳရပါလိမ္႔မယ္။ အလြယ္လမ္းကေတာ႔ ၁၅ မိနစ္မေလာက္ရင္ မိနစ္ ၂၀ တုိး၊ မိနစ္ ၂၀ မေလာက္ရင္ မိနစ္ ၃၀ တုိးေပါ႔။ ျဖစ္တဲ႔ root cause ကိုေတာ႔ ေနာက္မွ ေအးေဆးရွာေပါ႔။ ေလာေလာဆယ္ error မျမင္ရတာစိတ္ခ်မ္းသာရတာပဲ။ တစ္ခ်ိဳ႕ scenerio ေတြမွာဆိုရင္ အခ်ိန္ၾကာသြားရင္း stuck ျဖစ္ေနရာက unstuck ျပန္ျဖစ္သြားပါတယ္။ အျမဲေတာ႔ အဲဒီေလာက္အထိမၾကာဘူး။ stuck threads ေတြမ်ားလာရင္ instance တစ္ခုလံုး down သြားတာပဲ။

တကယ္ျဖစ္တာက ေရးတဲ႔သူေတြ လက္စြမ္းျပျပီး တလြဲေတြလုပ္ၾကလြန္းတာေၾကာင္႔ျဖစ္တယ္။ နည္းပညာေတြ ဘယ္ေလာက္တုိးတက္တုိးတက္၊ သံုးစြဲတဲ႔သူက နည္းလမ္းမမွန္ရင္ အဲဒါေတြက ၾကံဳျမဲၾကံဳေနရဦးမယ္။

မၾကာမီႏွစ္ေတြမွာ software ေတြကို app store မွာ game ေရာင္းေနသလုိ တစ္ခု တစ္က်ပ္နဲ႕ေရာင္းရေတာ႔မယ္ထင္တယ္။ အဲဒီေခတ္ေရာက္ရင္ေတာ႔ တကယ္ေကာင္းတဲ႔ဟာကိုပဲ တစ္က်ပ္တိတိေပးဝယ္ရလိမ္႔မယ္။ ေတာ္ရိေရာ္ရိေတြကေတာ႔ အလကားေပးေတာင္ မသံုးေလာက္ေတာ႔ဘူး။

ဒုတိယတစ္ခုက major. minor ဆိုလား။
အဲဒီတစ္ခုလည္း မွတ္ထားၾကပါ။ ရွာစားေဖြစားရတာခက္ရတဲ႔အထဲ တျခားသူေတြရဲ႕ျပႆနာေၾကာင္႔ ကိုယ္က်ိဳးမနည္းေအာင္ သတိထားရပါတယ္။ အဲဒါကေတာ႔ deployment လုပ္တဲ႔ Linux သမားေတြေၾကာင္႔ျဖစ္တာပါ။ ပံုမွန္အားျဖင္႔ java ဗာရွင္းတစ္ခုတည္းဆိုရင္ေတာ႔ ဘာမွမျဖစ္ပါဘူး။ production server မွာ jdk တစ္ခုထက္ပိုရိွေနရင္ root account နဲ႕ weblogic ကို restart လုပ္မိရင္ 1.5 နဲ႕တက္လာလိမ္႔မယ္။ အဲဒါဆို 1.4 နဲ႕ app ေတြမွာ compile လုပ္လိုက္တုိင္း jsp version conflict ေတြျဖစ္ျပီး page ေတြ တက္တစ္ခ်ိဳ႕၊မတတက္တစ္ခ်ိဳ႕ျဖစ္ကုန္မယ္။ အဲဒါဆိုရင္ restart လုပ္လုိက္တဲ႔သူကုိ weblogic user account နဲ႕ ျပန္ျပီး restart လုပ္ခုိင္းရတယ္။ အဲဒါေလးေတြက system အေဟာင္းေတြကို ထိန္းသိမ္းေနတဲ႔သူေတြအတြက္ေတာ႔ သိထားရမယ္႔ကိစၥေတြ။

အခုတေလာ log file ေတြၾကည္႕ရင္ အဲဒီ error ႏွစ္ခုကိုအရင္စစ္ျဖစ္တယ္။ မၾကာမၾကာၾကံဳခဲ႔ျပီးျပီ။

ျဖစ္ကတတ္ဆန္းေရးခဲ႔ျခင္း အခ်င္းခ်င္း ကင္းရွင္းၾကပါေစ။
Zero


Tuesday, October 1, 2013

Maven config

Maven config

Java မွာ ANT build က အေတာ္နာမည္ၾကီးတယ္။ maven ကေတာ႔ dependency ကိစၥေတြအတြက္ပိုအသံုးဝင္သလုိရိွတယ္။ အၾကမ္းဖ်င္း အဲဒီလိုေတာ႔ နားလည္တယ္။ အရင္ရံုးမွာေတာ႔ maven သံုးတယ္။ အခုရံုးနဲ႕က်န္ရံုးေတြမွာေတာ႔ ANT build ပဲသံုးတယ္။

အမွန္ေတာ႔ သိပ္မလိုလွဘူး။
သို႕ေသာ္လည္း တစ္စုတစ္ေဝးျဖစ္သြားေအာင္ အဲဒါေလးေရးလုိက္တယ္။
http://maven.apache.org/download.cgi ကေနျပီး maven ဗာရွင္းတစ္ခုခု download အရင္လုပ္။

ျပီးရင္ extract လုပ္စရာလိုရင္လုပ္။

Environment variable ကေနျပီး MAVEN_HOME လုပ္ခ်င္လုပ္။ JAVA_HOME နဲ႕ခပ္ဆင္ဆင္ပဲ။  PATH ထဲမွာ bin folder ကို point လုပ္။ အဲဒါက အလုပ္ရွဳပ္တယ္ထင္တယ္။ အဲဒီေတာ႔ command line ကပဲ။

set PATH=C:\maven\bin;%PATH%

C:\maven ကေတာ႔ ကိုယ္extract လုပ္ထားတဲ႔ location ေပါ႔။ အဲဒီလိုလုပ္လုိက္ျပီးရင္။ mvn --version ဆိုျပီး command prompt ကေနရိုက္။ အိုေကတယ္ဆိုရင္ maven version ေတြေပၚလာမယ္။ jdk 5 သို႕မဟုတ္ 6 နဲ႕ေတာ႔ရတယ္။ က်န္တဲ႔ ဗာရွင္းေတြေတာ႔ မသိ။ maven ရဲ႕ default local folder က .m2 ဆိုတဲ႔ဟာ။ User folder ေအာက္မွာရိွတယ္။ အဲဒါကိုလည္း ေျပာင္းခ်င္ရင္ maven folder ထဲက config မွာျပင္လုိက္လုိ႕ရတယ္။ ခပ္လြယ္လြယ္ပဲ။

maven ရိွမွ pom.xml ဆိုတဲ႔ build file ေတြကို build လုပ္ႏုိင္မယ္။ web service စာအုပ္ဖတ္ရင္း maven setup လုပ္စရာလိုတာနဲ႕ တစ္ခါတည္းေရးထားလုိက္တာပါ။ web service ေတြအေၾကာင္းဘက္ ဆက္ေရးမယ္စိတ္ကူးတယ္။

ref:
http://maven.apache.org/download.cgi