บทความ

กำลังแสดงโพสต์จาก กุมภาพันธ์, 2012

java.lang.UnsupportedClassVersionError: Bad version number in .class file Error ตัวนี้เล่นเอาซะงง

บทความเกี่ยวกับ : java.lang.UnsupportedClassVersionError: Bad version number in .class file Error ตัวนี้เล่นเอาซะงง java.lang.UnsupportedClassVersionError: Bad version number in .class file Error ตัวนี้เล่นเอาซะงง วันนี้อยู่ๆ ก็งานเข้าซะงั้นเมื่อโปรแกรมที่ Run ได้มาตลอดอยู่ๆ ก็มีปัญหา เหตุเกิดเนื่องจากว่ามี Lib ที่ Export มาจาก JDK ต่าง Version กันแค่นั้นเอง สุดยอด ไม่น่าเชื่อว่ามันจะส่งผลได้ขนาดนี้ Server ใช้ jdk version 1.5  แต่มี jar บางตัวที่น้อง export ออกมาจากเครื่อง dev ที่เป็น jdk version สูงกว่า ผลที่ได้ก็เจอ error ดังกล่าวข้างต้นแหละครับ ทางแก้ยังไม่ได้ดูละเอียดแต่ตอนนี้แก้ปัญหาเฉพาะหน้าด้วยการ export jar ใหม่ด้วย jdk 1.5 ก็ถือว่าโอเคครับ ผมคุ้นๆว่าตอน export jar หรือตอน compile น่าจะมี set ได้ว่าจะให้ target ออกไปเป็น version อะไร เดี๋ยวจะลองให้ดูอีกทีนะคร้าบ

Java Call PLSQL Oracle Function และ Store procedure

บทความเกี่ยวกับ : Java Call PLSQL Oracle Function และ Store procedure ตัวอย่างการเขียนโปรแกรมด้วยภาษา Java เพื่อเรียกใช้งาน PLSQL นั้นแตกต่างจากการเขียนเพื่อ Execute SQL statement ธรรมดาอยูนิดหน่อยตามตัวอย่างครับ CallableStatement call=null; ResultSet rs=null; try {                                    call = con.prepareCall("{call TEST_PACK.TEST_PROC(?,?,?) }");             call.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.CURSOR);             call.setString(2,"10001");             call.setString(3,"TEST");                        call.execute();             rs=(ResultSet)call.getResultSet();                        while(rs.next()){                            System.out.println(rs.getString(3));                            }         } catch (Exception e) {             e.printStackTrace(); } ตามตัวอย่างเลยครับ แต่ถ้าเป็น Function จะเขียนอีกแบบเพราะว่า function จะไม่มี parameter out แต่จะสั่ง return ออกมา เราต้อง Ca

Oracle PLSQL Procedure ต่างกับ Function ยังไง

บทความเกี่ยวกับ : Oracle PLSQL Procedure ต่างกับ Function ยังไง เพื่อนๆ หลายๆคนคงจะเคยเขียน Program บน Oracle ด้วย PLSQL กันมาบ้าง PLSQL ต่างจาก SQL commmand ตรงที่สามารถใน่ Logic ต่างๆเข้าไปได้มากกว่าไม่ว่าจะเป็น การเช็คเงื่อนไข การ วน Loop เป็นต้น แต่หลายคนอาจสงสัยว่า Procedure ต่างจาก Function ยังไง ผมเองตอนหัดเขียนใหม่ๆ ก็ใช้แต่ Function เพราะคุ้นเคยกับการเขียน Java ที่เป็น method มี input parameter และก็มี return value แต่พอเริ่มเขียนเยอะขึ้นจึงได้เปลี่ยนมาใช้ Procedure แทน ผมจะบอกข้อแตกต่างที่เห็นได้ชัดเจนที่สุดและเป็นประโชยน์ที่สุดให้ฟังเพียงข้อเดียวนะครับคือ   ** Parameter ของ procedure มีได้ทั้ง In และ Out นั่นหมายความว่าคุณสามารถส่งค่าเข้า procedure ได้หลายค่าและก็ return ค่ากลับออกมาได้หลายค่าเช่นกัน สุดยอดดด แต่ ในส่วนของ function นั้นสามารถรับ parameter ได้หลายค่าก็จริงแต่ return ค่ากลับออกมาได้เพียงค่าเดียวเหมือนที่เราคุ้นเคยกัน

การใช้งาน Index ใน Oracle และเทคนิคการใช้ HINT

บทความเกี่ยวกับ : การใช้งาน Index ใน Oracle และเทคนิคการใช้ HINT วันนี้นั่งทำ Query อยู่พบข้อสังเกตุอะไรบางอย่าง กับการสร้าง index ใน Oracle ด้วยความที่เราไม่ได้มีความรู้มากมายเท่าทางสาย DBA แต่ก็ได้อาศัยลองผิดลองถูกเรื่อยๆมา วันนี้จะมาเล่ากรณีศึกษาให้ฟัง  ยกตัวอย่าง ผมสร้าง index  ให้กับ table ผมไว้ สอง Field คือ  field_a   index ชือ indx_a field_b   index ชื่อ indx_b ลอง Query data ดูพบว่า select * from my_table where field_a='xxx'; ผลที่ได้เร็วมากๆ select * from my_table where field_b='xxx'; ผลที่ได้เร็วมากๆ แต่พอลองแบบนี้ select * from my_table where field_a='xxx' and field_b='yyy'; ผลที่ได้ปรากฏว่าหน่วงขึ้นอย่างเห็นได้ชัดเจน ผมก็งงว่าทำไปเป็นอย่างงั้นในเมื่อเราก็ Query ด้วย index ทั้งสอง Field ลองถามเพื่อๆ ที่เก่งด้านนี้ดู เค้าบอกว่าให้สร้าง index สอง Field นี้ต่อกันเป็นแบบนี้ create index indx_ab on my_table (field_a,field_b) ลองสร้างและลอง Query แบบเดิมดูพบว่าเร็วจริงตามที่คาดไว้    แต่ผมเองก็ไม่เข้าใจว่าจะไปส

Hibernate Session บน Weblogic กับ Tomcat มันต่างกันยังไง

บทความเกี่ยวกับ : Hibernate Session บน Weblogic กับ Tomcat มันต่างกันยังไง งานเข้าเต็มๆ ไม่รู้ว่าผมพลาดอะไรกับความรู้เท่าไม่ถึงการณ์ ไม่รู้อารมณ์ใหนอยู่ๆ ก็รื้องาน Project เก่าๆ มา Tuning เล่น พอดีงานที่ทำ Dev บน Tomcat  ส่วน Production เป็น Web Logic ลอง Run บน Dev อัดยิงเข้าไปหนักๆ ผลปรากฏว่าเดี้ยง ก็แปลกใจ ว่ามัน On Production ไปตั้งนานไม่เคยเห็นมันจะเป็นอะไร เลยตัดสินใจมาไล่ code ดูบน Dev พบว่าก็ Close Session ทุกครั้ง ก็ไม่น่าจะผิดอะไร แล้วทำไมมันถึงเดี้ยงได้ ก็เลยลองนั่งไล่ Close  statement , resultset ด้วยเผื่อมันจะเกี่ยว ผลปรากฏว่า หายครับแบ งงๆ หุหุ ว่าแล้วก็ deploy ซะ เท่านั้นแหละ บน Prod เดี้ยงทันทีไล่อยู่นานจึงรู้ว่า เพราะ การ close statement ทำให้ result set ถูก close ไปด้วย T_T ... แต่บน tocat ไม่เป็น 555+ งานเข้าสิครับ สุดท้ายสรุปได้ว่า - ที่บน Prod Weblogic มันไม่เดี้ยง เพราะ การ close Session มันจะ Close resource ทั้งหมด มันก็ดีตรงปลอดภัยดี แต่ถ้าเราเผลอไป Close ก่อนแล้วเอา result set ไปใช้ทีหลังก็จะเดี้ยงแบบนีแ้หละ - บน Dev Tomcat  Clos