Saturday, August 28, 2010

คนถามกันจัง อัปเดตโปรแกรมบนวินโดว์ 7 หรือ วิสต้า ไม่ได้

ะบบปฏิบัติการ วินโดว์ 7/วิสต้า ปกติแล้ว จะไม่อนุญาตให้เขียนไฟล์ลงที่ไดรว์ C: เป็นเหตุผลเรื่องความปลอดภัยของระบบ
นอกจากเราจะมั่นใจว่า ต้องการทำอะไรจริงๆ นั่นหมายถึง เราต้องเป็นผู้ดูแลระบบ หรือ ผู้ใช้ (username/account) Administrator ของวินโดว์

หากเราล็อกอินเข้าใช้งานด้วยผู้ใช้ (username/account) Administrator ของวินโดว์ ก็จะสามารถดำเนินการในเครื่องคอมพิวเตอร์นั้นได้ทุกอย่าง รวมทั้งเรื่องการเขียนไฟล์ลงไดรว์ C: หรือ การอัปเดตโปรแกรม JHCIS ด้วย

แต่...หลายๆ คนยังไม่ทราบเลยว่า ขณะนั้นกำลังล็อกอินด้วยผู้ใช้ (username/account) ใดอยู่ เนื่องจากไม่ได้ติดตั้งวินโดว์เอง ไปให้ร้านซ่อมคอมพิวเตอร์ติดตั้งให้ หรือ ให้เพื่อนบ้านติดตั้งให้ เป็นต้น ก็ขอบอกเลยว่า ส่วนใหญ่ไม่ได้ล็อกอินเข้าใช้ด้วยผู้ใช้ Administrator

นั่นก็หมายถึง ส่วนใหญ่ก็จะพบปัญหาเรื่องการอัปเดตโปรแกรม JHCIS แน่นอน แต่เราก็มีวิธีแก้ไข

ระบบปฏิบัติการ วินโดว์ 7/วิสต้า แบบ 32 บิต (ส่วนใหญ่เรายังใช้งานแบบ 32 บิต) โปรแกรม JHCIS ติดตั้งที่โฟลเดอร์ C:\Program Files\JHCIS
ระบบปฏิบัติการ วินโดว์ 7/วิสต้า แบบ 64 บิต โปรแกรม JHCIS ติดตั้งที่โฟลเดอร์ C:\Program Files (x86)\JHCIS

กรณีหากเป็นปัญหาเรื่องการอนุญาต (permission) ในการเขียนไฟล์ลงโฟลเดอร์ C:\Program Files\JHCIS (หรือ C:\Program Files (x86)\JHCIS ในวินโดว์ 7/วิสต้า แบบ 64 บิต) เราสามารถไปเปลี่ยนการอนุญาต (permission) ของโฟลเดอร์ที่ว่ามาได้

:idea: คลิกเม้าส์ขวาที่โฟลเดอร์ C:\Program Files\JHCIS > เลือกเมนู properties
:idea: เมื่อไดอะล็อก jhcis Properties ปรากฏขึ้นมา ให้คลิกแท็บ Security แล้ว คลิกปุ่ม Edit
:idea: เมื่อปรากฏไดอะล็อก Permissions fot jhcis ที่ช่อง Group or user names: ให้คลิกที่รายการ Users (COMPUTERNAME\Users) แล้วไปที่ช่อง Permissions for Users บรรทัด Full Control คอลัมน์ Allow แล้วคลิกปุ่ม Apply ด้านล่างของไดะอะล็อก

หากเป็นปัญหาเรื่องการอนุญาต (permission) ในการเขียนไฟล์หรือโฟลเดอร์ วิธีนี้ก็จะแก้ปัญหาได้

Sunday, August 15, 2010

การกู้ข้อมูลจากฐานข้อมูล MySQL Storage Engine แบบ InnoDB (Forcing InnoDB Recovery)

เริ่มมากันแล้ว ปัญหาฐานข้อมูล InnoDB เสีย
อ้างอิง: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html

1) เปิดไฟล์คอนฟิกของ MySQL ดาต้าเบสเซิร์ฟเวอร์ ด้วยโปรแกรม Notepad หรือ Wordpad
C:\Program Files\JHCIS\MySQL\my.ini
ค้นหา [mysqld] แล้วแทรกบรรทัด innodb_force_recovery = 4 ลงไป
บันทีกการแก้ไข

[mysqld]
innodb_force_recovery = 4

2) รีสตาร์ตเซอร์วิสของ MySQL ดาต้าเบสเซิร์ฟเวอร์
คลิก Start > All Programs > MySQL-JHCIS > MySQL Service Stop
คลิก Start > All Programs > MySQL-JHCIS > MySQL Service Start

3) หากเซอร์วิสของ MySQL ดาต้าเบสเซิร์ฟเวอร์ ทำงานได้ปกติ ก็จะสามารถติดต่อฐานข้อมูลได้ ให้ทำการสำรองข้อมูล (Backup) ออกมาด้วยโปรแกรม MySQL Administrator จะได้ไฟล์ jhcisdb.sql

4) นำไฟล์ jhcisdb.sql ที่ได้จากการสำรองข้อมูล (Backup) ไปทดสอบนำเข้า (Restore) ที่เครื่องคอมพิวเตอร์อื่น (ต้องหามา) เพื่อให้มั่นใจว่า ไฟล์สำรองข้อมูลนั้นใช้ได้

5) หากมั่นใจว่าไฟล์สำรองข้อมูลที่ทำมาใช้การได้ ให้ทำการลบฐานข้อมูล jhcisdb เดิม ทิ้งไป
คลิก Start > All Programs > MySQL-JHCIS > MySQL Administrator คลิกเมนู Catalogs คลิกเม้าส์ปุ่มขวาที่รายการ jhcisdb แล้วเลือกเมนู Drop Schema

6) นำไฟล์ jhcisdb.sql ที่ได้จากการสำรองข้อมูล (Backup) มานำเข้า (Restore) กลับเข้าไปในเครื่องคอมพิวเตอร์ที่จัดเก็บฐานข้อมูลระบบงาน JHCIS

7) เปิดไฟล์คอนฟิกของ MySQL ดาต้าเบสเซิร์ฟเวอร์ ด้วยโปรแกรม Notepad หรือ Wordpad
C:\Program Files\JHCIS\MySQL\my.ini
ค้นหา [mysqld] แล้วลบบรรทัด innodb_force_recovery = 4 ออกจากไฟล์
บันทีกการแก้ไข

8) รีสตาร์ตเซอร์วิสของ MySQL ดาต้าเบสเซิร์ฟเวอร์
คลิก Start > All Programs > MySQL-JHCIS > MySQL Service Stop
คลิก Start > All Programs > MySQL-JHCIS > MySQL Service Start

เสร็จสิ้นขั้นตอน ก็คาดหวังว่า เครื่องคอมพิวเตอร์ของคุณ พร้อมกับ ฐานข้อมูล jhcisdb จะสามารถใช้งานได้ปกติ

Saturday, August 14, 2010

Friday, August 13, 2010

Dulyawat's Blog: การเซ็ตให้รายงาน JasperServer ส่งออกเป็นไฟล์ PDF ที่มีฟอนต์ภาษาไทย

Dulyawat's Blog: การเซ็ตให้รายงาน JasperServer ส่งออกเป็นไฟล์ PDF ที่มีฟอนต์ภาษาไทย

การเซ็ตให้รายงาน JasperServer ส่งออกเป็นไฟล์ PDF ที่มีฟอนต์ภาษาไทย

เซ็ตให้รายงาน JasperServer ส่งออกเป็นไฟล์ PDF ที่มีฟอนต์ภาษาไทย ได้ใน 4 ขั้นตอน
1. สร้างไฟล์ jasperreports_extension.properties ในโฟลเดอร์ WEB-INF/classes ของ jasperserver

Windows: C:\Program Files\Apache Software Foundation\tomcat 6.0\webapps\jasperserver\WEB-INF\classes\
Linux Fedora 12: /usr/share/tomcat6/webapps/jasperserver/WEB-INF/classes/

เขียนโค้ดบรรทัดต่อไปนี้ลงในไฟล์

jasperreports_extension.properties
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.extensions.SpringExtensionsRegistryFactory
net.sf.jasperreports.extension.fonts.spring.beans.resource=fonts.xml

2. สร้างไฟล์ fonts.xml ภายใต้โฟลเดอร์ WEB-INF/classes ของ jasperserver (โฟลเดอร์เดียวกับขั้นตอน 1)

เขียนโค้ดบรรทัดต่อไปนี้ลงในไฟล์

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="TahomaFontFamily" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily">
<property name="name" value="Tahoma"/>
<property name="normal" value="fonts/tahoma.ttf"/>
<property name="pdfEncoding" value="Identity-H"/>
</bean>
</beans>

3. สร้างโฟลเดอร์ fonts ภายใต้โฟลเดอร์ WEB-INF/classes ของ jasperserver (โฟลเดอร์เดียวกับขั้นตอน 1) จะได้โฟลเดอร์ WEB-INF/classes/fonts

4. ก็อปปี้หรืออัปโหลดไฟล์ฟอนต์ที่ต้องการ เช่น tahoma.ttf, tahomabd.ttf ไปวางที่โฟลเดอร์ WEB-INF/classes/fonts ของ jasperserver (โฟลเดอร์ที่ได้จากขั้นตอน 3)

เสร็จสิ้นขั้นตอน

Thursday, August 12, 2010

การแก้ปัญหา JasperServer เกี่ยวกับ webHelpModule is undefined

แก้บรรทัดเหล่านี้ ก็ได้แล้ว

jpivot\ja-pro.js(194): $('helpLink').onclick = webHelpModule.displayWebHelp;


WEB-INF\jsp\olap\viewOlap.jsp(107): webHelpModule.currentContext = "analysis";
WEB-INF\jsp\rolesFlow\roleManager.jsp(65): webHelpModule.currentContext="admin";
WEB-INF\jsp\search\results.jsp(76): webHelpModule.currentContext = "search";
WEB-INF\jsp\userFlow\userManager.jsp(65): webHelpModule.currentContext="admin";