go to http://oracle.in.th

Saturday, October 31, 2009

สิ่งที่ DBA ควร Check ทุกวัน

eBusiness 11i/R12 - Daily Checks (for Apps. DBA) - Admin Node

การที่เราเป็น Apps. DBAที่ดีได้ สิ่งหนึ่งที่เราควรจะทำทุกวันคือ Check System ของเราว่า ทุกอย่าง ยังใช้งานได้ปรกติ เรียบร้อยดี
โดยใช้คำสั่งต่างๆต่อไปนี้ในการ Check...

Listener Status
$ lsnrctl status PROD

File System Space Utilization
$ df -h

Operating System - eBusiness DB and Concurrent Process/es
$ ps -ef |grep pmon|grep -v grep
$ ps -ef |grep FNDLIBR|grep -v grep

eBusiness DB Instance
SQL> SELECT instance_name,host_name,TO_CHAR(startup_time,'DD-MON-YYY HH:MM:SS AM') startedat FROM v$instance;

Invalid Objects
SQL> select owner,object_name,object_type from dba_objects where status<>'VALID';

Inactive Users

SQL> select username,command,status,server,osuser,machine,terminal,program,module,action from v$session where status<>'INACTIVE';

Active Sessions
SQL> select inst_id,count(*) from gv$session group by inst_id;

Active Users Detail
SQL> select username,command,status,osuser,process,machine,terminal,program,module,action from v$session where status<>'ACTIVE';

Data Files Status
SQL> select name,status from v$datafile;

Log Files Status

SQL> select * from v$log;

Archiving Errors
SQL> select error from v$archive_dest;

Tablespace Free Space
SQL> select tablespace_name,round (sum(bytes)/1024/1024) Free_Space_MB from dba_free_space group by (TABLESPACE_NAME);

Invalid Indexes

SQL> select index_name,table_name from dba_indexes where status ='INVALID' and owner='APPS';

eBusiness 11i/R12 - Applications Listener Status

$ sh $COMMON_TOP/admin/scripts/PROD_oracle2/adalnctl.sh status

Checking on the status of Report Server
$ sh $ORACLE_HOME/admin/scripts/PROD_oracle2/adrepctl.sh status

Database Connectivity via Apps. user without Connect String

$ sqlplus -S -M "HTML ON TABLE 'BORDER="2"'" "apps/****" @/oracle/appsprod/AOT/appschk.sql > /oracle/appsprod/AOT/output.html
ข้อเขียนนี้ช่วยฉัน:  

Friday, October 30, 2009

[news] ชาว Open source เป็นห่วงอนาคต MySQL

จำนวนกลุ่มคนที่ใช้ Open-source หรือ ซอฟต์แวร์เสรี เริ่มมีเสียงกันมากขึ้น หลังจากที่ Oracle ได้ซื้อ Sun และเข้ารวบกิจการ Open source ของ ฐานข้อมูล MySQL
เป็นที่น่าประหลาดใจว่า กลุ่มของผู้ใช้งาน Open-source เหล่านั้น ไม่ได้มีเสียงคัดค้าน ในการเปลี่ยนแปลงเจ้าของ MySQL จาก Sun Microsystems Inc.ที่เคยเป็นเจ้าของ เปลี่ยนมาเป็น Oracle แทน ซึ่งถูกซื้อไปในราคา 7.4 สิบล้าน US

ซึ่ง Oracle กล่าวว่า การเปลี่ยนแปลงนี้จะไม่ทำให้เกิดการกระทบกระทั่งกับฐานข้อมูล open source แน่นอน

กลุ่มคนผู้สนับสนุน กล่าวว่า มอนตี้ ไวด์เนียส (Monty Widenius) ซึ่งเป็นผู้ก่อตั้ง MySQL ให้ MySQL เป็น open source โดยมี ริชาร์ด สตอลแมน (Richard Stallman) เป็นผู้สนับสนุน
และอื่นๆ ยังไม่มั่นใจในอนาคตของ MySQL ว่าจะผ่านการตรวจสอบจากกรรมาธิการยุโรป (European Commission) หรือไม่ ซึ่ง EU อาจเพิกถอนการจัดการทั้งหมดหรืออย่างน้อยก็บังคับ Oracle ให้ขาย MySQL ออก

"ฉันอาจจะมีความคิดเห็นขัดแย้งในประเด็นนี้แต่ฉันไม่คิดว่า Oracle จะมีพลังพอในด้านการตลาด" มาร์ก ชัทเทิลเวิร์ธ (Mark Shuttleworth) ผู้ก่อตั้งและ CEO ของ Canonical Ltd.,ผู้ผลิตจำหน่ายของอูบุนตูลินุกซ์ (Ubuntu) กล่าว ซึ่งล่าสุดอูบุนตู Server 9.10 ก็ใช้ MySQL อยู่ด้วยเหมือนกัน

อ้างอิง
ข้อเขียนนี้ช่วยฉัน:  

Thursday, October 29, 2009

Real-Time Monitoring SQL กับ Database Control

Feature อีกอันที่ออกมาใหม่พร้อมกับ Oracle Database 11g Release 2 ใน Enterprise Manager คือ Real-Time SQL Monitoring ซึ่งโดยทั่วไป ใน 11g ก็สามารถทำ Real-Time SQL Monitor ได้อยู่แล้ว โดยใช้คำสั่ง

V $ SQL_MONITOR

และ

V $ SQL_PLAN_MONITOR

แต่สำหรับใน Enterprise Manage ของ 11gR2 นี้ มี GUI ที่เราสามารถทำการ Mornitor ได้โดยไม่ต้องพิมพ์ command

เราจะลองยกตัวอย่างสาธิตให้ดู โดย...สมมุติว่าเราต้องการ สร้างตารางการขาย ขนาดใหญ่ (560 M) เพื่อ Select statement ซึ่งกินเวลามากกว่า 30 วินาที

ขั้นแรก เราไปที่ Performance page > Top Activity ตามปรกติ
Real-Time Monitoring SQL - Step1Statement จะมี run หลายครั้งก่อนหน้านี้ ทำให้จะมีตัวเลขมีสถิติแสดงไว้ด้านหลัง

เราสามารถเห็นเวลาในการ run ได้ พร้อมกับในขณะที่ Statement มีการ run อยู่ (20 วินาที) ตามรูปด้านล่าง
Real-Time Monitoring SQL - Step2หลังจากที่ statement ทำการ run เสร็จเรียบร้อยแล้ว ก็จะแสดงดังภาพข้างล่างนี้
Real-Time Monitoring SQL - Step3แค่นี้ ก็จะทำให้ เราสามารถรู้ระยะเวลาในการ run real time ได้อย่างง่ายดาย

อ้างอิง

ข้อเขียนนี้ช่วยฉัน:  

Thursday, October 22, 2009

Ribbit สำหรับ Oracle CRM เปิดให้ทดลองเวอร์ชั่นเบต้า แล้ว

วันนี้เรามี Product ที่เกี่ยวกับ Oracle มาแนะนำอีกแล้ว คือ Ribbit For Oracle CRM ในเวอร์ชั่น Beta


ก่อนอื่นเลย เรามาทำความรู้จักเกี่ยวกับ Ribbit กันก่อนดีกว่า

Ribbit คือ Open Platform สำหรับการติดต่อสื่อสารโดยใช้ Voiceware Application ซึ่ง Oracle ได้เลือก Application นี้ ให้เข้ามามีส่วนร่วมใน Circle Program ของ Oracle โดย Ribbit สำหรับ Oracle นี้ จะเข้ามามีบทบาทในด้าน Oracle CRM On Demand เพราะว่า Ribbit สามารถเปลี่ยนจากเสียง ให้เป็นข้อความแล้วส่งเป็น SMS หรือ Email ให้ลูกค้าได้

สำหรับบริษัทที่ใช้ CRM ในการจัดการธุรกิจ มีมุมมองว่า Application นี้ ไม่ใช่เป็นสิ่งที่ มีหรือไม่มี ใช้หรือไม่ใช้ ก็ได้ แต่มันเป็น “ยิ่งกว่าสิ่งจำเป็น” สำหรับยุคที่โทรศัพท์มือถือ เข้ามามีบทบาทในการดำรงชีวิตมากขึ้น (Mobile Addict) ดังนั้น Application เหล่านี้ จะทำให้องค์กรที่ให้บริการทางด้าน CRM สามารถเพิ่มศักยภาพ ในการบริการและการขายได้มากขึ้น ด้วยการใช้ เทคโนโลยีที่น้อยลง

ผู้ที่ต้องการจะฝากข้อความเสียงส่วนใหญ่ มักจะโทรศัพท์ไปที่เบอร์นั้น แล้วฝากข้อความเสียงไว้ เพราะว่ามันง่ายมากกว่าการพิมพ์หรือส่ง sms แต่ในบางที ผู้ที่ได้รับข้อความจะต้องเสียเวลาเพื่อทำการโทรไปเพื่อฟังข้อความเสียงเหล่านั้น หรือบางทีผู้ที่ได้รับข้อความอาจลบข้อความเสียงไป ซึ่งอาจทำให้พลาดข้อความสำคัญได้

Ribbit For Oracle จะช่วยทำให้ผู้ใช้งาน ไม่สิ้นเปลืองเวลาในการโทรไปฟังข้อความเสียงที่ฝากไว้ในโทรศัพท์หรืออาจะเป็นกังวลกับข้อความเสียงที่ถูกลบ โดย ผู้ใช้งานจะทำการโทรศัพท์โดยออกคำสั่งเป็นเสียงเพื่อจดบันทึกต่างๆแทนการพิมพ์ แล้วข้อมูลเสียงนั้น เช่น การโทรศัพท์ (Calls) การส่งข้อความเสียง (Voicemail) และการบันทึกเสียง (Voice Memo) จะไหลเข้าสู่ระบบ CRM On Demand ของ Oracle พร้อมกับคำอธิบาย

เร็วๆนี้ TMCnet มีข่าวว่า Ribbit ได้ประกาศว่า Application Ribbit สำหรับการประชุม (Conferencing) และ Ribbit สำหรับข้อความเสียง(voice message) ได้ถูกเลือกให้เป็น Feature หนึ่งของ Google Wave ซึ่ง Ribbit สำหรับการประชุม (Conferencing) จะช่วยให้ผู้เข้าร่วมประชุม Conference สามารถสื่อสารโดยส่งเสียงได้พร้อมกันแบบเรียลไทม์(Real-Time) ใน google wave ซึ่ง Application นี้ ทำให้เหมือนกับการประชุมจริงๆ คือคนสามารถใช้เสียงในการพูดได้เหมือนเวลาพิมพ์เลยทีเดียว นอกจากนั้น Ribbitสำหรับการประชุม(Conferencing)นี้ ยังอนุญาตให้ผู้ใช้งาน สามารถสร้างการประชุมใน google wave ได้หลายการประชุม มี feature เสียงเงียบ ถือสายรอ หรือยกเลิกการประชุมได้ด้วยเช่นกัน


อ้างอิง
ข้อเขียนนี้ช่วยฉัน:  

Wednesday, October 21, 2009

การทำ Auto Startup Database, Listener และ Enterprise Manager

ปกติเมื่อทำการ Install Database นั้น เมื่อทำการ Boot OS จะไม่ได้มีการตั้งให้ Auto Startup แต่เราสามารถตั้งค่าให้มีการ Auto Startup ได้ โดยทำตามขั้นตอนต่างๆดังต่อไปนี้
  1. ขั้นแรก ทำการเข้าสู่ระบบด้วย User Root
  2. จากนั้น แก้ไขไฟล์ Oratab ซึ่งอยู่ใน /etc/oratab โดยแก้ไขที่บรรทัดล่างสุด จาก N ให้เปลี่ยนเป็น Y จะเป็นการกำหนดให้ Database มีค่า Default เป็น Auto Startup

    ORCL:/oracle/db11201:Y
  3. ทำการสร้าง Script ชื่อ oracle ไว้ที่ /etc/init.d ดังนี้
  4. #!/bin/bash
    # Initial file for auto starting and stopping database
    
    # Source function library.
    
    . /etc/rc.d/init.d/functions
    
    ORACLE_OWNER=”oracle”
    ORACLE_HOME=”/oracle/db11201″
    
    case “$1″ in
    start)
    echo -n $”Starting Oracle DB:”
    su – $ORACLE_OWNER -c “$ORACLE_HOME/bin/dbstart $ORACLE_HOME”
    echo “OK”
    ;;
    stop)
    echo -n $”Stopping Oracle DB:”
    su – $ORACLE_OWNER -c “$ORACLE_HOME/bin/dbshut $ORACLE_HOME”
    echo “OK”
    ;;
    *)
    echo $”Usage: $0 {start|stop}”
    esac
  5. ทำการ Add ให้ Oracle เข้าไปอยู่ใน Startup Process โดยใช้คำสั่งต่อไปนี้
  6. chmod 750 oracle
    
    chkconfig --add oracle
  7. เสร็จสิ้นการทำให้ฐานข้อมูลมีการ Auto Startup เมื่อทำการ Boot OS
  8. ถ้าต้องการให้มีการ Auto Startup Listener ก็ให้ทำการสร้าง Script ชื่อ Listener ไว้ที่ /etc/init.d เช่นเดิมดังนี้
  9. #!/bin/bash
    #
    # Initial file for auto starting and stopping Listener
    
    # Source function library.
    
    . /etc/rc.d/init.d/functions
    
    ORACLE_OWNER=”oracle”
    ORACLE_HOME=”/oracle/db11201″
    
    case “$1″ in
    start)
    echo -n $”Starting Oracle Listener:”
    su – $ORACLE_OWNER -c “$ORACLE_HOME/bin/lsnrctl start”
    echo “OK”
    ;;
    stop)
    echo -n $”Stopping Oracle Listener:”
    su – $ORACLE_OWNER -c “$ORACLE_HOME/bin/lsnrctl stop”
    echo “OK”
    ;;
    *)
    echo $”Usage: $0 {start|stop}”
    esac
  10. จากนั้น ทำการ Add ให้ Listener เข้าไปอยู่ใน Startup Process โดยใช้คำสั่ง
  11. chmod 750 Listener
    
    chkconfig --add Listener
  12. ถ้าต้องการให้มีการ Auto Startup Enterprise Manager ก็ให้ทำการสร้าง Script ชื่อ EM ไว้ที่ /etc/init.d เช่นเดิมดังนี้
  13. #!/bin/bash
    #
    # Initial file for auto starting and stopping Enterprise Manager
    
    # Source function library.
    
    . /etc/rc.d/init.d/functions
    
    ORACLE_OWNER=”oracle”
    ORACLE_HOME=”/oracle/db11201″
    
    case “$1″ in
    start)
    echo -n $”Starting Oracle EM DB Console:”
    su – $ORACLE_OWNER -c “$ORACLE_HOME/bin/emctl start dbconsole”
    echo “OK”
    ;;
    stop)
    echo -n $”Stopping Oracle EM DB Console:”
    su – $ORACLE_OWNER -c “$ORACLE_HOME/bin/emctl stop dbconsole”
    echo “OK”
    ;;
    *)
    echo $”Usage: $0 {start|stop}”
    esac
  14. และ ทำการ Add ให้ EM เข้าไปอยู่ใน Startup Process โดยใช้คำสั่ง
  15. chmod 750 EM
    
    chkconfig --add EM
เพียงเท่านี้ เมื่อเรา Install Database เมื่อไหร่ OS เราก็จะทำการ Startup ให้โดยอัตโนมัติ
ข้อเขียนนี้ช่วยฉัน:  

Monday, October 19, 2009

มี Slide Practice งาน OpenWorld มาฝาก

วันนี้ เรามี Slide Presentation ที่แสดงในงาน OpenWorld มาฝากกัน โดยหัวข้อของ Slide ของ Presentation คือ Oracle ADF: Oracle Fusion Applications Teams


คุณสามารถ Download Practice ได้ที่นี่ BestPracticesWorkspaces.zip
ข้อเขียนนี้ช่วยฉัน:  

Annotation Part#3 (Final)

บทความสุดท้ายนี้ เราจะกล่าวถึง 3 ตัวที่เหลือ ก็คือ Default Value, Single Value Annotation, และ Marker Annotation ครับ

Default Value
บางครั้ง element ใน annotation เราสามารถกำหนดค่าเริ่มต้นให้กับ element ได้โดยใช้คำสงวนว่า default แล้วตามด้วยค่าที่ต้องการให้เป็นค่าเริ่มต้นของ element ดังตัวอย่างด้านล่าง
 () default "Default" ; 
เราลองไปดูในตัวอย่างใน file CTest.java โดยในนี้จะมีการประกาศ element ให้มีค่าเริ่มต้นไว้ทั้งหมด
@Retention(RetentionPolicy.RUNTIME)
@interface Author  {
String name() default "John Rambo" ;
String email() default "john@rambo.com";
}
จากนั้นลอง run ดูตามใน code ตัวอย่าง


Single Value Annotation
ในบางครั้งที่ annotation ของเรามี element แค่เพียง element เดียว ทำให้เราก็ไม่อยากจะมากำกับชื่อของ element ดัง เช่น @Author สังเกตได้ว่ามีเพียงแค่ element เดียวก็จริงแต่เวลาที่เราเรียกใช้นั้นเรายังต้องระบุชื่อในการกำหนด element
@Author( name = "John Rambo" )
แต่เราจะเรียกแบบไม่ระบุชื่อแบบตัวอย่างด้านล่างนี้ไม่ได้
@Author("John Rambo")
การที่เรามี element แค่เพียง element เดียว และเราต้องการที่จะไม่ต้องใส่ชื่อของ element ในตอนใช้ annotation เราต้องประกาศ element ที่มีชื่อว่า value
String value();
จากนั้นเราลองไปดูในตัวอย่างกัน
@Retention(RetentionPolicy.RUNTIME)
@interface Author {
String value();
}
จากนั้นเราลองเรียกใช้ดู
@Author("John Rambo")
class D { }

class DTest {
public static void main(String args[]) {
Author a = D.class.getAnnotation(Author.class);
System.out.println(a.value());
}
}
สังเกตเวลาเราเอาค่าออกมานั้นก็ยังใช้วิธีเหมือนเดิม

NOTE
ลองดูว่าเราสามารถประกาศ element value ปนกับ element อื่นได้ไหม ถ้าได้เราจะยังสามารถประกาศ Annotation แบบที่ไม่ต้องระบุชื่อ element ได้อีกไหม (คำตอบคือได้**แต่ต้องระบุค่า element อื่นให้มีค่าเป็น default ด้วย**)


Marker Annotation
เป็น annotation ที่ไม่มี element อะไรทั้งสิ้น โดยที่มีไว้เหมือนเป็นจุดมุ่งหมายเพื่อทำการ mark ยกตัวอย่างเช่น
// ETest.java   Marker
@Retention(RetentionPolicy.RUNTIME)
@interface John{ }

@Retention(RetentionPolicy.RUNTIME)
@interface Jack{ }

@John
class A {
@Jack
public void f() { }
}
ในตัวอย่างนี้มี @John และ @Jack ซึ่งเป็น annotation ที่ไว้ใช้ประกาศว่าใครเป็นผู้สร้าง source code อะไรซึ่งคล้ายกับ @Author เพียงแต่การต้องระบุ element name ลงไปเพื่อเป็นการแยกว่าเป็นใคร แต่ Mark Annotation นั้นใช้ annotation เป็นตัวแยกเลย ซึ่งวิธีการใช้ก็จะแตกต่างกันนิดหน่อย
class ETest {
public static void main(String args[]) throws Exception {
System.out.println(A.class.isAnnotationPresent(John.class));
System.out.println(A.class.isAnnotationPresent(Jack.class));

Method m = A.class.getMethod("f");
System.out.println(m.isAnnotationPresent(John.class));
System.out.println(m.isAnnotationPresent(Jack.class));
}
}
ของเดิมเราจะเอาค่าของ element ใน annotation มาใช้แต่ในของ Mark Annotation นั้นเราเอา annotation มาใช้เปรียบเทียบดังใน code ตัวอย่าง


Reference from : dr. Werasak Suengtaworn

Compose by : @plaumkamon
ข้อเขียนนี้ช่วยฉัน:  

Friday, October 16, 2009

Larry Young

ช่วงนี้กำลังมีงาน OpenWorld จึงได้เห็น Larry Ellison อยู่บ่อย ๆ
วันนี้เข้าไปดู "Photos: Inside Oracle OpenWorld" ที่ C|NET จึงได้เห็นว่า Larry เริ่มดูแก่ตัวลงไปมาก


แต่ก็ยังไม่น่าตกใจ เท่ากับเห็นรูป Steve Jobs ผอมมากหลังจากไปรักษาตัวอยู่ 6 เดือน


จากที่เห็น Larry ในปัจจุบัน, จึงอยากดูรูป Larry สมัยหนุ่ม ๆ ว่าหน้าตาเป็นอย่างไร
ใช้ Google Image Search เจอรูปนี้


สมัยหนุ่ม ๆ ดูหน้าตาใจดีมาก
ส่วนคนข้าง ๆ Larry คือใคร มีใครพอรู้บ้าง?
@chootham, @surachart พอรู้มั้ย?
ข้อเขียนนี้ช่วยฉัน:  

Thursday, October 15, 2009

[Event] สัมมนา Oracle Technology Network DBA Day

Get insight with Oracle Database 11g Release2
หลังจากที่ Oracle ได้จัด Event เรื่อง Oracle Technology Summit ในวันที่ 29 ตุลาคม 2552 นี้แล้ว ในวันรุ่งขึ้น หรือวันที่ 30 ตุลาคม 2552 Oracle ก็ยังจัดสัมมนาอีกเรื่องนึง คือ Oracle Technology Network DBA Day เป็นลงลึกไปทาง Technical feature และ Tools ต่างๆของ Oracle Database 11g Release 2 ซึ่ง Database Administrators ทั้งหลาย ไม่ควรพลาดเลยทีเดียว ซึ่ง event นี้ จัดที่ โรงแรมคอนราด ห้อง แกรนด์บอลลูม 2 และ 3 (CONRAD -Grand Ballroom 2-3) ในวันที่ 30 ตุลาคม 2552 เวลา 08:00 น. - 16:35 น.

ในการสัมมนานี้ จะมี หัวข้อต่างๆที่น่าสนใจ ตั้งแต่...
  • อธิบายเกี่ยวกับ Oracle Database 11g R2
  • เรียนรู้วิธีการปรับปรุงสมรรถนะของฐานข้อมูลให้ใช้ประสิทธิภาพได้เต็มที่
  • เพิ่มความเข้าใจเกี่ยวกับการสร้างกลุ่มของข้อมูล (Cluster) ขนาดใหญ่ด้วยวิธีง่ายๆ
  • การรวม Oracle Clusterware อย่างมีประสิทธิภาพ
  • เรียนรู้เกี่ยวกับการ ติดต่อกับฐานข้อมูล Oracle RAC กับ Address เดียว (Single Client Access Name)
  • ทำความรู้จักอย่างละเอียดของ Feature ใหม่ๆกับ Automatic Storage
  • การ Upgrade ง่ายๆ ใน Oracle Database 11g Release 2
ลงทะเบียนเข้าร่วมงาน Oracle Technology Network DBA Day
http://www.oraclethai.com/dbaday/

สามารถดูรายละเอียดเพิ่มเติมได้ที่
http://www.oracle.com/global/ea/start/th/2009/dbaday/einvite-otn-en.html

ดู Events อื่นๆของ Oracle ได้ที่นี่ More Events

อ้างอิง
ข้อเขียนนี้ช่วยฉัน:  

Wednesday, October 14, 2009

[Event] สัมมนา Oracle Technology Summit


ภายในเดือนตุลาคมนี้ ทาง Oracle มีการจัด Event ที่น่าสนใจในประเทศเรา อยู่หลาย Events แต่ในบทความนี้ เราจะกล่าวถึง สัมมนาฟรี ที่ Oracle จัดขึ้นที่ โรงแรมคอนราด ห้อง แกรนด์บอลลูม (CONRAD - Grand Ballroom) ในวันที่ 29 ตุลาคม 2552 เวลา 08:00 น. - 16:35 น. โดยหัวข้อการสัมมนาครั้งนี้คือ

“Oracle Technology Summit” นวัตกรรมใหม่จาก Oracle เครื่องมือแห่งความสำเร็จที่ผู้นำเช่นคุณควรรู้

เชิญร่วมงาน Oracle Technology Summit เพื่อร่วมเป็นส่วนหนึ่งในการเปิดตัววัตกรรมใหม่ล่าสุด Oracle Database 11gR2 และ Oracle Fusion Middleware 11g

การสัมนาจะอัดแน่นไปด้วยการบรรยายเกี่ยวกับกลยุทธและคุณลักษณะใหม่ล่าสุดของ Oracle Technology นอกจากนี้แล้ว คณะผู้บรรยายจะนำเสนอแนวคิดอันลึกซึ้งที่แสดงให้เห็นถึงความเกี่ยวข้องกันระหว่าง Oracle Database 11gR2 และ Fusion Middleware 11g ที่มีต่อทิศทางและแผนการต่างๆของ ไอทีและองค์กร

นอกจากนั้น คุณจะได้ร่วมเรียนรู้ ว่านวัตกรรมใหม่ล่าสุดของ Oracle จะช่วยให้องค์กรของท่าน
  • ทำงานได้อย่างรวดเร็วคล่องตัว และตอบสนองทุกความต้องการได้อย่างรวดเร็ว
  • มีการให้บริการที่มีความยืดหยุ่น และมีประสิทธิภาพมากขึ้น ภายใต้ความหลายหลายทางด้านสิ่งแวดล้อมทางไอที
  • พัฒนานวัตกรรมใหม่ๆด้วยต้นทุนที่ต่ำลง
  • บริหารจัดการงบประมาณทางไอทีและการขยายตัวของฐานข้อมูลได้ดียิ่งขึ้น
  • พัฒนากระบวนการทำงานทางไอทีให้ง่ายขึ้นในขณะที่ความปลอดภัยทางด้านไอทีเพิ่มสูงขึ้น
ลงทะเบียนเข้าร่วมงานวันนี้ เพื่อเป็นส่วนหนึ่งของานสัมมนาระดับผู้นำ
http://www.oraclethai.com/techsummit/

สามารถดูรายละเอียดเพิ่มเติมได้ที่
http://www.oracle.com/global/ea/start/th/2009/10h1techsummit/einvite-10h1techsummit-th.html

Event ดีๆของ Oracle แบบนี้ ไม่ควรพลาด
ดู Event อื่นๆของ Oracle ได้ที่นี่ More Events

อ้างอิง
ข้อเขียนนี้ช่วยฉัน:  

Tuesday, October 13, 2009

[news]แลร์รี่ ท้าแจก $10 ล้าน US ถ้า Oracle ช้ากว่า IBM

หลังจากที่ Oracle ได้ประกาศเผยโฉม Sun+Oracle ตัวใหม่ โดยโฆษณาว่า System ตัวนี้เร็วกว่า IBM หลายเท่า เท่านั้นยังไม่พอ แลร์รี่ ยังได้จัด "Oracle $10 Million Challenge" ให้ ทั่วโลกได้ทดสอบกันว่า Oracle เร็วกว่า IBM จริง

แลร์รี่ เอลิสัน (Larry Ellison) ซีอีโอ ออราเคิลได้กล่าวในงาน Oracle OpenWorld 2009 ว่า เขามั่นใจใน Platforms ของเขา และเขายังประกาศอีกด้วยว่า องค์กรใด ที่สามารถโชว์ได้ว่า Oracle DB ประมวณผลช้ากว่า IBM 2 เท่า ใน Appilcation เดียวกัน เขาจะแจกเลยทันที $10 ล้าน US และไม่เพียงแต่ประกาศให้องค์กรและคนทั่วไปมารวมท้า แต่แลร์รี่ เอง ยังบอก IBM ด้วยว่า "IBM, you're welcome to enter"

ในตอนสุดท้าย แลร์รี่ กล่าวปิดท้ายไว้ว่า "เรากำลังเดินหน้าเพื่อแข่งขันกับ IBM ทางด้านระบบธุรกิจ (Business system) และเราคิดว่าการรวมตัวของ Sun กับ Oracle ครั้งนี้ เป็นการรวมตัวกันอย่างเหมาะสมและครบครัน เพื่อที่จะแข่งขันอย่างประสบความสำเร็จ กับยักษ์ใหญ่อย่าง IBM"

...ต่อจากนี้ไป สงครามระหว่าง Oracle และ IBM คงได้เริ่มขึ้นอย่างจริงจัง!!

สำหรับผู้ที่สนใจ ร่วมพิสูจน์ความเร็ว "Oracle $10 Million Challenge" สามารถอ่านรายละเอียดได้ที่นี่ Your Company Could Win $10 Million!


อ้างอิง
ข้อเขียนนี้ช่วยฉัน:  

Tuesday, October 6, 2009

Create, Drop & Recreate Oracle Enterprise Manager

ในกรณีที่ต้องการทำการสร้าง (Create), ลบ (Drop) หรือ ลบแล้วสร้างใหม่ (Recreate) Enterprise Manager (EM) ไม่ว่าจะมีสาเหตมาจากการ ไม่ได้สร้างไว้ตั้งแต่แรกหรือสร้างไว้แล้วมีปัญหาใดๆก็ตาม สามารถทำได้โดยการใช้คำสั่งต่อไปนี้ครับ

1. การสร้าง Enterprise Manager

emca -config dbcontrol db -repos create

เมื่อทำการรันคำสั่งแล้วจะพบข้อความต่างๆดังนี้ ให้ใส่ข้อมูลตามความเป็นจริงลงไป

Enter the following information:

Database SID:

Listener port number:

Password for SYS user:

Password for DBSNMP user:

Password for SYSMAN user:

Email address for notifications (optional):

Outgoing Mail (SMTP) server for notifications (optional):

2. การลบ Enterprise Manager

emca -deconfig dbcontrol db -repos drop

เมื่อทำการรันคำสั่งแล้วจะพบข้อความต่างๆดังนี้ ให้ใส่ข้อมูลตามความเป็นจริงลงไป

Enter the following information:

Database SID:

Listener port number:

Password for SYS user:

Password for SYSMAN user:

3. การลบและสร้างใหม่ Enterprise Manager

emca -config dbcontrol db -repos recreate

เมื่อทำการรันคำสั่งแล้วจะพบข้อความต่างๆดังนี้ ให้ใส่ข้อมูลตามความเป็นจริงลงไป

Enter the following information:

Database SID:

Database Control is already configured for the database

You have chosen to configure Database Control for managing the database

This will remove the existing configuration and the default settings and perform a fresh configuration

Do you wish to continue? [yes(Y)/no(N)]: Y

Listener port number:

Password for SYS user:

Password for DBSNMP user:

Password for SYSMAN user:

Email address for notifications (optional):

Outgoing Mail (SMTP) server for notifications (optional):

ในการสร้างหรือสร้างใหม่ Enterprise Manager นั้น จะใช้เวลาค่อนข้างนานครับ บางทีอาจจะใช้เวลาครึ่งชั่วโมงถึง 1 ชั่วโมงเลยทีเดียว จึงควรจัดสรรเวลาให้เหมาะสมและไม่มีผลกระทบต่อระบบการทำงานด้วยครับ
ข้อเขียนนี้ช่วยฉัน:  

Friday, October 2, 2009

Annotation Part#2

Class Annotation

เราจะมาดูตัวอย่างการใช้กันใน class A
// A.java Class Annotation

import mytag.Author;
import mytag.Version;

@Author( name = "John Rambo" )
@Version( major = 1, minor = 1 )

public class A { }

ซึ่งการประกาศ annotation นั้นจะไปประกาศหน้า class เพื่อบอกว่าใครคือผู้สร้าง class นี้และเป็น version อะไร สังเกตว่า annotation จะประกาศกี่อันก็ได้ จากนั้นเราจะมาดูวิธีเรียกใช้ annotation กันว่า ว่ามีวิธีเรียกยังไงใน class ATest

โดยก่อนที่เราจะเรียกใช้เราลอง compile file A.java ดูก่อน โดยเปิด cmd ขึ้นมาแล้วไปยัง directory anno ดังตัวอย่างรูปด้านล่าง

directory anno

ให้ compile class ใน package mytag ทั้งหมดก่อนโดยใช้คำสั่งดังนี้
javac mytag\*.java

จากนั้นลอง compile A.java โดยคำสั่ง
javac A.java

จากนั้นเราลองดูขนาด file A.class กันว่ามีขนาดเท่าไรโดยใช้คำสั่ง
dir A.class

จะพบว่ามันมีขนาดมาถึง 311 byte ถือว่าเยอะมากสำหรับ class ธรรมดาโดยปกติจะประมาณ 100 กว่า byte ทดสอบได้โดย comment annotation ใน A.java ออกแล้วลอง compile ใหม่ดูจะพบว่าเนื้อที่ของ A.class จะเหลือเพียง 176 byte เท่านั้น ที่เป็นเช่นนี้เพราะมันจะเก็บ element ของ annotation เหล่านี้ไว้ใน A.class

ต่อมาลองเรียกใช้ annotation กันซึ่ง class แรกที่เราจะลองนั้นคือ ATest.java
// ATest.java
import mytag.Author;
import mytag.Version;

class ATest {
public static void main(String args[]) {
Author a = A.class.getAnnotation(Author.class);
System.out.println("Author: " + a.name());
Version v = A.class.getAnnotation(Version.class);
System.out.println("Version: " + v.major() + "." + v.minor());
}
}

การจะเอา annotation ที่ติดอยู่ใน class ออกมา เราจะเรียกใช้ property class ซึ่งติดอยู่ใน class ทุก class ที่เราสร้างขึ้นมา โดย property class จะไปอ้างถึง file A.class ที่เราได้มาจากการ compile A.java จากนั้นเราใช้ method getAnnotation(Author.class) โดยตอน get นั้นต้องใส่ property class ของ annotation ที่เราต้องการจะอ่านด้วยจากนั้นเมื่อได้ annotation แล้วเราจึง get ค่าต่างๆออกมากตามที่เรากำหนดไว้ใน element ( การที่เราสามารถดึงค่า annotation ที่อยู่ใน class ออกมาได้นั้นเป็นเพราะ เราใช้ Refection API เข้ามาช่วย ในตัวอย่างนี้เป็นเพียงแค่ เศษเสี้ยวของความสามารถของ Reflection API เท่านั้น สามารถศึกษาต่อได้ ที่นี่ )
System.out.println("Author: " + a.name());
System.out.println("Version: " + v.major() + "." + v.minor());


Class Member Annotation

จากที่เราลองประกาศ annotation บน class แล้ว เราลองประกาศ annotation บน attribute และ method ดูบ้าง ลองไปดูใน code BTest.java ดู ในนั้นจะมี class B อยู่ โดย class B ใน BTest.java จะมีการประกาศ annotation บน attribute และ method ดัง code ด้านล่าง เพื่อเป็นตัวบอกว่า attribute หรือ method เหล่านี้ใครเป็นผู้สร้าง
// part of BTest.java
class B {
@Author( name = "John Rambo" )
public int x;
@Author( name = "Jack Ripper" )
public static void f() { }
}

จากนั้นเราลองดึงเอา annotation ออกมาใช้ โดยวิธีการดึงและการเรียกออกมา จะมีวิธีการเรียกที่แตกต่างกับวิธีของ Class Annotation ดัง code ด้านล่าง
// part of BTest.java
public static void main(String args[])
throws NoSuchMethodException, NoSuchFieldException {
Field f = B.class.getField("x");
Author fanno = f.getAnnotation(Author.class);
System.out.println(fanno.name());

Method m = B.class.getMethod("f");
Author manno = m.getAnnotation(Author.class);
System.out.println(manno.name());
}

ถ้าลองสังเกตจากตัวอย่างที่แล้ว การดึง annotation ในประเภท Class Annotation เราสามารถดึงออกมาเป็น Object ของ annotation นั้นได้โดยตรงๆ แต่การดึง annotation ในประเภท Class Member Annotation นั้นไม่ใช่ การจะดึงออกมาต้องดึงออกมาเป็น object ของ java.lang.reflect.Field ถ้าหากเราจะดึง annotation ของ attribute แต่ถ้าเป็นการดึง annotation ของ method เราต้องดึงออกมาเป็น object ของ java.lang.reflect.Method
Field f = B.class.getField("x");
Method m = B.class.getMethod("f");

โดยการเรียก object ของ java.lang.reflect.Field และ java.lang.reflect.Method นั้น เราจะเรียกผ่าน method getField() และ getMethod() ตามลำดับโดยต้องระบุชื่อของ attribute หรือ method ที่ต้องการเรียก annotation ของ attribute หรือ method นั้นๆ จากนั้นเราจึงเอา object ของ java.lang.reflect.Field และ java.lang.reflect.Method นั้นมาดึงเอา annotation ออกมาอีกที
Author fanno = f.getAnnotation(Author.class);
Author manno = m.getAnnotation(Author.class);

ซึ่งจากทั้งสองตัวอย่างคงจะเข้าใจ annotation มากขึ้น ซึ่งเราจะมาเล่นของลูกเล่นใน annotation กันต่อ

คราวหน้า เราจะมาต่อกันด้วย Default Value นะครับ

Reference from : dr. Werasak Suengtaworn

Compose by : @plaumkamon
ข้อเขียนนี้ช่วยฉัน:  

Thursday, October 1, 2009

[news] Larry Ellison รวยอันดับ 3 ของ Forbes 400

นิตยสาร Forbes จัดอันดับ 400 มหาเศรษฐีของสหรัฐประจำปีนี้
Larry Ellison CEO ของ Oracle รวยเป็นอันดับที่ 3
ส่วนอันดับที่ 1-2 ก็ยังเป็น Bill Gates และ Warren Buffett เช่นเดิม
คู่หูแห่ง Google ได้เป็นอันดับ 11 ร่วม

Rank
Name
Net Worth ($mil)
Age
Residence
Source
1
William Gates III
50,000
53
Medina
Microsoft
2
Warren Buffett
40,000
79
Omaha
Berkshire Hathaway
3
Lawrence Ellison
27,000
65
Redwood City
Oracle
4
Christy Walton & family
21,500
54
Jackson
Wal-Mart inheritance
5
Jim C. Walton
19,600
61
Bentonville
Wal-Mart
6
Alice Walton
19,300
60
Fort Worth
Wal-Mart
7
S. Robson Walton
19,000
65
Bentonville
Wal-Mart
8
Michael Bloomberg
17,500
67
New York
Bloomberg
9
Charles Koch
16,000
73
Wichita
manufacturing, energy
9
David Koch
16,000
69
New York
manufacturing, energy
11
Sergey Brin
15,300
36
Palo Alto
Google
11
Larry Page
15,300
36
San Francisco
Google
13
Michael Dell
14,500
44
Austin
Dell
14
Steven Ballmer
13,300
53
Seattle
Microsoft
15
George Soros
13,000
79
Westchester
hedge funds
16
Donald Bren
12,000
77
Newport Beach
real estate
17
Paul Allen
11,500
56
Mercer Island
Microsoft, investments
17
Abigail Johnson
11,500
47
Boston
Fidelity
19
Forrest Edward Mars
11,000
78
McLean
candy, pet food
19
Jacqueline Mars
11,000
70
Bedminster
candy, pet food
19
John Mars
11,000
73
Arlington
candy, pet food
22
Carl Icahn
10,500
73
New York
leveraged buyouts
23
Ronald Perelman
10,000
66
New York
leveraged buyouts
24
George B. Kaiser
9,500
67
Tulsa
oil & gas, banking
24
Philip Knight
9,500
71
Beaverton
Nike

สามารถดูรายละเอียดเพิ่มเติมครบ 400 คนได้ที่นี่ "The 400 Richest Americans 2009"
ข้อเขียนนี้ช่วยฉัน: