วันจันทร์ที่ 4 มีนาคม พ.ศ. 2556
Restore DB2 Database command db2exc_952_WIN_x86
วันอาทิตย์ที่ 11 มีนาคม พ.ศ. 2555
javascript block keyin thai language
ซึ่งแสดงใน code js ข้างล่าง
//Function dont input Text in thai--
function DisplayOnlyE(e){
//alert(String.fromCharCode(e.keyCode));
key = e.keyCode;
e.returnValue = false;
if( (key > 64 && key < 91) || key == 32 || key == 46){ //BIG English
e.returnValue = true;
}else if( (key > 96 && key < 123) || key == 32 || key == 46 ){
e.returnValue = true;
}else if( key > 47 && key < 58 ){
e.returnValue = true;
}
}
//ใช้งาน
<html:password onkeypress="DisplayOnlyE(event);" property="password" value="ar00201n05" style="width:169px ; background-color:#FFF ; border:0px ; height:20px ; font-family:DBAdmanXRegular ; color:#000 ; font-size:18px"> </html:password>
Java Get IP Address ทะลุทะลวง proxy
โดยจะ จะได้ IP ของ client ที่เรียกเข้ามา
String ipAddress = request.getHeader("proxy-ip");
if (ipAddress == null) {
ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null){
ipAddress = request.getRemoteAddr();
}
}
iText print out PDF R java.io.IOException: trailer not found.
ต้องการออกรายงาน หรือเอกสารที่เป็น PDF file สำหรับทำสัญญา โดยที่ มี pdf template อยู่แล้วจากนั้นก็อ่าน Stream buffer เข้ามาซึ่งในระบบ
ใช้ iText ในการ GenPDF ไฟล์ ออกผ่านหน้า Browser
ปัญหา :
[2/13/12 11:48:32:581 ICT] 00000025 SystemErr R java.io.IOException: trailer not found.
[2/13/12 11:48:32:581 ICT] 00000025 SystemErr R at com.lowagie.text.pdf.PdfReader.readXref(Unknown Source)
[2/13/12 11:48:32:581 ICT] 00000025 SystemErr R at com.lowagie.text.pdf.PdfReader.readPdf(Unknown Source)
[2/13/12 11:48:32:581 ICT] 00000025 SystemErr R at com.lowagie.text.pdf.PdfReader.
วิธีแก้ไข:
ถ้าเกิด Exception แบบนี้ในการ Gen PDF ไฟล์ สำหรับ iText ให้ลองตรวจสอบ version ที่ Convert pdf ไฟล์
ด้วยว่าเ
วันอังคารที่ 27 ธันวาคม พ.ศ. 2554
การแก้ปัญหาระบบช้า part.1
คือการทำ System Design ซึ่งจะเป็นการออกแบบระบบที่มีประสิทธิภาพ แม่นยำ ถูกต้อง ง่ายต่อการใช้งาน และ ง่ายต่อการบริหารจัดการ
หรือแก้ไขระบบในภายหลัง
ถ้าต้องการให้ระบบที่ implement ทำงานมีประสิทธิภาพ มีกระบวนการ Design ดังนี้
1. pattern และ style การ coding
เช่น การเเบ่ง class หรือแบ่งงานที่ทำหน้าที่ต่างๆ ในรูปของ MVC เช่น Model ,View ,Controller หรือ Layer Access Database
2. Database Design
การจัดการเกี่ยวกับ Database มีผลต่อการใช้งานของ User เมื่อมีข้อมูลเยอะ ดังนั้นการเขียน SQL ในรูปของ Stroreprocedure หรือ PL/SQL เพื่อโยนความรับผิดชอบในการ
อ่าน,เขียน,ลบ,ค้นหา ให้ Database Server รับผิดชอบแต่เพียงผู้เดียว (ขึ้นอยู่กับ ยี่ห้อ Database)
ดังนั้นจะเห็นว่า code หรือตัวภาษาจะเป็นสือการในการ Input,Output ข้อมูล เท่านั้นเอง ซึ่งการทำงานก็จะเร็วขึ้นและมีประสิทธิภาพ ลด traffic และ Over head ระหว่าง
WebServer กับ Database Server แต่ถ้ามีข้อมูลเยอะๆ มีเทคนิคในการแก้ปัญหาอย่างไร? วิธีหนึ่งที่เห็นในการแก้ปัญหาคือการ ลมข้อมูลใน record ที่ไม่ใช้งานหรือข้อมูลที่เก่า
การทำเช่นนี้ก็ต้องทำการ table ที่เป็น transaction เพราะจะทำให้ระบบทำงานได้ดีขึ้น แต่ถ้าเป็นระบบที่มีการ Design ดีๆ ก็จะมีการ ย้ายข้อมูลที่เป็น transaction ไปไว้ใน table backup
ดังนั้นการทำงานของระบบก็จะมีประสิทธิภาพ ได้ดีขึ้น ซึ่งการจะทำอย่างนี้ก็ต้องมีการ Filter หรือ select และต้อง Difine ว่าจะทำอย่างไร เวลาเท่าไร เช่นเลือก table transaction ที่มีการใช้งานมาที่สุด
มา ย้ายไปที่ tabale back up โดยมีการย้ายทุกๆ 1 เดือน หรือ 3 เดือนขึ้นอยู่กับความสำคัญของข้อมูล เป็นต้น ซึ่งทั้งนี้ทั้งนั้นก็ขึ้นอยู่กับ การใช้งาน ข้อมูล ความต้องการ และ ความเหมาะสมกับระบบ
นั้นๆด้วย
3. System Design
การออกแบบระบบ ที่ดีเมื่อเริ่มการการ code cleaning,Database design บางครั้งก็ต้องทำการ tuning system เพื่อให้เหมาะสมกับระบบและการใช้งาน
4. Hardware
แน่นอนครับ hardware เป็นสิ่งที่ควรปรับปรุงให้เหมาะสมกับ software
วันอังคารที่ 11 ตุลาคม พ.ศ. 2554
Error ResultSet is closed.
ช่วงนี้ได้แก้ไขระบบงานของ บ เอกชนแห่งหนึ่งย่านสาทร ซึ่งระบบงานค่อนข้างซับซ้อนมากมายเนื่องจากข้อมูลเยอะมากและเกี่ยวเนื่องกัน สิ่งที่ต้องเจอในการ code program คงหนีไม่พ้นเรื่อง query,insert,update ,delete ตาม logic business แน่นอนครับ เมื่อระบบงานที่มี logic เยอะแยะมากมายตามความต้องการของระบบหรือ ตาม privacy ก็ตามแต่ program ทีี่เราเขียนก็มีความจำเป็นต้องมีการการพวก Result set, statement มากกว่า 1 Object ในการจัดการกับ database เพื่อดึงข้อมูลหรือ update ข้อมูล ดังนั้นจึงมีการเขียน statement ซ้อน statement จึงเป็นสาเหตุให้เราต้องเจอ Errors ResultSet is closed.
วิธีแก้ ให้ตรวจสอบ statement ,result set จากข้างใน ว่าเป็น object เดียวกันไหม แล้วค่อยไล่ statement ข้างนอกก็จะเจอ bug ตัวใหญ่
ซึ่งเกิดจากการเขียน code ผิดของเราเอง ^^!
java class to String
บางครั้งในการเขียนโปรแกรมซึ่งเรามีความจำเป็นต้องสร้าง java class ขึ้นมาเพื่อเป็นที่พักข้อมูลที่เป็น Object เช่น Bean ต่างๆ ซึ่งใน class java จะมี method สำหรับ get,set สำหรับกำหนดค่าและนำค่าไปใช้ ดังนี้ เรามีความจำเป็นต้องการรู้ค่าต่างๆใน java class นั้นๆ โดยใช้ method toString() ซึ่งในตัวอย่างเป็น code Override toString โดยไม่ต้องไปสนใจว่าเรามีจำนวน Field หรือ attribute ใน class มากขนาดไหน โดยเขียน code ได้ดังนี้
public class testBean{
private String id;
private String name;
.....
getXX,setXX
....
@Override
Class cl = this.getClass();
StringBuilder buffer = new StringBuilder();
for (Field field : cl.getDeclaredFields()) {
try {
buffer.append(" ");
buffer.append(field.getName());
buffer.append(":");
buffer.append(field.get(this));
} catch (IllegalArgumentException ex) {
ex.fillInStackTrace();
} catch (IllegalAccessException ex) {
ex.printStackTrace();
}
}
return buffer.toString();
}
}
จะเห็นว่า method toString จะเป็นการ วนวูบ get ชื่อ attribute และ value มาใส่ StringBuffer เพื่อแสดงข้อมูล ซึ่งสามารถนำเอาไปใช้ประโยชน์ทั้งการดู data ,print out console,debug ต่างๆ เป็นต้น