เมื่อประมาณเดือนกว่าๆที่ผ่านมา ผมได้พยายามหาโปรแกรมที่ช่วยในการบริหารจัดการโครงการมาใช้ ส่วนหนึ่งนั้นเป็นเพราะในเทอมนี้ ได้สอนวิชา Software Engineering จึงอยากจะเอามาแนะนำให้นักศึกษาได้เรียนรู้ ส่วนหนึ่งก็เพราะมีโครงการวิจัยที่ต้องจัดการอยู่หลายโครงการ ก็เลยนึกถึงโปรแกรม Rational Rose ของ IBM ที่สมัยก่อน(ประมาณ 10 กว่าปีมาแล้ว) เคยใช้ในการออกแบบโปรแกรม สร้าง UML Diagram แต่สมัยนี้ ทาง IBM ได้สร้างเป็นโปรแกรมใหม่ชื่อว่า Rational Team Concert (RTC) หรือจะเรียกชื่อเต็มๆซึ่งเป็นโปรแกรมชุดใหญ่ชื่อว่า Rational solution for Collaborative Lifecycle Management (CLM)
โปรแกรมนี้จะทำงานเป็น Server โดยมีแกนของระบบชื่อว่า Jazz Foundation หรือ Jazz Team Concert (JTC) ซึ่งพัฒนาเป็น Open Source ในโครงการที่ชื่อว่า Jazz Project (jazz.net) และที่น่าสนใจมากก็คือ สถาปัตยกรรมของระบบ จะมี Jazz Foundation เป็นโครงสร้างพื้นฐาน จากนั้นก็จะมีโมดูลต่างๆสวมเข้ามาในระบบคล้ายการ Plug-In ทำให้กลายเป็นระบบใหญ่ที่ทำโน่นทำนี่ได้หลายอย่าง ใครสนใจเจ้า Jazz Foundation ก็สามารถดาวโหลดได้ที่ https://jazz.net/downloads/jazz-foundation/
ปัญหาก็มีอยู่ว่า ผมได้ติดตั้งโปรแกรมนี้ตั้งแต่เมื่อเดือนกว่าๆที่ผ่านมา โดยติดตั้งโปรแกรมนี้บน Ubuntu 10.04 แต่เมื่อถึงขั้นตอน setup ก็เกิดปัญหาขึ้นกับฐานข้อมูล คือ โปรแกรมจะสร้างฐานข้อมูลอยู่นาน และบางครั้งก็ไม่สำเร็จ ทำให้เกิด error ต่างๆตามมา ผมก็ลบฐานข้อมูลทิ้งแล้ว setup ใหม่อยู่หลายรอบ ก็ได้บ้างไม่ได้บ้าง ครั้งที่ได้ เมื่อใช้งานไปสักพัก ระบบก็รวน เกิด error ต่างๆตามมาอีก ผมจึงคิดว่า ปัญหาน่าจะเป็นที่ตัว Derby ที่เป็น database server ซึ่งอาจจะไม่เหมาะกับโปรแกรมใหญ่ๆอย่าง RTC นี้ ซึ่งโปรแกรมนี้สามารถใช้งานร่วมกับ database server ได้หลายยี่ห้อ เช่น Oracle, Microsoft SQL และ DB2 และผมคิดว่า ฐานข้อมูลของ IBM น่าจะใช้งานร่วมกับโปรแกรมของ IBM ได้ดี ผมจึงเลือกเอา DB2 Express-C มาลง ซึ่ง IBM ใจดีให้ใช้ฟรีอีกด้วย แต่ผมเองก็ไม่เคยใช้งาน DB2 มาก่อน ก็เลยต้องเสียเวลาศึกษาวิธีการติดตั้งและใช้งานอยู่พักใหญ่ เสียเวลาไปอีกเป็นสัปดาห์ ก็ติดตั้งและ setup ได้บ้างไม่ได้บ้างเหมือนเคย
ก็คิดว่าอาจจะเป็นปัญหาที่ Java คือ โปรแกรมนี้ใช้ JRE ของ IBM เอง และทุกครั้งที่ shutdown server ก็มักจะมีข้อความ stack overflow โผล่มาให้เห็นทุกครั้ง ผมจึงพยายามเปลี่ยนให้ RTC มาใช้ JRE ของ Sun แทนโดยเข้าไปแก้ไข script ตอน startup server แต่ผลลัพธ์ที่ได้คือ โปรแกรมรันได้ แต่ไม่ตอบสนองต่อ browser เลย ผมก็พยายามอยู่หลายวิธี จนผ่านไปเดือนกว่าๆ จนผมแทบจะหมดความอดทน กำลังคิดว่า ถ้ายังแก้ปัญหาไม่ได้ คงต้องหาโปรแกรมตัวอื่นมาใช้แทนซะแล้ว แต่ก็น่าเสียดายอยู่ เพราะโปรแกรมของ IBM ตัวนี้ มีชื่อเสียงมาก มีความสามารถสูง และทำได้หลายอย่าง
และแล้ว ผมก็ตามหาความสำเร็จจนพบ แต่ก็เป็นความสำเร็จที่ไม่ค่อยจะประทับใจสักเท่าไรนัก เพราะมันเกิดจากเรื่องเล็กๆที่ไม่น่าจะเกิดขึ้นเลย
ปัญหานี้ความจริงแล้ว ผมก็ได้ทำตามขั้นตอนการติดตั้งที่เขาบอกไว้แล้ว คือ เนื่องจากโปรแกรมจะเปิดไฟล์เป็นจำนวนมาก และโดยปกติแล้ว Linux จะตั้งค่าจำนวนไฟล์ที่เปิดได้ไว้ที่ 1024 ซึ่งก็มากโขอยู่ แต่ตามคู่มือบอกว่า ให้ตั้งไว้เป็น 65536 โดยให้ไปแก้ไขที่ /etc/security/limits.conf และสามารถตรวจสอบจำนวนไฟล์ที่จำกัดได้จากคำสั่ง ulimit -n ซึ่งจะได้ค่า 65536 กลับมา แสดงว่าเรากำหนดไว้ถูกต้องแล้ว และก็ไม่น่าจะมีปัญหาอะไร
แต่...ปัญหาก็คือ ทุกๆครั้งที่ผมจะ start server ผมก็จะเปลี่ยนไปเป็น root ด้วยคำสั่ง sudo su และผมก็ไม่เคยเอะใจเลยว่า มันจะทำให้ ulimit กลับมาเป็น 1024 ทำให้เมื่อโปรแกรมทำงานไปจนถึงขีดจำกัดนี้ มันก็ทำงานต่อไม่ได้ ทำให้เกิด error ต่างๆแบบ random ไม่แน่นอน สร้างปัญหาปวดหัวแบบไม่ซ้ำรูปแบบได้ตลอดเวลา สุดท้าย ผมก็เลยต้องเพิ่มคำสั่ง ulimit -n 65536 เข้าไปใน startup script เพื่อแก้ปัญหานี้ แล้วทุกอย่างก็ทำงานได้อย่างราบรื่น เฮ้อ...
หลังจากแก้ปัญหาได้แล้ว ผมก็เลยโพสปัญหาเข้าไปที่ Jazz Forum ปรากฏว่า มีคนพบปัญหานี้มาแล้วเช่นกัน ตั้งแต่เมื่อเดือนกุมภาพันธ์ และมีข้อแนะนำ เฉพาะสำหรับ Ubuntu ว่า มีปัญหาการใช้เครื่องหมาย * ในไฟล์ /etc/security/limits.conf ที่เดิมนั้นคู่มือแนะนำให้ใช้ * แทน user ทุกๆคน แต่สำหรับบน Ubuntu (หรือไม่แน่ใจว่าเป็นกับ Debian ด้วยหรือเปล่า) จะไม่มีผลต่อ root
ไม่มีความคิดเห็น:
แสดงความคิดเห็น