Saturday, May 28, 2016

Trouble Shooting: การแก้ไขปัญหาข้อมูลที่สร้างขึ้นใหม่ ไม่แสดงใน Content Tree (1)

การแก้ไขปัญหาข้อมูลที่สร้างขึ้นไม่แสดงในหน้าจอ Content Tree

เมื่อท่านสร้างข้อมูลต่างๆ เช่น ข้อมูลข่าว, ข้อมูลผลิตภัณฑ์ แต่ข้อมูลเหล่านั้นไม่แสดงใน Content Tree หรือในหน้าจอการ Browse Asset ต่างๆ ท่านไม่ต้องกังวลไปว่าข้อมูลหรือ Asset ต่างๆ ที่สร้างขึ้นจะหายไปหรือไม่ ส่วนใหญ่แล้วปัญหาเหล่านี้เกิดจาก Index ของข้อมูล Asset นั้นๆ ไม่สามารถจัดเก็บลงในฐานข้อมูล Lucene ของระบบได้ (แต่ข้อมูลที่ท่านได้กรอกลงในแบบฟอร์มนั้นจะถูกเก็บลงฐานข้อมูลของ WebCenter Sites เรียบร้อยแล้ว) แนวทางการแก้ไขปัญหามีได้หลายรูปแบบ ดังนี้

ตรวจสอบระบบ Lucene ทำงานอยู่หรือไม่


ในกรณีที่มีการใช้ Lucene เพื่อใช้สำหรับการค้นหาข้อมูลในระบบ WebCenter Sites ท่านต้องตรวจสอบว่าระบบ Indexing ของ Lucene ทำงานอยู่หรือไม่ โดยทำตามขั้นตอน ดังนี้

  1. เข้าสู่การทำงานในฐานะ Admin
  2. คลิกที่แถบ Admin
  3. เลือกที่หัวข้อ Search แล้วกดเครื่องหมาย + เพื่อขยาย
  4. ดับเบิ้ลคลิกที่ Start/Stop Search Engine Indices จะปรากฎหน้าจอดังภาพ โดยปุ่มในหน้าจอจะต้องแสดงคำว่า Stop Search Engine แสดงว่า Search Engine ยังทำงานอยู่
     

     
    ในกรณีนี้ให้ลองทำการ Restart Search Engine โดยคลิกที่ปุ่ม Stop Search Engine จากนั้นปุ่มจะเปลี่ยนเป็น Start Search Engine ให้ท่านกดปุ่มเดิมอีกครั้งเพื่อเริ่มต้นทำงาน Lucene Search Engine อีกครั้งหนึ่ง


Re-Index สำหรับ Global Asset Type ที่มีปัญหา


เมื่อมีการสร้างข้อมูล Asset พร้อมๆ กันระบบอาจจะทำการ Update ข้อมูล Index ใน Lucene ไม่ทัน หรือหยุดทำไป ซึ่งอาจเกิดจากหลายสาเหตุ เช่น Disk I/O มีขนาดน้อยเกินไป, Resource ที่มีให้กับ Managed Server น้อยเกินไป เป็นต้น ส่งผลให้ข้อมูลที่ถูกเพิ่มเข้าไปใหม่ยังไม่ถูกจัดเก็บลงใน Lucene Index จึงยังไม่มีข้อมูลที่แสดงในระบบ เราสามารถบังคับให้ระบบทำการอ่านข้อมูล Index ใหม่ได้ โดยทำตามขั้นตอน ดังนี้

  1. เข้าสู่การทำงานในฐานะ Admin
  2. คลิกที่แถบ Admin
  3. เลือกที่หัวข้อ Search แล้วกดเครื่องหมาย + เพื่อขยาย
  4. ดับเบิ้ลคลิกที่ Configure Global Search จะปรากฎหน้าจอดังภาพ
     

     
  5. คลิกที่ Dropdown เลือก Re-index
     

     
  6. คลิกเลือก Asset Type ที่ต้องการทำ Re-Index หรือคลิกที่กล่องสี่เหลี่ยมหัวตารางเพื่อเลือกทุกประเภท
     

     
  7. กดปุ่ม OK เพื่อเริ่มต้นการทำ Re-Index ในขั้นตอนนี้จะต้องรอจนกว่าระบบทำงานเสร็จ
    System Admin ของระบบสามารถตรวจสอบได้จาก Folder ของระบบ {Site's Shared Folder}/lucene/Global ในขณะที่มีการทำ Re-Index อยู่นั้นจะมีไฟล์ชื่อ write.lock เกิดขึ้น หรือใช้เครื่องมือ Support Tools ของ WebCenter Sites ทำการตรวจสอบความคืบหน้าการทำงานของ Lucene

Saturday, May 21, 2016

Docker vs Vagrant

เทคโนโลยี Virtualization และ Cloud Computing มีความนิยมอย่างแพร่หลาย และมีแนวโน้มการเติบโตอย่างรวดเร็ว โดยใช้ซอฟต์แวร์ประเภท Virtual Machine (VM) ซึ่งช่วยให้สามารถสร้างจำลองเครื่อง Computer ที่มี OS, Network, Disk ที่ต่างกันได้บน Server เดียวกันได้ ช่วยให้ประหยัดค่าใช้จ่ายในองค์กรได้เป็นอย่างมาก อีกทั้งช่วยให้นักพัฒนาซอฟต์แวร์สามารถทดสอบการทำงานของซอฟต์แวร์บน Environment ต่างๆ ได้อย่างสะดวกอีกด้วย

ในปัจจุบันได้มีการพัฒนาซอฟต์แวร์ต่างๆ มากมายที่สนับสนุนการทำงานแบบ VM ในลักษณะที่แตกต่างกันไป โดยมีซอฟต์แวร์เป็นที่นิยมใช้กันซึ่งจะกล่าวถึงในบทความนี้อยู่ 2 ค่าย คือ Docker และ Vagrant ซึ่งทั้งสองตัวนี้มีลักษณะการทำงานที่มีวัตถุประสงค์เดียวกัน คือ สามารถนำเอาระบบซอฟต์แวร์ หรือซอฟต์แวร์ที่พัฒนาขึ้นไปรันบนเครื่องอื่นๆ ได้โดยไม่ต้อง Config เครื่อง Server ให้ยุ่งยาก จะกล่าวถึงจุดเด่นของแต่ละตัวคร่าวๆ ดังนี้

 
Docker
Docker มีลักษณะการทำงานแบบ Virtual Environment (VE) ซึ่งถูกสร้างขึ้นมาบน LxC (LinuX Container) โดยการใช้ฟังก์ชันการทำงานของ cgroups (Linux Control Group) มาช่วยบริหารจัดการ CPU, Memory, Disk Bandwidth และ Network Bandwidth เพื่อช่วยทำให้เสมือนมีการแบ่งหลายๆ Environment บนเครื่องเดียวกัน (Host) ได้ แต่การทำงานในลักษณะ Virtual Environment (VE) แตกต่างกับ Virtual Machine (VM) ตรงที่จะไม่มีการจอง CPU, Memory, Disk เป็นของตัวเอง ไม่สามารถติดตั้ง OS แยกกันได้ และไม่มีการจำลอง Hardware ให้กับ VE เนื่องจาก VE จะอาศัย Resources ต่างๆ ที่มีอยู่บน Host ที่ติดตั้ง โดย Docker จะสร้าง Environment ของตัวเองขึ้นมาซึ่งเรียกว่า Container เพื่อให้สามารถรัน Application ที่ติดตั้งมาบน Container ได้
 
Vagrant
Vagrant มีหลักการทำงานโดยการจัดทำ Script และรายละเอียดการ Provision Setup ของ VM ออกมาเป็น Package โดย Vagrant ถูกออกแบบมาทำงาน On Top ของ VM Tools เช่น VirtualBox, VMWare, AWS โดยปกติแล้ว Vagrant จะมี Provider สำหรับ VirtualBox มาให้อยู่แล้ว ในกรณีที่ต้องการทำงานร่วมกับ VM Tools อื่นๆ ต้องติดตั้ง Provider เพิ่มเติม โดยดูรายนละเอียดได้จากลิงค์นี้ Vagrant Provider การทำงานของ Vagrant เมื่อติดตั้งลงบนเครื่องอื่นๆ จะทำการสร้าง Virtual Machine ของตัวเองขึ้นมา และมีการจำลอง CPU,Memory,Disk,Network และ OS ของตัวเองขึ้นมาบนเครื่อง Host ซึ่ง Vagrant ต่างกับ Docker ตรงจุดนี้
 
เปรียบเทียบระหว่าง Docker กับ Vagrant
ภาพแสดงให้เห็นถึงการวาง Stack ระหว่าง Docker (Container) กับ Vagrant (Virtual Machine) ที่แตกต่างกัน
 

Source Image: Docker
 
รายการเปรียบเทียบ Docker Vagrant
ประเภท Visualization VE VM
มีการแบ่ง Resources ของ Hardware ที่ชัดเจน No Yes
Platform ที่รองรับ เฉพาะ Linux Linux
Unix
Windows
ระยะเวลาการ Startup 2-3 วินาที 2-3 นาที
ระดับการแบ่งของ Virtual System บางส่วน เต็มรูปแบบ
ขนาดของ Virtual System มีขนาดเล็ก มีขนาดใหญ่ แต่เล็กกว่า VM เต็มรูปแบบ
ข้อดีอื่นๆ เรียนรู้ได้อย่างรวดเร็ว สามารถ Integrate กับ CM Tools อื่นๆ ได้

 
บทสรุป
จากที่อธิบายข้างต้นจะเห็นได้ว่ารูปแบบการทำงานระหว่าง Docker และ Vagrant มีวัตถุประสงค์เดียวกัน คือ สามารถนำเอาระบบต่างๆ ที่สร้างขึ้นไปรันบนเครื่องอื่นๆ ได้อย่างรวดเร็ว ไม่จำเป็นต้อง Config อะไรมาก แต่ทั้งนี้การเลือกเครื่องมือสำหรับการใช้งานขึ้นอยู่กับความต้องการของระบบ หรือรูปแบบการนำไปใช้ของระบบนั้นๆ เช่น หากเป็นระบบที่ต้องการ Resources ที่ชัดเจนควบคุมได้ ควรเลือกใช้งาน Vagrant มากกว่า แต่หากต้องการนำระบบไปใช้งานบนเครื่อง Server อื่นโดยไม่เน้นให้การ Guarantee Resources สามารถเลือกใช้ Docker ได้

 
Reference

Wednesday, May 11, 2016

การเพิ่ม Field ให้ข้อมูลผู้ใช้งาน

โดยปกติข้อมูล User Account สำหรับระบบ WebCenter Sites จะประกอบด้วย Name, e-Mail, TimeZone หากท่านต้องการเพิ่มเติม Field ในกรณีที่ไม่มีการเชื่อมต่อกับระบบ LDAP หรือ Active Directory ใดๆ ท่านสามารถเพิ่มเติมเองได้ โดยทำการแก้ไขข้อมูลภายในไฟล์ dir.ini (ซึ่งไฟล์นี้จะอยู่ใน Folder ที่ติดตั้ง WebCenter Sites ไว้)

สิ่งที่ต้องแก้ไขคือ แก้ไขตัวแปร requiredPeopleAttrs โดยรูปแบบของการกำหนดตัวแปร มีรูปแบบดังนี้

requiredPeopleAttrs={field_name1}={field_description1}&{field_name2}={field_description2}&...

ตัวอย่าง

requiredPeopleAttrs=FullName=Full Name&Tel=Tel&Organization=Organization

เมื่อแก้ไขไฟล์ dir.ini เรียบร้อยแล้วให้ Restart WebCenter Sites เมื่อเข้าเรียกดูข้อมูลผู้ใช้จะปรากฎ Field เพิ่มเติม ดังภาพ ซึ่ง Field ที่เพิ่มเติมนี้จะเป็น require field จะต้องกรอกข้อมูลให้ครบจึงจะสามารถบันทึกข้อมูลได้
 

Add customize fields for user's account

By default Oracle WebCenter Sites user's account contain few fields only name (username), e-Mail, TimeZone. But sometime you need to add more field to fit your requirement. You can add customize fields for user's account by add some configuration into dir.ini. Please following this instruction:
  1. Open WebCenter Sites installation folder
  2. Open file dir.ini
  3. Add parameters into "requiredPeopleAttrs" attribute. You can enter several fields that separate by "&". Here is parameters format.
    requiredPeopleAttrs={field_name1}={field_description1}&{field_name2}={field_description2}&...
    The field description will be show as field label in user's account form. Here is example of this parameter.
    requiredPeopleAttrs=FullName=Full Name&Tel=Tel&Organization=Organization
  4. Save file
  5. Restart WebCenter Sites's Managed Server. When you log into the system. You can see addition field in user's account form as picture below.
     
Custom fields for this parameter will become require fields in user's account form. And it just only string type field.

Friday, January 9, 2015

Oracle WebCenter Sites :: Part 1 :: Overview


Oracle WebCenter เป็นผลิตภัณฑ์ของบริษัท Oracle โดยมีวัตถุประสงค์เพื่อให้ผู้ใช้งานสามารถเข้าถึงข้อมูลต่างๆ ในองค์กรได้อย่างสะดวกรวดเร็ว ประกอบด้วย 3 โมดูลหลัก ดังนี้ Oracle WebCenter Sites, Oracle WebCenter Portal และ Oracle WebCenter Content ดังภาพ โดยทั้ง 3 โมดูลสามารถทำงานเชื่อมต่อข้อมูลระหว่างกันได้ โดยแต่ละโมดูลมีหน้าที่เฉพาะทาง ดังนี้

WebCenter Logo
3 โมดูลหลักของ Oracle WebCenter

Oracle WebCenter Content 
ทำหน้าที่บริหารจัดการข้อมูลเอกสาร รวมถึงไฟล์ประเภทต่างๆ ได้ โดยจัดเก็บอยู่ที่ส่วนกลาง และสามารถกำหนดสิทธิการเข้าถึงเอกสารได้ รวมถึงสามารถกำหนด Workflow สำหรับการบริหารจัดการเอกสารแต่ละประเภทได้อีกด้วย

Oracle WebCenter Portal
ทำหน้าที่บริหารจัดการด้าน Social Media โดยมีเครื่องมือต่างๆ ช่วยจัดเตรียมไว้ให้ เช่น ระบบการสร้างหน้าจอ Personal ส่วนตัว ระบบ Active Stream (เหมือนกับ Facebook) รวมถึงสิ่งอำนวยความสะดวกในการสร้างหน้าจอ Portal ด้วยการทำ Drag-n-Drop เครื่องมือต่างๆ มาวางไว้บนหน้าจอ Portal ส่วนตัว

Oracle WebCenter Sites
ทำหน้าที่บริหารจัดการ Website โมดูลนี้ทำหน้าที่เป็นระบบ Content Management System (CMS) แต่มีเครื่องมืออำนวยความสะดวกให้ค่อนข้างมาก อีกทั้งสามารถนำเอาข้อมูลที่อยู่ในโมดูลอื่นๆ ในชุด Oracle WebCenter มานำเสนอบนเว็บไซต์ที่พัฒนาได้อีกด้วย

ด้วยเครื่องมือเหล่านี้ Oracle WebCenter จึงเป็นชุดซอฟต์แวร์ที่เหมาะสมแก่การนำมาใช้ในการบริหารจัดการข้อมูลในสำนักงาน เพื่อตอบสนองแนวทางการทำงานในปัจจุบันที่มีการทำงานผ่านเว็บกันอย่างแพร่หลาย

ตัวอย่างหน้าจอ WebCenter Sites

Oracle WebCenter Sites ทำงานอย่างไร

WebCenter Sites เป็นเครื่องมือสำหรับจัดสร้างเว็บไซต์ที่มีความทันสมัยแตกต่างจากระบบ CMS ทั่วไป ด้วยความสามารถของ WebCenter Sites ซึ่งมีการทำงานในลักษณะให้ผู้ใช้งานทั่วไป (User) ที่ไม่จำเป็นต้องมีความรู้สามารถสร้าง และแก้ไขหน้าเว็บเพจด้วยตนเองตาม Template ที่ Developer จัดเตรียมไว้ให้ หรือที่เรียกทั่วไปว่า User Generated Content (UGC) โดยการทำงานของ WebCenter Sites มีกระบวนการทำงานเพื่อสร้างหน้าจอเว็บเพจ ดังภาพ

ขั้นตอนการทำงานของ WebCenter Sites


ขั้นตอนที่ 1 เมื่อผู้ใช้เรียกหน้าจอเว็บเพจผ่าน Web Browser คำร้องขอในการประมวลผลหน้าจอเว็บเพจจะถูกส่งมาที่ WebCenter Sites เพื่อเริ่มดำเนินการประมวลผล
ขั้นตอนที่ 2 WebCenter Sites จะดำเนินการอ่านข้อมูลต่างๆ ที่เกี่ยวข้องกับเว็บเพจหน้านั้น จากฐานข้อมูลของระบบ
ขั้นตอนที่ 3 WebCenter Sites จะนำข้อมูลของ Asset ต่างๆ ของหน้าเว็บเพจมาประกอบกันตาม Template ของหน้าเว็บเพจที่ได้เลือกไว้ ออกมาเป็น HTML สำหรับแสดงบน Web Browser
ขั้นตอนที่ 4 ส่งข้อมูล HTML ที่ประมวลผลเรียบร้อยกลับมายัง Web Browser เพื่อแสดงผลให้เราได้เห็นหน้าจอเว็บเพจ

ตัวอย่างเว็บไซต์ที่ใช้ Oracle WebCenter Sites ในการพัฒนา เช่น เว็บไซต์สโมสรฟุตบอล Real Mardrid (http://www.realmadrid.com) , เครื่องดื่มกระทิงแดง (Redbull - http://www.redbull.com)