Вы находитесь на странице: 1из 88

SEPTEMBER/OCTOBER 2011

Storing the Information Explosion How Oracles ash, disk, and tape storage technologies help IT shops handle todays storage challenges /23 All Aboard Build train models for navigation in bounded task ows /55 Distinctive Database Development Use Entity Framework with Oracle Data Provider for .NET /59 Working with Strings Part 3 in a series of articles on understanding and using PL/SQL /65 On Caching and Evangelizing SQL Our technologist caches scalar subqueries, votes for SQL, and recommends technology and community /74

SERVERS ON THE CUTTING EDGE


Bridging the Integration Gap Engineered for Innovation Moving Java Forward

Organizations deploy x86 blade servers from Oracle to reduce costs and sharpen business services

Keep information in sync with Oracle data integration solutions

Oracle OpenWorld Returns to San Francisco October 26

JavaOne Hits San Francisco October 26

Trusted Trusted Future Future Protection Protection

Fujitsu's SPARC ENTERPRISE Fujitsu's SPARC ENTERPRISE delivers Trust and Business Continuity delivers Trust and Business Continuity
Fujitsu and Oracle together are creating UNIXUNIX history through progressive delivery of Fujitsu and Oracle together are creating history through progressive delivery of server solutions with with SPARC ENTERPRISE. customer commitment is reflected in in server solutions SPARC ENTERPRISE. Our Our customer commitment is reflected overwhelming performance and excellent reliability that that protect, grow, and expand, overwhelming performance and excellent reliability will will protect, grow, and expand, the unique value of your your business assets. the unique value of business assets. Please visit visit : www.fujitsu.com/oracle/ Please : www.fujitsu.com/oracle/
2011 FujitsuFujitsu Limited. All reserved. Fujitsu, the FujitsuFujitsu logo and SPARC Enterprise are registered trademarks or trademarks of 2011 Limited. All rights rights reserved. Fujitsu, the logo and SPARC Enterprise are registered trademarks or trademarks of FujitsuFujitsu Limited UnitedUnited and other countries. UNIX isUNIX is a registered trademark of open in the UnitedUnited and and Limited in the in the States States and other countries. a registered trademark of open group group in the States States other countries. Oracle Oracle and Java are registered trademarks of Oracle and/or its affiliates. All SPARC trademarks are used under other countries. and Java are registered trademarks of Oracle and/or its affiliates. All SPARC trademarks are used under licenselicense and are registered trademarks of SPARC International. the UnitedUnited and other countries. and are registered trademarks of SPARC International. Inc. in Inc. in the States States and other countries.

FEATURED CONTENT VOLUME XXV - ISSUE 5

CONTENTS

SERVERS ON THE CUTTING EDGE


/40
Once deployed only as Web servers and in less-critical deployment scenarios, x86-based servers are now successfully running business-critical applications. x86 chips power flexible rackmount and blade servers in datacenters and cloud computing environmentsand are the processing foundation of cutting-edge hardware, including database and storage appliances such as Oracle Exadata. Find out how the Department of Health Care Policy at Harvard Medical School and CBOE Holdings are reducing costs and sharpening business services with x86 servers from Oracle. By David A. Kelly

Bridging the Integration Gap / 48


With organizations moving to cloud computing, facing massive data volumes, and needing realtime data and reporting, its time to take a step beyond viewing data integration as a utility and see it as something more. Learn how IQNavigator and Avea are eliminating data bottlenecks and keeping information in sync with strategic data integration solutions from Oracle. By David A. Kelly

Engineered for Innovation / 8


Find out whats in store at Oracle OpenWorld, October 2-6.

Moving Java Forward / 10


See whats on the agenda at JavaOne, October 2-6.

SEPTEMBER/OCTOBER 2011 ORACLE.COM/ORACLEMAGAZINE

Learn more about Oracle technology with Safari Books Online

Use your QR code reader to access information about a group trial or visit safaribooksonline.com/oracletrial

SEARCH LESS. DEVELOP MORE.


With the intelligent library in the cloud.
Visit our booth at Oracle OpenWorld in October

Departments VOlume XXV - ISSue 5

up front / 6
frOm the eDitOr / 6
whats wrong and whats missing
Tom Haunert

community / 26
partner news / 26 BOOk Beat / 26 cOmmunity Bulletin / 29
Oracle technology Network redefines what it means to be a member of the club. Justin Kestelyn

technology / 55
all aboard

comment / 84
in the fielD / 84
education insurance
Stay current, and stay employed: five easy ways for technologists to update their skill sets. Mike Riley

Oracle aDf / 55
build train models for navigation in bounded task flows. Frank Nimphius

mashup / 7
News, views, trends, and tools.

worthy of membership

Oracle Data prOviDer fOr .net / 59

architect / 30
getting schooled
education, training, and experience are stepping stones to a career as a software architect. Bob Rhubart

Distinctive Database Development

use entity Framework with Oracle Data provider for .Net. Christian Shay

at Oracle / 12
events / 12
Find out about upcoming technology and industry events.

pl/sQl 101 / 65

working with strings

up clOse / 32 global explorer


OAuG president mark clark wants to expand the organizations reach beyond North America. Caroline Kvitka

part 3 in a series of articles on understanding and using pl/SQl Steven Feuerstein

resOurces / 15
Your guide to Oracle Webcasts, podcasts, white papers, and more

suppOrt / 71 troubleshooting internal errors


A guide to assessing and resolving OrA-600 and OrA-7445 errors Tamzin Oscroft

Briefs / 18
the latest product news

peer-tO-peer / 34
in with the new
Julien Gabel, Fahd mirza, Frits Hoogland Blair Campbell

interview / 23

ask tOm / 74

storing the information explosion

On caching and evangelizing sQl

Scott tracy, senior director of storage software development at Oracle, talks about Oracles storage technologies. Tom Haunert

Our technologist caches scalar subqueries, votes for SQl, and recommends technology and community. Tom Kyte

sQl 101 / 79 get your information in Order


part 1 in a series on the basics of the relational database and SQl Melanie Caffrey

September/OctOber 2011 Oracle.cOm/Oraclemagazine

editorial editor in chief tom Haunert tom.haunert@oracle.com Senior managing editor caroline Kvitka caroline.kvitka@oracle.com contributing editor and Writer blair campbell editor in chief, oracle technology network Justin Kestelyn justin.kestelyn@oracle.com technology advisor tom Kyte contributors marta bright, Jeff erickson, Fred Sandsmark, rich Schwerin, Leslie Steere deSign Senior creative director Francisco G Delgadillo design director richard merchn contributing designer Jaime Ferrand Production designer Sheila brennan editorial Board Ian Abramson, Karen cannell, Andrew clarke, chris claterbos, Karthika Devi, Kimberly Floss, Kent Graziano, taqi Hasan, tony Jambu, tony Jedlinski, Ari Kaplan, Val Kavi, John King, Steve Lemme, carol mcGury, Sumit Sengupta, Jonathan Vincenzo, Dan Vlamis SuBScriPtion information Subscriptions are complimentary for qualified individuals who complete the subscription card found in each issue or online at oracle.com/oraclemagazine. For change of address, mail in label with the new address to: Oracle Magazine, p.O. box 1263, Skokie, IL 60076-8263. magazine cuStomer Service oracle@halldata.com fax +1.847.763.9638 Phone +1.847.763.9635 Privacy Oracle publishing allows sharing of its mailing list with selected third parties. If you prefer that your mailing address or e-mail address not be included in this program, contact customer Service at oracle@halldata.com.

PuBliShing Publisher Jeff Spicer jeff.spicer@oracle.com Production director and associate Publisher Jennifer Hamilton jennifer.hamilton@oracle.com +1.650.506.3794 Senior manager, audience development and operations Karin Kinnear karin.kinnear@oracle.com +1.650.506.1985 advertiSing SaleS associate Publisher Kyle Walkenhorst kyle@sprocketmedia.com +1.323.340.8585 northwest and central u.S. tom cometa thomas.cometa@sbcglobal.net +1.510.339.2403 Southwest u.S. and lad Shaun mehr shaun@sprocketmedia.com +1.949.923.1660 northeast u.S. and emea/aPac mark makinney mark.makinney@sprocketmedia.com +1.805.709.4745 mailing-list rentals contact your sales representative. reSourceS oracle Products +1.800.367.8674 (U.S./canada) oracle Services +1.888.283.0591 oracle Press Books oraclepressbooks.com
copyright 2011, oracle and/or its affiliates. All rights reserved. No part of this publication may be reprinted or otherwise reproduced without permission from the editors. ORACLE MAGAZINE IS prOVIDeD ON AN AS IS bASIS. OrAcLe eXpreSSLY DIScLAImS ALL WArrANtIeS, WHetHer eXpreSS Or ImpLIeD. IN NO eVeNt SHALL OrAcLe be LIAbLe FOr ANY DAmAGeS OF ANY KIND ArISING FrOm YOUr USe OF Or reLIANce ON ANY INFOrmAtION prOVIDeD HereIN. the information is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. the development, release, and timing of any features or functionality described for Oracles products remains at the sole discretion of Oracle. Oracle and Java are registered trademarks of Oracle corporation and/or its affiliates. Other names may be trademarks of their respective owners. Oracle Magazine (ISSN 1065-3171) is published bimonthly with a free subscription price by: Oracle, 500 Oracle parkway, mS OpL-3c, redwood city, cA 94065-1600. periodicals postage paid at redwood city, cA, and additional mailing offices. pOStmASter: Send address changes to: Oracle Magazine, p.O. box 1263, Skokie, IL 60076-8263.

printed by brown printing oracle Product indeX


Product name AutoVue 2D Document print Service Java platform, enterprise edition Java platform, micro edition Page Product name 15 Oracle Data Integrator 18 Oracle Data provider for .Net 18 Oracle Database Page Product name 18, 48 Oracle real Application clusters 59 Oracle Service bus 26, 27, 28, Oracle SOA Suite 40, 48, 65, 71, 74, 79 15, 27 Oracle Solaris 15 Oracle Virtual Desktop client App for ipad 19 Oracle Vm 21 Oracle Vm Server for SpArc 18 Oracle Vm Virtualbox 16, 18, 26, 27, Oracle WebLogic Server 28, 48 19 Oracle WebLogic Suite 48 SpArc enterprise m-Series 28 Sun ray Software 18, 55 Sun Storage F5100 Flash Array 19 Sun x86 servers 20 Sun ZFS Storage Appliance Page 26, 27 16 16, 26, 27

Java platform, Standard edition 7 JavaFX JD edwards enterpriseOne solutions mySQL cluster mySQL Database mySQL enterprise edition Oracle Application Development Framework Oracle Application express Oracle Argus Safety Oracle berkeley Db Oracle bpeL process manager Oracle business Intelligence enterprise edition

15 Oracle e-business Suite 18 Oracle enterprise manager 28 Oracle entitlements Server 16 Oracle environmental Accounting and reporting 15 Oracle essbase 16 Oracle exadata 18, 26, 55 Oracle Fusion middleware 15 Oracle GoldenGate 16 Oracle Identity management 18 Oracle JDeveloper 16 Oracle On Demand Single Sign-On Service 18 Oracle Optimized Solution for enterprise cloud Infrastructure

15, 16, 40 20 26 18 84 16 15 26 19 24 40 16, 24

oracle magazine September/OctOber 2011

FrOm The ediTOr

Whats Wrong and Whats missing

Send us your corrections and your ideasbeginner, advanced, and more.

nexT STepS
learn more about Oracle technology Oracle University oracle.com/education Oracle technology Network oracle.com/technetwork Oracle documentation oracle.com/documentation Oracle Learning Library bit.ly/nlsSWj Oracle OpenWorld oracle.com/openworld JavaOne oracle.com/javaone

e run an occasional letters page in Oracle Magazine called From Our Readers. The content is correspondence (e-mails) from readers, along with our responses when appropriate. And while we really dont mind getting letters that say something positive about a recent article or column, the letters we like most are the ones that point out errorsso we can fix them as well as the ones that ask for different types of technology content in future issues. Getting the information right and offering the right information in each issue of Oracle Magazine is our goal, and direct reader input is one of our best resources for correcting and planning content.

Send mail TO The ediTOrS


Send your opinions about what you read in Oracle Magazine, and suggestions for possible technical articles, to opubedit_us@oracle.com. Or click the Write the editors link on our Website, oracle .com/oraclemagazine. You can also follow our @oraclemagazine twitter feed or join us on Facebook at bit.ly/cpY2z9. Letters may be edited for length and clarity and may be published in any medium. We consider any communications we receive publishable.

Beginning and advancing Beyond asking Oracle Magazine to include content on different technologies, readers also ask for different levels of content. A common letter theme over the years has been the request for more beginner content, in all technology areas. Although Oracle Magazine has provided a lot of what we consider beginner technology content, weve recently made the presentation of some beginner content a bit more formal. Enter official content for beginners: the 101 series, inspired by the classic numbering of college and university introduction courses. This issue of Oracle Magazine includes Part 3 of Steven Feuersteins PL/SQL 101 series (Working with Strings, page 65), designed specifically for the beginning PL/SQL developer. This issue also features Part 1 of Melanie Caffreys new SQL 101 series (Get Your Information in Order, page 79), designed for the beginning database developer or any developer or adminisCONNECT: bit.ly/aVgo69 bit.ly/orclmagfb

trator beginning to work with the relational database. Were working on some other 101 series ideas as well, but if you have an idea for a series, let us know. Of course, not everyone is looking for beginner content. We recently received a letter from a reader of Feuersteins PL/SQL 101 series who was looking for more-advanced PL/SQL content. Were currently exploring ideas for additional advanced technology content, and that letter and others like it are definitely contributing to the conversation. If you have any suggestions for advanced, beginner, or any other level of content, as well as suggestions for any specific technology coverage, send us an e-mail at opubedit_us@oracle.com. Other Beginnings, advancements, and cOnferences And finally, the biggest all-around education, training, networking, and community experiences for Oracle technologists are right around the corner. Oracle OpenWorld 2011 comes to San Francisco, California, October 2 to 6, 2011, with information and learning opportunities for all expertise levels, all job roles, and all things Oracle. (See Engineered for Innovation, page 8, for details.) JavaOne 2011 comes to San Francisco, California,October 2 to 6, 2011, with information and learning opportunities for all expertise levels, all job roles, and all things Java. (See Moving Java Forward, page 10, for details.)

tom haunert, editor in chief tom.haunert@oracle.com


twitter.com/oraclemagazine linkd.in/orclmag

September/OctOber 2011 Oracle.cOm/Oraclemagazine

MashUp

News. Views. Trends. Tools.

Expand the power of the native camera app that came with your smartphone.

PHOTO APPS

Instagram

Apply any of this apps custom lters and e ects to transform the color, mood, border, and tonality of your photos. Then share the results on Flickr, Facebook, and Twitter. Free (iPhone). instagram.com

Photosynth

Make and share panoramic photos on your iPhone. Create a panorama from left to right or from up to down to capture a full sphere. Share the panoramic experience on Facebook or publish to Bing Maps. Free. photosynth.net

Photoshop Express Postagram


Crop, ip, and straighten; correct and enhance colors; add borders and effects; and smooth out grainy photos. Free; paid upgrade unlocks more features (Android, iPhone). phtshp.us/ pDDKam

Dont just e-mail a picture the next time you travel; send a real postcard, including a personalized message, via snail mail. Free; postcards cost US$0.99 to send anywhere in the world (Android, iPhone). postagramapp.com

Invention and discovery emanate from being able to try seemingly wild possibilities and work in the unknown; to be comfortable being wrong before being right.
Peter Sims, author of Little Bets: How Breakthrough Ideas Emerge from Small Discoveries (Free Press, 2011)

INTERVIEW

DONTs

13 percent of hiring managers have had an interviewee answer a phone call or reply to a text message during an interview.1

Smartphones can tempt us to do dumb things, like texting or e-mailing while driving. The SuperTooth HD, a Bluetooth speakerphone, can help you resist those temptations. It adds voice dialing and other voice commands to your Bluetooth 3.0equipped phone and lets Android and BlackBerry users send and receive e-mails and texts via speech recognition and synthesis, the artificial production of human speech. (Users install a free app and upload contacts to the SuperTooth service.) SuperTooth HD can also post Facebook updates and tweets via speech recognition, and it has a high-quality speaker for regular old voice calls. Available in Australia, Canada, South Africa, Spain, the U.K., and the U.S., the device speaks and understands English, French, and Spanish. US$129, with additional subscription costs after six months free speech-to-e-mail service. supertooth.net

Auto Text

Tipping Point
Using a stylus instead of your finger on an iPad or smartphone isnt some kind of retro affectation for people who miss their old-school PDAs. Styluses help when you need to point, write, or draw with precision, or when you want to use a touchscreen while wearing gloves. (Ever gotten a phone call on a ski slope?) Wacoma company known for tablets and styluseshas created the Bamboo Stylus, a substantial, stylish, and well-balanced aluminum device with a compact capacitive rubber tip (which duplicates a fingertip) and pocket clip. The company claims the Bamboos tip is 25 percent smaller than those of its competitors, for better accuracy, and when paired with an app (such as Wacoms Bamboo Paper) it makes a great combination for note-taking, presentations, or sketching. US$29.99. wacom.com
1 Source: Maris Interiors, bit.ly/o4B3mM

TRUSTING IN x86
2009
50% 40% 30% 20% 10% 0% 1% 6% 22% 25%

The percentage of mission-critical applications running on x86 servers is growing. In 2010, nearly 200 datacenter workers were asked, How many of your x86 workloads are mission critical? Note that some change from 2009 may be because the 2010 sample contained more midsize enterprises.
2010
44% 38% 20% 36% 25% 12%

None of them

25% or less

25% to 50%

50% to 75%

75% or more

Source: Gabriel Consulting Group, gabrielconsultinggroup.com/recent-research/ doc_download/26-survey-surge-in-mission-critical-x86.html

ORACLE MAGAZINE SEPTEMBER/OCTOBER 2011

Oracle OpenWOrld previeW

engineered for innovation


F
all is the time when many species begin their annual migrations. For tens of thousands of information technologists, business executives, and developers, the annual migration is to San Francisco, California, for Oracle OpenWorld. To them, Oracle OpenWorld is hands down the most important educational and networking event of the year. It is the only conference that goes deep and wide with Oracle products, with sessions and demos geared toward helping companies get better results with the technology they haveand plan strategically for the technology they will need to keep ahead of the competition in the years to come. Whether youre an executive or a developer, you need to be at this conference, says Oracle President Mark Hurd. Oracle OpenWorld has become the place to be for advances in engineered systems, cloud computing, and next-generation business applications. This year Oracle OpenWorld is engineered for innovation, with thousands of technical and birds-of-a-feather sessions, hands-on labs, and more than 400 demos created by and for Oracle business and register now for Oracle OpenWorld oracle.com/openworld/register/packages

Oracle OpenWorld returns to San Francisco, October 26.

technology users. Keynotes from industry leaders including Dell Chairman of the Board and CEO Michael Dell; Infosys CEO Designate SD Shibulal; EMC Chairman of the Board, President, and CEO Joe Tucci; Cisco Chairman and CEO John Chambers; and Oracle CEO Larry Ellison will give you insights into how to drive your business forward. Oracle OpenWorld is your opportunity to learn the latest techniques for optimizing enterprise networks, hear about technology breakthroughs, and meet with the strategists and developers who can help you achieve your business and IT goals. Here is a roundup of the highlights of Oracle OpenWorld 2011. Education Start the week off with a deep dive into Oracle technology with Oracle University, Sunday at 9 a.m. at the Hotel Nikko. Or head to Sundays User Group Forum, a full-day program of user-driven content and technology interest group meetings, including sessions run by the MySQL and Java user group communities. Then choose from more than 2,000 technical sessions over the course of the week.

The sessions are broken into six streams that cover the full breadth of Oracles products and services: Applications, Database, Industries, Middleware, Oracle Develop, and Server and Storage Systems. Exhibition halls Explore more than 450 partner and customer exhibits and hundreds of Oracle demos in the Oracle OpenWorld Exhibition Halls, located in Moscone South and Moscone West. The two exhibit halls feature specific themes, and each houses Oracle DEMOgrounds where you can talk to the experts behind Oracle products. Pavilions. The exhibition halls also house a number of themed pavilions that showcase best-in-class solutions and services, cuttingedge technology, and product demos. Pavilion themes include cloud, Linux, customer relationship management, Oracles Hyperion and JD Edwards solutions, mobility, project portfolio management, and Oracle Solaris partners. the lighter side. The exhibition halls offer plenty of opportunities to relax between sessions. Play your favorite video games in the Game Zone, or take a swing at the Golf Experience, sponsored by Fujitsu. Drop by the Juice Bar, sponsored by Dell, for an energizing smoothie, or the Tap and Brew, sponsored by Dun and Bradstreet, for a morning espresso or afternoon beer. nEtwork and unwind It wouldnt be Oracle OpenWorld without plenty of opportunities to network and unwind. With the opening-day Welcome Reception, Oracle Technology Networks ever-popular OTN Night, and the final days Its a Wrap!, youll have plenty of opportunities for fun. And this years attendee-favorite Oracle Appreciation Event wont disappoint as two music legends take the stage: Sting, and Tom Petty and the Heartbreakers.

Thousands of Oracle developers, technologists, and partners will converge in San Francisco, October 26.

September/OctOber 2011 Oracle.cOm/Oraclemagazine

Hartmann StudiOS

10

JavaOne Preview

moving Java Forward


W
hen thousands of Java developers and enthusiasts converge on San Francisco, California, from October 2 to 6, you know it can only be for the iconic JavaOne conference. Now in its 16th year in the city, JavaOne is a week of intense learning, networking, and community committed to all things Java. As always, JavaOne offers something for every member of the Java communityfrom Java newbies to seasoned Java developers. Conferencegoers can expand their skills and gather tips and tricks from experts by participating in technical sessions, hands-on labs, and demos, as well as informal birds-of-afeather sessions. Oracle continues to demonstrate its commitment to moving Java forward, says Hasan Rizvi, senior vice president of product development at Oracle. The 2011 JavaOne conference offers attendees a unique opportunity to hear from Java technology experts from both inside and outside of Oracleon topics ranging from the core Java platform to mobile, JavaFX, and on to the Java frontier. Education and KEynotEs Whether developers want to build the latest client-side applications or create sophisticated Java cloud-based applications, they can find out how at JavaOne. JavaOne learning opportunities include classes at Java University on Sunday, October 2, with fullday and half-day session options. The deep dive continues on Monday as the conference gets into full swing with more than 400 sessions across seven tracks, including Core Java Platform; Emerging Language, Tools, and Techniques; Enterprise Service Architectures and the Cloud; Java EE Web Profile and Platform Technologies; Java ME, Mobile, Embedded, and Devices; Java SE, Client Side Technologies, and Rich User Experiences; and the Java Frontier. In addition to participating in sessions,

JavaOne hits the streets of San Francisco, October 26.

register now for JavaOne oracle.com/javaone

JavaOne heats things up in San Francisco, October 26.

conferencegoers can attend hands-on labs throughout each day and into the evenings, and birds-of-a-feather sessions on Monday and Tuesday nights. JavaOne offers many opportunities to hear from Java luminaries about whats new and whats next for Java. Not to be missed are the JavaOne Oracle and Intel keynotes on October 3, the JavaOne technical and Juniper keynotes on October 4, and the IBM and Java Frontier keynotes on October 6. Java Exhibition hall The crowds will head to the Java Exhibition Hall for partner and Oracle hands-on demos and discussions of the latest Java software technologies. Exhibitors will showcase their products and services, from developer tools and frameworks to management utilities, applications, and services developed with and for Java. At the Java DEMOgrounds, attendees can talk with the experts behind Java products and technologies. building nEtWorKs and communitiEs Sometimes its not what you know, but who you know. JavaOne can help attendees build their own Java community, with

plenty of opportunities for networking. For user group veterans as well as those new to JavaOne, things start off with the Oracle Users Forum on October 2 and continue that day with the first official celebration, the JavaOne Open House. Much of the networking activity will take place at the Mason Street Caf in the heart of the Zone, which also includes the Hilton San Francisco Union Square, Hotel Nikko San Francisco, and Parc 55 Wyndham. The Caf is a block-long playground and community space where developers can refuel between sessions; recharge themselves and their electronic devices; and renew acquaintances with Java user group leaders, Java Champions, and fellow developers. On Wednesday, the action moves to San Franciscos Treasure Island for the Oracle Appreciation Event, with performances by Grammy Awardwinning musicians Sting, and Tom Petty and the Heartbreakers. This attendee-favorite event offers hands-on entertainment, unlimited refreshments, and world-class music. And for one last hurrah, conference attendees can head to Yerba Buena Gardens on Thursday for the final event of JavaOne: the Its a Wrap! celebration.

September/OctOber 2011 Oracle.cOm/Oraclemagazine

Hartmann StudiOS/rOn SellerS

12

events

technology events

Oracle User grOUPs


Paris Java User group meetings parisjug.org
September 13 and October 11, paris, France

conferences and sessions to help you stay on the cutting edge

UKOUg security special event www.ukoug.org

September 13, bletchley park, england

Oracle OpenWorld

Java metroplex Users group meetings javamug.org

October 26, san Francisco, california Oracle OpenWorld presents the worlds largest, most in-depth selection of sessions by Oracle experts, customers, and partners. this years streams include Applications, Database, Industries, middleware, Server and Storage Systems, and Oracle Develop, with tracks that span solution and product areas. Get details and register at oracle.com/openworld.

September 14 and October 12, Dallas, texas

Kansas city Java User group meetings


September 14 and October 12, Leawood, Kansas

kcjava.org

Belgium Java User group seminar on Data grids


September 15, Leuven, belgium

bejug.org

integrasjonsdagene (integration Week) 2011


september 12, Halden, norway fbit.ly/ivhm8b the largest event in Scandinavia focused on middleware integration solutions features realworld case studies and tracks for It managers and Oracle Fusion middleware and Java professionals. It covers new-platform introduction, development methods, SOA, and security.

Image management (AIIm), this one-day virtual conference focuses on how organizations can use social technologies to engage staff and customers while maintaining appropriate controls.

Dallas Oracle Users group meetings


September 15, September 16, and October 20, Dallas, texas

doug.org

Qcon
september 1011, so Paulo, Brazil fqconsp.com For team leads, architects, and project managers, this international software development conference is organized by the community, for the community.

northeast Ohio Oracle Users group meeting neooug.org

September 16, Independence, Ohio

suncoast Oracle User group meetings soug.org

September 22 and October 27, tampa, Florida

Jcertif 2011
september 3-4, Brazzaville, congo fjcertif2011.eventbrite.com Jcertif is the biggest Java community event in central Africa. It includes presentations on Java technology and mobile applications, with topics ranging from server-side Java and open source to rich-client and cloud technology.

austin Java Users group meetings austinjug.org

September 27 and October 25, Austin, texas

international conference on infocomm technologies in competitive strategies


september 1213, singapore fict-conference.org colocated with GreenIt 2011, this conference provides academics, researchers, technology professionals, and businesspeople with an opportunity to share their research. conference topics include science, technologies, regulations, and industry initiatives on algorithmic efficiency, resource allocation, product longevity, virtualization, power management, materials recycling, and telecommuting.

st. louis Oracle Users group meeting


October 13, St. Louis, missouri

sloug.org

greater cincinnati Oracle User group meeting


October 19, blue Ash, Ohio

gcoug.org

Javazone 2011
september 78, Oslo, norway fjz11.java.no For software developers in Scandinavia, this independent, volunteer-run conference attracts more than 2,000 attendees and more than 30 corporate partners, who participate in more than 100 presentations totaling some 200,000 hours of information sharing.

Heartland Oracle Users group Fall conference


October 20, Omaha, Nebraska

heartlandoug.wordpress.com Ohio Oracle Users group meeting


October 20, Dublin, Ohio

ooug.org

Hacktivity 2011
september 1718, Budapest, Hungary fhacktivity.com topics at the largest hacker conference and festival in central and eastern europe include Oracle forensics, SAp security, database security, mobile hacking, lock picking, and WiFi

FOrtUne Oracle technology and applications Forum by Quest asia


October 24, Hong Kong

aiim social Business virtual conference


september 8, online faiim.org/events/soe-conference Sponsored by the Association for Information and

questdirect.org/events/2398182 southern new england regional User group meeting


October 28, Farmington, connecticut

questdirect.org/events/2372063

September/OctOber 2011 Oracle.cOm/Oraclemagazine

that goes where

The MBA

you go...

Complete your MBA degree Online from anywhere in the world


Ranked Top 10 Best Part-Time MBA Program by BusinessWeek 37 credit program No on-campus visits required 24 x 7 access to course materials Start Now - take 2 courses before applying Courses taught by Graduate Faculty AACSB Accredited Quality education at an affordable price

isenberg.umass.edu/mba

MBA

14

events

October 26, san Francisco, california Java experts and enthusiasts convene for a week of learning and networking. Java-specific content tracks include core Java platform; emerging Languages, tools, and techniques; enterprise Service Architectures and the cloud; Java ee Web profile and platform technologies; Java me, mobile, embedded, and Devices; Java Se, client Side technologies, and rich User experiences; and the Java Frontier. Get all the details and register at oracle.com/javaone.

JavaOne

cultivate loyalty among their customers, manage talent, make decisions efficiently, and optimize business performance.

Project management institute global congress


October 2225, Dallas/Fort Worth, texas fpmi.org this gathering offers professional development, networking, and information sharing for project management practitioners around the world. presentation topics include project management issues and challenges.

worms. the target audience is security, It, and networking professionals including chief information security officers, chief security officers, and cIOs.

offers a thorough approach to master data management (mDm) and the various ways to implement it. Discussions include recent mDmrelated acquisitions by Oracle.

sibos
september 1923, toronto, Ontario, canada fsibos.com Leaders from financial institutions, market infrastructures, multinational corporations, and their technology partners gather at this annual conference. topics include regulation revisited; technology; changing landscape, new expectations; and global and local perspectives.

Oracle Health sciences User group annual conference


October 1619, toronto, Ontario, canada fbit.ly/lJ97Y8 this conference features presentations on the technical and functional aspects of Oracle Health Sciences applications. clinical, pharmaceutical, biotechnology, medical device, and other companies will present and participate in focus groups, and Oracle representatives will update attendees on current and planned features.

Property casualty insurers association of america annual meeting


October 2326, new Orleans, louisiana fregistration123.com/pci/11annual this annual event for property casualty insurance professionals in North America provides perspective on issues facing their industry.

gitas gis for Oil and gas Pipeline conference


October 2427, Houston, texas fbit.ly/irnfO2 For geospatial professionals from leading oil and gas pipeline industry organizations, this conference includes in-depth seminars, technical presentations, discussion forums, and a product exposition, all designed to help geographic information system users access information and increase efficiency.

Business analysis conference europe


september 2628, london, england firmuk.co.uk/ba2011 Intended for business analysts from across europe, this event provides an interactive forum to discuss and debate the competencies needed to face todays business analysis challenges.

gartner symposium itxpo


October 1620, Orlando, Florida fbit.ly/qm8wp4 With the theme e-imagine It: Leading from the front, this event has three goals: to be personally relevant for attendees, to stimulate their thinking, and to leave them with an action plan for the coming year.

economic times asia iteX


October 79, mumbai, india fasiaitex.com Asias largest It exhibition attracts more than 35,000 visitors and 300 exhibitors from around the globe. Attendees learn about new suppliers, products, and services; keep abreast of changes in the industry; and meet key decision-makers in government, manufacturing, and services.

new zealand Oracle Users group (nzOUg) conference


October 31november 1, auckland, new zealand fbit.ly/p14blc the NZOUG conference is an Oracle event held in New Zealand for New Zealanders. Attendees network with their peers, discuss their current work projects with others in their specific fields, and acquire helpful information and contacts.

croatian Oracle User group conference


October 1822, rovinj, croatia fwww.hroug.hr this regional conference includes information for users of Oracle technology and applications. more than 500 participants will exchange best practices and share their experiences with a variety of Oracle business solutions.

seminar on master Data management Fundamentals and Best Practices


October 11, Hilversum, netherlands fbit.ly/mgrOrs Highlighting business problems that result from poorly managed data, this seminar

Oracle applications strategy Day


October 20, madrid, spain fibevents.com/oracle Learn how entrepreneurial companies use Oracle applications to generate business opportunities,

events lOcatOr
Oracle events oracle.com/events locate User groups oracle.com/technology/community/user_groups

September/OctOber 2011 Oracle.cOm/Oraclemagazine

ResouRces

15

Whats new at oracle


ViDeos
Moving Java Forward: A Video Discussion about Java 7 fbit.ly/ny86XP Java development team members Joe Darcy, Adam Messinger, Mark Reinhold, and John Rose discuss key ways that Java is moving forward with the release of Java 7. TechCast Live: Oracle Solaris Optimizations for x86 Hardware fbit.ly/nvtafo Chris Baker, principal product manager for Oracle Solaris, explains the optimizations for x86 hardware provided by Oracle Solaris, and how developers and sysadmins can take advantage of them. Belgiums Federal Government CTO Talks Oracle WebLogic Suite fbit.ly/rig2r4 Hear from Peter Strickx, Belgiums federal government CTO, about how Oracle WebLogic Suite serves as the mission-critical platform for all Java applications, including Belgiums federal portal and critical police operations. Oracle WebLogic: Vital for Obopays Mission-Critical Infrastructure fbit.ly/n3otky John Tumminaro, cofounder and CTO of mobile payments company Obopay, discusses how Oracle WebLogic and Oracle JRockit provide resilience, performance, and scalability in a developerfriendly environment.

The latest videos, podcasts, blogs, and more

Oracles AutoVue 2D Document Print Service and Oracle E-Business Suites Oracle Enterprise Asset Management to deliver robust printing. Three Authors on Oracle Application Express 4 fbit.ly/nQa6dc Patrick Cimolini, Martin DSouza, and Doug Gault talk about their book for developers new to Oracle Application Express, Beginning Application Express 4 (Apress, 2011). Oracle Solaris Security Benefits fbit.ly/om1zte Oracle Solaris experts discuss security in todays IT environment and the challenges in balancing security with ease of use.

capabilities and how to consolidate your existing environment for greater efficiency. MySQL Essentials Part 8: MySQL Server and SQL Performance Tuning fbit.ly/oi94DW Learn how to design and optimize a MySQL database server for maximum performance and scalability, and explore performance optimization possibilities and practices. Oracle Enterprise Manager 11g Webcast Series fbit.ly/pFvHsn This Webcast series covers preventing configuration drift, improving database performance,

WeBcasTs
Discover the Cloud Advantage for Databases Webcast Series fbit.ly/jYKni9 Learn how to achieve maximum performance and value from databases in private clouds. Topics in this series include security, storage management, data integration, database consolidation, database management, and availability. Oracle Enterprise Storage Webcast Series fbit.ly/qrDzbg In this Webcast series, see how Oracles portfolio of storage products and business-ready storage solutions optimize performance, maximize data protection, and reduce the total cost of ownership. Mastering Information Architecture fbit.ly/nqzuxt Real-life case studies show how to modernize business practices and incorporate data quality, security, and transparency into the design of sustainable information architectures. Extreme Solaris Virtualization Performance, with Features that Cant Be Matched fbitly.com/Xtremev12n Learn about Oracle Solaris built-in virtualization

For Oracle product information, call the number for your region. counTRY U.S. and Canada Australia Austria Belgium Brazil China Denmark Finland France Germany Greece Hong Kong India Indonesia Ireland Italy Japan Malaysia Mexico The Netherlands New Zealand Norway Philippines Portugal Singapore South Africa South Korea Spain Sweden Switzerland Taiwan Thailand Turkey U.K. PHone numBeR 1.800.367.8674 1800.735.467 0800.29.7626 0800.73280 0800.901.985 800.810.0161 8088.1068 0800.113.573 0800.905.805 0800.1.810.111 00800.353.12020 3002.1246 1600.44.6725 001.800.1.672.253 1850.672253 8008.74720 0120.155.096 1800.80.1837 01800.221.7321 0800.0827 0508.555.215 800.14411 811.5831 800.853.021 1800.6722.531 0800.994.225 080.2194.114 900.952900 020.798798 0800.55.2574 0800.672.253 001800.441.0545 00800.353.90014 0870.5.332200

oracle Direct

PoDcasTs
Rob Shapiro on Collaboration fbit.ly/nkkvwH Rob Shapiro, senior director for business social media at Oracle Proactive Support, explains how collaboration increases productivity and gets answers quickly. AutoVue AppCast fbit.ly/qsQ28B Hear how Oracle partner Estuate has integrated

oRacle magazine SEPTEMBER/OCTOBER 2011

16

resOurces

OVerHearD

By using Oracle Weblogic suite, we reduced the install times [and] the deployment times from five days to approximately four hours, and its become very easy to add more nodes in the cluster and to scale out.
Peter strickx, CTO of Belgiums Federal Government, in the Belgiums Federal Government CTO Talks Oracle WebLogic Suite video (bit.ly/rig2r4)

on Sunday, October 2, 2011, as a kickoff to the JavaOne conference in San Francisco, California. In-depth sessions taught by industry experts cover hot developer topics.

resOurce cenTer
sOa resource center fbit.ly/oddrjn Visit this resource center for white papers, data sheets, and podcasts on Oracle SOA Suite, Oracle Service Bus, Oracle BPEL Process Manager, and other tools that deliver SOA solutions.

maximizing ROI, and other issues that Oracle Enterprise Manager addresses. MySQL Enterprise Hot Backup for Your Products fbit.ly/q6ge8s Learn about the tools the MySQL Enterprise Backup feature of MySQL Enterprise Edition provides to safely and rapidly back up and restore MySQL embedded databases. Five Reasons to Upgrade to Oracle WebLogic Server 11g fbit.ly/pumfbJ Mike Lehmann, senior director of product management for Oracle WebLogic Server, shares best practices and tips for a fast, low-risk upgrade to Oracle WebLogic Server 11g. No Contest: Oracle WebLogic Outperforms IBM WebSphere fbit.ly/nmfi0x See how Oracle WebLogic outperforms IBM WebSphere, including in TCO and performance. Oracle Argus Safety fbit.ly/qFqtc6 Oracle Health Sciences and BioPharm Systems present a Webcast on Oracle Argus Safety for IT professionals and safety managers in the pharmaceutical industry.

survey reveals how todays DBAs are managing a surge in database growth and provides recommendations to help deal with that growth. A Comparison of Application Performance Management Suites from CA, HP and Oracle fbit.ly/rjkuaD This Crimson Consulting Group study compares three application performance management suites and finds that Oracles offering provides advantages in traditional performance monitoring, availability monitoring, and businessdriven IT management.

reFerences anD calculaTOrs


Oracle Database 11g interactive Quick reference fbit.ly/pxretV Learn to write custom data dictionary scripts, locate views pertinent to a specific database component, and more. sun zFs storage appliance savings calculator fbit.ly/pziiO7 Find out how to increase storage capacity, boost efficiency, and reduce costs with Oracles Sun ZFS Storage Appliance savings calculator. customers Discuss Oracle exadata fbit.ly/mzsgbf Read about the results that 20 organizations have achieved with Oracle Exadata.

e-BOOKs
Unified Storage For Dummies, Oracle Special Edition fbit.ly/r67y81 Conquer data storage challenges and learn more about Oracles Sun ZFS Storage Appliance, a cost-effective, easily managed storage solution.

Training
Training for Oracle solaris 11 foracle.com/education/solaris11 Oracle University training on Oracle Solaris 11 gives you early access to new features and capabilities to build, deploy, and maintain cloud systems. This training can help you run enterprise IT environments efficiently, with greater availability and higher security. Oracle university at Oracle OpenWorld 2011 fbit.ly/muhikq Maximize your Oracle OpenWorld experience with Oracle Universitys one-day training event on Sunday, October 2, 2011, in San Francisco, California. Eight deep-dive training sessions cover popular Oracle technology topics. Java university at JavaOne 2011 fbit.ly/olhWl8 Java University is a one-day training event held

WeB lOcaTOr
Oracle Blog center oracle.com/blogs Oracle consulting oracle.com/consulting Oracle events and Webcasts oracle.com/events Oracle Podcast center oracle.com/podcasts Oracle newsletters oracle.com/newsletters Oracle university oracle.com/education Oracle on Twitter twitter.com/oracle Oracle support oracle.com/support my Oracle support myoraclesupport.com my Oracle support communities communities.oracle.com

WHiTe PaPers
Unlocking New Value from Web Session Management fbit.ly/pw2nnT This white paper features code samples that show the challenges and solutions related to session management with MySQL Cluster. IOUG Survey on Database Manageability fbit.ly/q3a93Q This Independent Oracle Users Group (IOUG)

SEPTEMBER/OCTOBER 2011 Oracle.cOm/Oraclemagazine

Leaders Run
Oracle Storage
10 of the 10
Top Banks Top Telcos Top Pharmas Top Governments

Get Better Results

oracle.com/storage or call 1.800.ORACLE.1

Copyright 2011, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates.

18

Product Resources

TuTORials
Oracle Real-World Performance Video series: migrate a 1 TB Data Warehouse in 20 minutes

Oracle upgrades Oracle Vm server for sPaRc


Oracle has released Oracle VM Server for SPARC 2.1, a server virtualization solution that now allows as many as 128 virtual machines on one system. It comes preinstalled on Oracles SPARC T-Series servers, including SPARC T3, UltraSPARC T2+, and UltraSPARC T2based servers. Oracle VM Server for SPARC 2.1 adds point-and-click live migration capabilities, so companies using Oracle Enterprise Manager Ops Center can migrate running virtual machines from one physical server to another. The new release also includes enhancements in virtual device service validation, dynamic reconfiguration of cryptographic units, and the management information base. Oracle VM Server for SPARC demonstrates the tremendous benefits of hardware

In this four-part video series, learn how to migrate a 1 tb data warehouse to an Oracle exadata Database machine. fbit.ly/oECEJY

getting started with the Oracle JDeveloper iDe

Learn how to build a basic application using the major components of Oracle JDeveloper. fbit.ly/nrNMnR

Developing ajax-Based user interfaces with Oracle aDF Faces Rich client components

Use Oracle Application Development Framework JavaServer Faces rich client components to create Ajax-based Web applications. fbit.ly/ridjDi

and software engineered to work together, says Bill Nesheim, vice president of Oracle Solaris engineering. This release offers customers a new level of flexibility in efficiently deploying enterprise workloads on the SPARC T-Series family of systems and demonstrates Oracles ongoing commitment to innovation in SPARC and Oracle Solaris. bit.ly/qHlzQn

Learn how to integrate Oracle essbase with Oracle business Intelligence enterprise edition, including connecting to the Administration tool, importing the essbase bISAmpLe cube into the physical layer of the repository, and building the business model and the subject area. fbit.ly/oWapQI

integrating Oracle essbase 11.1.2.1 with Oracle Business intelligence enterprise edition 11g

Java ee Development Tools get updates


Oracle has extended its tools for Java Platform, Enterprise Edition (Java EE), SOA, and Web 2.0 application development with updates to Oracle JDeveloper 11g and Oracle Application Development Framework 11g (Oracle ADF 11g). Oracle JDeveloper 11g Release 2 features an enhanced integrated development environment. Notably, the extension framework has been upgraded to use OSGi, which allows for lazy loading of extensions and results in faster startup time and improved overall performance. Oracle JDeveloper 11g Release 2 also supports new technologies and standards, including Maven 2, JavaServer Faces 2.0, RESTful Web services, and Hudson. The update to Oracle ADF 11g includes support for new JavaServer Faces 2.0 and Facelets standards, updated Oracle ADF JavaServer Faces Rich Client components, support for interactive thematic maps, and infrastructure changes to facilitate OSGi tooling. Web application and Java developers continue to seek the latest advancements in standards and easy-to-use tools, says Ted Farrell, chief architect and senior vice president at Oracle. Oracle JDeveloper 11g Release 2 delivers state-of-the-art capabilities that allow developers to achieve an immense productivity boost and are essential to enable the creation of the mostimmersive and -vibrant Web applications. bit.ly/qqgssH bit.ly/n62aJf

Oracle Data integration 11g: new Features

this tutorial introduces you to the new and enhanced features of Oracle Data Integrator 11g, and covers the business and technical benefits of these features. fbit.ly/qm1hVS

getting started with Java me

this three-part video series helps you get started using the Java platform, micro edition Software Development Kit (SDK), from downloading and installing to creating your own applications. fbit.ly/nli3jV

Oracle Buys Pillar Data systems


Oracle has added to its storage portfolio by acquiring Pillar Data Systems, a provider of scalable storage area network (SAN) block I/O storage systems. The addition of Pillars products is expected to help Oracle deliver a complete line of storage products. Among Pillars products is the ApplicationAware Pillar Axiom 600 storage system, which combines high performance with the ability for administrators to assign storage resources based on business requirements. Founded in 2001, Pillar Data Systems has nearly 600 customers in 24 countries. The acquisition provides Oracle with a compelling SAN storage architecture that complements our core strengths, says John Fowler, executive vice president of systems at Oracle. Customers can optimize the value of their Oracle applications, database, middleware, and operating system software by running on Oracles storage solutions. oracle.com/pillar

DOWnlOaDs
new Downloads
Oracle JDeveloper 11g (11.1.2.0.0) fbit.ly/r4CYAb JavaFX 2.0 beta SDK fjavafx.com/downloads/all.jsp Oracle berkeley Db fbit.ly/nyFSEn

September/OctOber 2011 ORacle.cOm/ORaclemagazine

BRIEFS

19

Oracle Entitlements Server 11g Now Available


Oracle has released Oracle Entitlements Server 11g, a component of Oracle Fusion Middleware 11g that delivers a scalable, externalized authorization management solution for applications, middleware, and databases. Oracle Entitlements Server 11g provides developers with shared services for fine-grained authorization, which can deliver quicker compliance and better business agility because authorization policies can be adapted as market, regulatory, and business requirements change. Oracle Entitlements Server 11g is integrated with Oracle Platform Security Services, the security foundation for Oracle Fusion Middleware and Oracle Fusion Applications. It supports security standards including eXtensible Access Control Markup Language (XACML), National Institute of Standards and Technology Role-Based Access Control (NIST RBAC), and Java Authentication and Authorization Service (JAAS). Other highlights include real-time external authorization, rapid application integration, rich policy modeling, an autonomous security module, and scalable policy stores. Externalizing authorization and application entitlements to create a declarative security model is the next wave of innovation that will help customers reduce risk and enable sustainable security compliance, says Amit Jasuja, vice president of Oracle Identity Management. We worked closely with the Oracle Applications teams and large customers to provide high transaction performance and standards flexibility with Oracle Entitlements Server 11g. bit.ly/qkmjMk

Oracle Introduces Changes to the Java Community Process


Oracle has submitted the first of two Java Specification Requests (JSRs) to update and revitalize the Java Community Process (JCP), the group of more than 1,200 individuals and corporations who together define Java standards and drive the Java language and platforms. The new JSRs define the next iteration of the JCP, called JCP.next, and will broaden transparency of Java technology development, improve procedures, increase agility, and encourage community participation. The proposed JSRs would modify the JCPs Process Document and Java Specification Participation Agreement (JSPA) and would apply to all new JSRs and to future maintenance releases of existing JSRs for all Java platforms. The first submission, JCP.next JSR 1, or JSR-348, will produce a new version of the JCP Process Document and a formalized executive committee members guide and is expected to be completed and approved within approximately six months. The changes include requiring all expert group operations to be carried out in public forums, increasing the transparency of the recruiting process for expert group members, exploring ways to enable all JCP members to participate in executive committee activities, and determining how to disclose Technology Compatibility Kit testing results. JCP.next JSR 2, which Oracle will submit to the JCP in the near future, will involve modifications to the JSPA. JCP.next JSR 2 will go through the same JSR development process as Java technologies and will be voted on by the JCP Executive Committee in a process that is expected to take 12 to 18 months. In the past few months, Oracle and other partners in the Java Community Process have driven a revitalization of Java technology and standards with the approval of the JSRs for Java Platform, Standard Edition 7 and 8, as well as Java Platform, Enterprise Edition 7, says Patrick Curran, chair of the JCP and director of the JCPs Program Management Office. Now with the submission of the first JSR for JCP.next, we are ready to begin the evolution of the Java Community Process itself, making it easier for both individuals and organizations to participate in the process. jcp.org

Oracle On Demand Adds SSO to Its Identity Management Services


Oracle On Demand has added a single-signon (SSO) service to its identity management services portfolio. Powered by Oracle Access Manager, Oracle On Demand Single Sign-On Service provides Web-based SSO to applications hosted by Oracle On Demand. The service can be combined with Oracle On Demand Strong Authentication Service to provide additional security. Oracle On Demand Single Sign-On Service improves productivity by making it easier for users to log in, reduces help desk costs, and provides a platform for additional security services such as strong authentication, says Marc-Oliver Fiedler, vice president of business strategy and planning for Oracle On Demand. bit.ly/qRDV3w

Oracle Enhances Virtual Desktops with New Sun Ray Software


Oracle has unveiled Sun Ray Software 5.2, a new release of its server-hosted desktop virtualization offering. The new release enables easier installation and configuration and features improved multimedia, networking, and smart card support. Sun Ray Softwares improved integrated installer allows the software to be downloaded and deployed in one easy-to-install package. The software enables users to access virtual Windows, Linux, and Oracle Solaris desktop environments through any combination of Sun Ray clients, PCs, or Macs and interoperates with other virtualization technologies and desktop brokers. Its improved audio and video support includes an optimized Windows Media Player, USB headset support for specific devices, and Appliance Link Protocol for optimized audio. The new release can also use Oracle Solaris IP multipathing for network fault tolerance and load-spreading and has extended virtual private network options. With Sun Ray Software, IT can centralize the management and maintenance of thousands of thin clientsreducing cost and complexity, while enhancing security, says Wim Coekaerts, senior vice president of Linux and virtualization engineering at Oracle. Innovations in Sun Ray Software 5.2 make it even easier to install and update, while delivering an improved enduser audio and video experience. bit.ly/nKp5c5

ORACLE MAGAZINE SEPTEMBER/OCTOBER 2011

20

BRIEFS

Oracle Proposes Placing Hudson Under Eclipse Foundation


Oracle has submitted a proposal to make Hudson an Eclipse Foundation project. Under the proposal, Oracle would contribute the Hudson core code to the project and transfer the Hudson trademark and the hudson-ci.org domain name to the Eclipse Foundation. Oracle would be the project lead, with Sonatype, Tasktop, and VMware as initial contributors and other companies as project supporters. Hudson is an industry-leading open source continuous integration server. It coordinates and monitors execution of repeated jobs, making it easier for developers to integrate changes to projects and for users to obtain fresh builds. To ensure that Oracles proposal is in the best interests of the developer and open source communities, Oracle will solicit feedback from the Hudson community before the proposal is finalized. Hudson has become an important tool for many software developers and is widely used within the Eclipse community, says Mike Milinkovich, executive director of the Eclipse Foundation. We believe Oracles proposal to make Hudson an Eclipse project is an important next step in expanding the adoption and usage of Hudson. bit.ly/q04V0L

Oracle Creates Solution for Enterprise Clouds


Oracle has unveiled the Oracle Optimized Solution for Enterprise Cloud Infrastructure, an integrated and tested solution for enterprise infrastructure-as-a-service (IaaS) cloud deployments. The new solution combines Oracles Sun Blade servers, Oracle Solaris or Oracle Linux, Oracles Sun ZFS Storage Appliance (pictured), and Oracle VM, and can be managed and supported as a single system using Oracle Enterprise Manager 11g.

Oracle Acquires FatWire Software


Oracle has acquired FatWire Software, a provider of Web experience management solutions. FatWire enables organizations to build and deploy a targeted and interactive online presence that optimizes interactions with customers. FatWire helps organizations to deliver relevant customer content, build community engagement, and drive site stickiness and loyalty. FatWire solutions complement Oracle Fusion Middleware and Oracles business intelligence, enterprise content management, and portal technologies, as well as Oracles customer relationship management and Oracle ATG Web Commerce applications. The acquisition of FatWire will support Oracle customers that seek to build a unified customer experience across Web, mobile, and social channels. FatWire solutions help organizations drive customer engagement and loyalty by offering a targeted and interactive online experience across Web and mobile channels, says Yogesh Gupta, president and CEO of FatWire Software. This acquisition is expected to provide FatWire customers with dramatically expanded products and services to help them achieve their online customer experience goals. oracle.com/fatwire

Oracle Unveils Virtual Desktop Client App for iPad


Oracle Virtual Desktop Client App for iPad is now available on Apples App Store. This app enables users to securely access virtual desktops managed by Oracles Sun Ray Software and Oracle Virtual Desktop Infrastructure. The app offers simple, intuitive, and accurate gesture-based and multitouch operation with rich virtual keyboard support. Oracle Virtual Desktop Client App for iPad supports a broad range of enterprise applications, including network-intensive applications and those requiring full desktop browsers. For example,the app provides a highperformance mobile computing environment for users of Oracles Siebel Customer Relationship Management. With the introduction of Oracle Virtual Desktop Client App for iPad, we continue to offer customers innovative ways to access a broad range of virtual desktop environments and enterprise applications, says Wim Coekaerts, senior vice president of Linux and virtualization engineering at Oracle. When used in conjunction with Oracles Sun Ray Software and Oracle Virtual Desktop Infrastructure, customers benefit from enhanced security, centralized administration, lower cost, and better access to their corporate data from iPad. itunes.com/appstore

Oracle Consulting provides assessment, architecture, and implementation services for the new IaaS solution, and Oracle Advanced Customer Support Services provides production readiness, installation, mission-critical support, and preventive monitoring services. The Oracle Optimized Solution for Enterprise Cloud Infrastructure is endorsed by the Intel Cloud Builders program, a cross-industry initiative aimed at making it easier to build, enhance, and operate cloud infrastructures. Oracle is radically simplifying cloud deployment with a pretested, single-vendor solution for enterprise cloud infrastructure, says Ali Alasti, vice president of hardware development at Oracle. By engineering our hardware and software together, the Oracle Optimized Solution for Enterprise Cloud Infrastructure cuts deployment time from weeks to hours and helps customers get virtualized infrastructure up and running faster. bit.ly/pwdkJ2

SEPTEMBER/OCTOBER 2011 ORACLE.COM/ORACLEMAGAZINE

21

oracle environmental accounting and reporting Debuts


Oracle has released Oracle Environmental Accounting and Reporting, an extension to Oracle Financials and Oracles JD Edwards EnterpriseOne Financials that enables organizations to track greenhouse gas emissions and other environmental data in order to improve environmental and financial performance. Oracle Environmental Accounting and Reporting facilitates reporting in both voluntary and legislated emissionsreporting situations. In addition to working with existing enterprise resource planning applications, Oracle Environmental Accounting and Reporting uses Oracle business intelligence solutions to provide immediate insight into environmental data. Because Oracle Environmental Accounting and Reporting integrates with existing financial and business processes and solutions, it can increase efficiency and reliability in environmental data collection and reporting. Its support for multiple reporting standards, shorter reporting cycle times, internal key performance indicator tracking, and flexible ad hoc reporting allows organizations to improve both environmental and financial performance. In addition to Oracle Environmental Accounting and Reporting and other Oracle risk and performance management products, Oracle provides a comprehensive set of solutions to help manage IT infrastructure and business operations from an environmental and cost perspective. Besides increasing your environmental data collection efficiency and reliability, Oracle Environmental Accounting and Reporting enables you to comply with global greenhouse gas regulations and provides actionable business and environmental insights, says Jon Chorley, vice president of product strategy at Oracle. bit.ly/qQ3gb6 oracle.com/green

oracle Buys Datanomic


Oracle has acquired Datanomic, a provider of enterprise customer data quality software and related applications for watch list compliance screening. Datanomics products support data quality and compliance requirements of large corporations in the financial services, retail, insurance, telecom, and utility industries. Datanomics products will become part of Oracles data integration and master data management solution. Integrated data quality management has become essential to delivering successful information management initiatives, says Hasan Rizvi, senior vice president of Oracle Fusion Middleware product development. With the addition of Datanomic, Oracle will provide an integrated approach to enterprisewide data quality including purposebuilt capabilities for the major datatypes of customer, supplier, and product data as well as for watch list screening. oracle.com/datanomic

Every

69 SECONDS a woman DIES cancer. of breast

Susan G. Komen for the Cure is working to change this. Last year alone we funded more than 600,000
breast screenings. We helped 100,000 people nancially through treatment. We educated 4 million about breast cancer. We invested more than $60 million in breast cancer research. And we did it in more than 50 countries around the world. Komen for the Cure is the only organization ghting breast cancer on every front.

Dont wait another 69 seconds to save a life. Were making progress, but theres
much more to do, and we need your help.

Learn how to help today. Visit komen.org.


This space provided as a public service. 2011 Susan G. Komen for the Cure The Running Ribbon is a registered trademark of Susan G. Komen for the Cure.

Find us
6/23/11 4:18 PM

Komen-69Sec-Oracle-HalfPg.indd 1

oracle magazine September/OctOber 2011

REGISTER NOW
2,000 Sessions | 450 Exhibitors | 400 Demos

Save $200 by Sept. 30th

Register at oracle.com/openworld

Marquee Sponsor

Diamond Sponsors

Premier Sponsors

Grande Sponsors

Copyright 2011, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

SA

OC

Elite Sponsor

FR

TO

AN

BE

CI

SC

2-

IntervIew by Tom HaunerT

23

Storing the Information explosion

How oracles flash, disk, and tape storage technologies help IT shops handle todays unique storage challenges

om Haunert, Oracle Magazine editor in chief, recently sat down with Scott Tracy, senior director of storage software development at Oracle, for an in-depth discussion about Oracles flash, disk, tiered storage, and unified storage technologies. The following is an excerpt from that interview. Download the full podcast at oracle.com/magcasts. Oracle Magazine: Beyond the basic demands of storage, what are the main challenges organizations are facing today with the information explosion and the storage required to manage it? Tracy: There are a number of things IT shops are facing. Certainly, data management and migration activities: as platforms get older, they get slower, or they run out of service life. The act of replacing that storage takes a substantial amount of time and activity. Then there are the cost constraints people are under today: the number of personnel required to actually manage the IT shops, and obviously the cost of the storage devices themselves, as well as servers for those devices. Problem-resolution time is a big deal too. As you get more and more storage in your datacentermore and more machines problems become more complicated. They take longer to figure out, and IT shops are looking for ways to get around that. Then theres data protection and recoveryjust making sure that youve got adequate copies and backups of data, and that those copies and backups can be restored in case of disaster, in a recovery time that makes sense for your business. Finally, theres security. Every day or every week, it seems like some business has been breached. And so, whether its

the Sun Storage F5100 Flash array . . . performs the same as 3,000 disks, but uses 0.15 percent of the space.
security in the form of encryption on devices so that nobody can peek in to see the data, or its just physical security where people just cant get to the backbone of your datacenter, everybody has some implementation of security. We need to keep that in mind as were designing new storage. Oracle Magazine: What are some of the key strategies in dealing with these storage challenges?

Scott tracy, Senior Director of Storage Software Development, oracle

Tracy: Certainly consolidation and reduction the act of taking data from multiple older storage devices and putting it into singular newer storage devices is a hardware solution. From the software perspective, there are newer technologies like compression, where you can squeeze out a 2-to-1 reduction of data, and deduplication, where you can get up to a 10-to-1 reduction of data. Another interesting technology is flash. It represents a new tier of storage, and my thought as an engineer had been that everybody managing their datacenters would say, Hooray, this is greatanother tier thats faster! In fact, people in the IT shops are saying, Yes, great. Its a faster piece of storage, but now I have to go manage yet another tier. So the idea of autotiering between flash, disk, and tape is something that IT managers are looking for. If youre trying to take data and manually place it in either flash or disk, thats very hard to do, and youll ultimately get it wrong. You need software to help manage the transition. The reason this is important is, of course, that flash offers higher performance. Its also a little bit higher in cost. Disk is somewhere in the middle, both in terms of cost and performance. There are shades of gray here where high-performance disks perform better and are higher cost; higher-capacity disks are a little bit lower in cost but a little bit slower in performance; and then tape, which is the lowest in terms of cost but also the lowest in terms of performance. To manage your datacenter effectively across the cost bandwidth, you really have to use all these tiers. Oracle Magazine: What do organizations need to consider when including flash

bob adler

oracle magazIne SepTember/ocTober 2011

24

IntervIew

storage in their tiered storage strategies? Tracy: The introduction of flash as a separate tier of storage is really there to speed up response time for both reads and writes. The strategy of flash on the read side is to make sure the data needed is already cached. Theres a bunch of algorithms inside many Oracle storage boxes, namely the Sun ZFS Storage Appliance, that actually try to understand data patterns and prefetch information from disk and store it in flash. So when you ask for it, its already cached, and you get a very quick read back to your application. The strategy of flash on writes is to temporarily store data, return that status, and then subsequently write that data permanently to disk to store the information. So you get the quick response time of, Hey, Ive written this data. It looks like youve written it to disk, with a background process that actually does the writing. The thing about flashI mean it even sounds fast, flashis its an order of magnitude faster than disk in this response time. Newer innovations that use a faster storage typecalled DRAM [dynamic random access memory]actually reduce response time by a factor of 10 again. These strategies are starting to come into play today. They also lower the total cost of ownership. From an electricity standpoint, they use significantly less power. The footprint is much smaller, and they have the storage power of many, many disks. The Sun Storage F5100 Flash Array, for example, is a 2U-form factor that supports 2 terabytes of flash and performs the same as 3,000 disks, but uses 0.15 percent of the space and about 0.55 percent of the powera significant reduction. Oracle Magazine: Tell us about the hardware and software that make up the Sun ZFS Storage Appliance and unified storage. Tracy: The Sun ZFS Storage Appliance is made up of a bunch of disk drives. Obviously we have both single and redundant controllers. The controllers have DRAM. They also have a read cache in them.

Hybrid storage pools are continuously optimizing the storage system for performance and efficiency, and they manage the system as a single storage pool through a simple, transparent single hierarchy.
Then, out in the storage fabric, we have what we call write flash. One of the technologies we have in the Sun ZFS Storage Appliance is autotiering, which Ive mentioned. We actually have our own term for it called hybrid storage pools. And really, again, the data is intelligently and automatically migrated between memory, flash, and disk. Hybrid storage pools are continuously optimizing the storage system for performance and efficiency, and they manage the system as a single storage pool through a simple, transparent single hierarchy. That describes whats in the storage appliance, but thats not unified storage. Unified storage is defined by the software that enables customers to use it, and it falls into three different buckets. One of those buckets is data protocols. If you look at our storage box, we support both file and block protocols, 10 of them in one box. In the next bucket, we also support data services that customers will require, both for data protection as well as compression of data, and so on. And in the last bucket, from a management perspective, we have very unique analytics, which include dynamic real-time visualization of application- and storagerelated workloads with very simple but sophisticated instrumentation that provides real-time, comprehensive analysis. This allows you to troubleshoot and know whats going on inside your storage box, as well as outside on a server fabric. Oracle Magazine: Looking forward, what do you see as the next set of challenges and strategies for storage? Tracy: We started out talking about the explosion of data and the requirements on storage. To keep up with that explosion, storage boxes are going to have to get bigger, faster, and easier to manage, and theyre going to have to start cooperating together. One thing everybody in the industry is attacking is the idea of data protection. As the data and hard-disk drives get bigger, when a failure occurs, the ability to replicate and give that data back becomes harder. For example, you can use a technology called mirroring the data, where you write to two disks. Thats actually a pretty good technology solution as disk drives get bigger and bigger. You simply remove the disk thats failed, put in a new one, and it will copy the data from one side to the other. While youre exposed to a single point of failure for a period of time, you still have access to the data. The only issue with that solution is that you have to buy two times the amount of disk drives, and that becomes cost prohibitive. RAID-5 and RAID-6 dont require two times the disk drives. The big issue there is rebuilding those disks as the disk drives get bigger and bigger. There are strategies and technologies for how to do that rebuilding process faster, and were developing those today. Finally, theres manageability. As youre going to have more and more data, youve got to have better management because youre not getting increases in budget to increase your staff. In fact, youre getting staff reductions. So we as storage vendors have to figure out better and better ways to manage those storage boxes.

next StepS
learn more about Oracles storage solutions oracle.com/storage Oracles Enterprise Storage Webcast Series bit.ly/q4duop Storage from A to ZFS bit.ly/oOLJOJ calcUlate how much you can save with tiered storage bit.ly/ol3uz9

lISten to the podcast oracle.com/magcasts

SEPTEMBER/OCTOBER 2011 Oracle.cOm/OraclemagazIne

26

Book Beat
Oracle 11g R1/R2 Real Application Clusters Essentials
By Ben Prusinski and Syed Jaffer Hussain
Packt packtpub.com
Written for Oracle DBAs who want to administer Oracle Real Application Clusters (Oracle RAC), this book presents a complete method for the configuration, installation, design, and administration of Oracle RAC 11g. Covering Oracle RAC 11g Release 1 and including bonus information on Release 2, the book is packed with realworld examples, expert tips, and troubleshooting advice. It begins by introducing the concept of Oracle RAC and high availability and then covers Oracle RAC 11g architecture and installation, Oracle Automatic Storage Management, troubleshooting, and workload management. Readers will also learn about Oracle Clusterware and when and how to upgrade an Oracle RAC environment. control and issue tracking and are taught how to integrate those tools into a development environment and use them productively. Out-of-the-box functionalities such as skinning, customization, and internationalization are discussed at length. The book is written for Web developers and developers who are experienced with classic 4GL tools.

European Partners Gain SOA Specialization


Five members of Oracle PartnerNetwork four in the Netherlands and one in the U.K. have achieved Specialized status in Oracle service-oriented architecture (SOA). This specialization acknowledges Oracle partners that meet stringent requirements and demonstrate expertise in delivering services related to Oracle SOA Suite 11g. AMIS Services, an IT services provider based in Nieuwegein, the Netherlands, that focuses on Oracle and Java technology and is an Oracle Gold Partner, has been working with Oracle SOA Suite for more than six years. The company employs nearly 20 SOA consultants. CIBER Nederland, an Oracle Platinum Partner based in Eindhoven, the Netherlands, has completed several reference projects related to SOA. It recently formed a dedicated Oracle practice team with its Oracle consultants. Whitehorses, an Oracle Gold Partner based in Nieuwegein, the Netherlands, was founded in 2001. The company uses its expertise in Oracle technologies and Java to integrate systems, processes, and data. It addresses infrastructure problems directly in small, manageable steps while maintaining a focus on achieving visible results. Yenlo, an Oracle Gold Partner based in Hazerswoude-Rijndijk, the Netherlands, employs senior specialists in Oracle and Java applications, middleware, and database platforms. Its services include consulting, architecture, custom applications, and 24/7 hosting and management of IT environments that include Oracle Fusion Middleware. Griffiths Waite Limited is a Birmingham, Englandbased Oracle Gold Partner specializing in Oracle SOA solutions. The company employs methodologies such as Lean-Six Sigma and the Open Group Architecture Framework, which allow the company to capture, leverage, and reuse architecture framework guidelines and employ operational and governance best practices. amis.nl ciber.nl whitehorses.nl yenlo.nl griffiths-waite.co.uk

Expert Oracle Exadata


By Kerry Osborne, Randy Johnson, and Tanel Pder
Apress apress.com
Oracle Exadata embodies a fundamental change in how DBAs and developers think about and manage relational databases. The key difference lies in Oracle Exadatas ability to offload SQL processing to the storage layer, which the authors of Expert Oracle Exadata believe is a game changer. Their book opens the black box to explain how Oracle Exadatas combination of hardware and software works and teaches readers how to configure Oracle Exadata from the ground up. Specific topics include how to optimize Oracle Exadata for mixed online transaction processing/data warehousing workloads, how to migrate large data sets from existing systems, how to connect Oracle Exadata to external systems, and how to configure highavailability features such as Oracle Real Application Clusters and Oracle Automatic Storage Management.

Oracle Database 11g R2 Performance Tuning Cookbook


By Ciro Fiorillo
Packt packtpub.com
This cookbook was written to help DBAs and developers understand the many aspects of Oracle Database that affect performance. Topics include application design and development; optimization of SQL and PL/SQL code; ways to speed up sort operations; strategies for hacking the optimizer and the data loading process; and useful methods to diagnose and tune memory and I/O and address contention issues. Every step-by-step recipe in the cookbook is based on a real-world script or procedure and illustrated with screenshots; theoretical concepts that explain why one solution performs better than another are also explained in the context of the recipes.

Oracle VM Implementation and Administration Guide


By Edward Whalen
Oracle Press oraclepressbooks.com
Oracle VM Implementation and Administration Guide shows you how to install, configure, and utilize Oracle VM, an Oracle virtualization solution. It covers the relationship between Oracle VM and the Oracle Linux operating system; contains complete details on installing and administering Oracle VM; includes tips, techniques, and tools for optimizing Oracle products on Oracle VM; and offers advice on choosing the best hardware for a virtualized environment. It includes practical information on how to size servers for Oracle VM, how to create server pools, how to create virtual machines manually and with templates, and how to configure network and storage for Oracle VM. The book concludes with a chapter on best practices.

Oracle ADF Enterprise Application DevelopmentMade Simple


By Sten E. Vesterli
Packt packtpub.com
Developers need to know more than Oracle Application Development Framework (Oracle ADF) to build a successful enterprise application, so this book explains how to use Oracle ADF technology to take an application from proof of concept through estimating and structuring, coding, and completion. Readers are introduced to support tools for source

Look for other Oracle books at oracle.com/ technetwork/community/bookstore.

SEPTEMBER/OCTOBER 2011 ORACLE.COM/ORACLEMAGAZINE

Partner news

27

oracle Partnernetwork Hosts Forum at oracle openworld


The Oracle PartnerNetwork Forum, a day of exclusive meetings and networking events for Oracle partners, will be held in San Francisco, California, on October 2, 2011, in conjunction with the opening day of Oracle OpenWorld. The forum begins at 9 a.m. with partner special interest meetings where select Oracle product, industry, and channel teams will share information intended to help partners boost sales. After a networking lunch, Oracle executives will share Oracles vision for the partner community in fiscal year 2012 and brief attendees on Oracle resources that can strengthen market opportunities. Later in the afternoon, partners will break into groups by geography to discuss opportunities and issues with regional Oracle Alliances and Channels teams. Following the Oracle OpenWorld welcome keynote, Oracle PartnerNetwork members will reconvene for the annual global partner awards ceremony and reception. This event is open to attendees of JavaOne, which starts on October 2. bit.ly/kKVv7r

sage expands erP integration


Oracle Gold Partner Sage has deepened the integration of Oracle Database 11g with Sage ERP X3, its global enterprise resource planning (ERP) system. The integration improvements, found in Sage ERP X3 version 6.2, simplify the implementation of Sage ERP by integrating Oracle Database as a native component of the product; increasing the applications performance by taking advantage of new capabilities and enhancements in Oracle Database 11g; permitting oneclick installation of Oracle Database 11g with Sage ERP X3; and improving operational functions such as backups. In addition, Sage has made Sage ERP available on the Oracle Exadata platform for improved performance and scalability. sageerpx3.com

european Partners earn Hardware-related specializations


Oracle Platinum Partner LC SystemsEngineering AG of Basel, Switzerland, has achieved Oracle PartnerNetwork Specialized status across six Oracle product areas, including two hardware-related specializations. The company, a datacenter service provider, earned specializations in Oracle Database, Oracle Linux, Oracle Database performance tuning, Oracles entry-level and midrange SPARC Enterprise M-Series servers (pictured), SPARC T-Series servers, and Oracle Solaris. LC Systems-Engineering has provided datacenter solutions for more than 20 years and offers a range of services in cooperation with many solution and technology specialists. Oracle Gold Partner dignum GmbH has become one of the first organizations in Germany to achieve Specialized status in Oracles entry-level and midrange SPARC Enterprise M-Series servers, as well as specialization in Oracle Solaris. Based in Seefeld, Germany, dignum has experience in server and storage solutions, high availability, backup and recovery systems, and managed services. lcsys.ch dignum.de

Version 1 racks Up specializations


Version 1, a leading IT consulting and managed services company in Ireland , has retained its Platinum Partner status in the Oracle PartnerNetwork and has achieved Specialized status in Oracle Database 11g, Oracle Database 11g performance tuning, Oracle Real Application Clusters, Oracle SOA, and Oracle Business Intelligence foundation. Version 1s Platinum and Specialized status recognizes its expertise in delivering solutions, consulting, and support services across the full Oracle stack. version1.com

Dell services introduces oracle accelerate solutions


Oracle Platinum Partner Dell Services has introduced new solutions to help midsize organizations rapidly and cost effectively deploy enterprise software. This new service offering comes in conjunction with Dell Services achieving Oracle Business Accelerators certification and being recognized as an Oracle Accelerate for Midsize Companies solution provider. As an Oracle Accelerate solution provider, Dell Services helps midsize organizations with limited budgets to design and deploy integrated, end-to-end solutions that rival those of their larger competitors. Oracle Accelerate solutions leverage software such as enterprise resource planning, product lifecycle management, supply chain management, and business intelligence applications. Dell Services offers rapid implementation of Oracle E-Business Suite 12.1, together with services including project design and planning, as well as configuration and installation. Additionally, the company helps midsize organizations adopt industry-standard best practices and processes to help enhance productivity and competitiveness. In related news, Dell Services unveiled an Oracle Accelerate solution for the consumer packaged goods industry that leverages Oracle E-Business Suite 12.1. The Dell Services Oracle practice provides consulting services, strategy, business process re-engineering, application configuration and customization, organizational change management, testing, and maintenance services. dell.com/oracle

enkitec University to offer rapid oracle exadata training


Oracle Platinum Partner Enkitec, a consulting firm that provides Oracle Database development and support, is offering a three-day Oracle Exadata Database Machine training program. The program, called Enkitec University, uses a combination of focused lectures and problem-solving exercises. Interactive training and workshops give participants hands-on experience with Oracle Exadata hardware and software. Enkitec University is offered at Enkitecs Las Colinas, Texas, headquarters but can also be presented at customer sites. enkitec.com/university

oracle magazine September/OctOber 2011

28

Partner news

syntax earns Oracle accelerate for midsize companies specialization


Oracle Platinum Partner Syntax has achieved Oracle PartnerNetwork Specialized status for Oracle Accelerate for Midsize Companies. The specialization acknowledges Syntax attainment of sales training certifications and relevant customer references. It also recognizes development of the SyntaxExpress Accelerate Methodology, which incorporates industry-specific Oracle Business Accelerators. Syntax, based in Montreal, Quebec, Canada, and with offices in Canada and the U.S., also holds specializations in Oracles JD Edwards EnterpriseOne distribution and configurable network computing solutions and JD Edwards EnterpriseOne financial management applications. syntax.net

Oracle exastack launches


The processing and performance benefits of Oracle Exadata Database Machine and Oracle Exalogic Elastic Cloud are now available to independent software vendors (ISVs) via the Oracle Exastack program. Through the Oracle Exastack program, Oracle is working with ISVs to optimize their applications on these engineered systems. With Oracle Exastack, ISVs can write applications once and have the flexibility to support both on-premises and cloud-based deployments. ISVs can now develop applications more quickly and focus R&D investments on their core functionality. oracle.com/partners/goto/exastack

centric it solutions earns Platinum Partner level


Centric IT Solutions GmbH has achieved Platinum Partner status in Oracle PartnerNetwork and has achieved Specialized status for Oracles JD Edwards EnterpriseOne financial management applications. Centric is a leading IT company in the Netherlands and has branches in Belgium, Germany, Norway, Romania, Sweden, and Switzerland. Centric IT Solutions is part of the 9,100-employee Centric group. centric.eu

temenos leverages Oracle exadata


Oracle Gold Partner Temenos has made TEMENOS T24 (T24), its open architecture advanced banking system, available for Oracle Exadata Database Machine in a preconfigured core banking solution. Temenos will offer banks embarking on a legacy renewal program Oracle hardware, including Oracle Exadata, preconfigured to support T24 implementations. The combination of T24 and Oracle Exadata will enable medium and large banks to take advantage of T24s prepackaged functionality and the efficiency, security, and fault tolerance of Oracle Exadata. temenos.com

sYstime achieves JD edwards advanced specializations


Oracle Platinum Partner SYSTIME has achieved Oracle PartnerNetwork Advanced Specialized status for Oracles JD Edwards EnterpriseOne distribution and configurable network computing solutions. The specializations recognize SYSTIMEs capabilities in assessing and deploying JD Edwards solutions. To qualify for Advanced Specialized status, a company must employ 50 or more certified specialists in the relevant product area and meet the criteria for Specialized status. systime.net

PasswordBank Joins Oracle extended identity management ecosystem


PasswordBank Technologies has joined the Oracle Extended Identity Management Ecosystem program. PasswordBanks identity and access management and single-sign-on solutions are integrated with the framework of the Oracle Extended Identity Management Ecosystem. The PasswordBank platform provides secure access to applications in heterogeneous environments by extending single-sign-on functionality to non-Windows desktops. The PasswordBank solution works with Webbased, software-as-a-service, client/server, and legacy applications. Its features include a password manager, virtual provisioning, user activity audit, Web-based administration, workstation events monitoring and support, a password self-service portal, multifactor authentication, a time and attendance markup system, privileged identity management, and privileged user management. passwordbank.com

micrOs systems and subsidiary earn six specializations


Oracle Platinum Partner MICROS Systems and its subsidiary MICROS-Fidelio International, which provide IT solutions for the hospitality and retail industries, have achieved Specialized status in six areas: Oracle Database, Oracle Database performance tuning, Oracle Database security options, Oracle Database Real Application Clusters, Oracle Enterprise Manager, and Oracle Business Intelligence foundation. micros.com

strong authentication Provider authasas goes gold


Authasas, a provider of strong authentication solutions for virtualized desktop infrastructures, is now an Oracle Gold Partner. Authasas provides authentication solutions for Oracle Identity Management. Specifically, Authasas Advanced Authentication software provides several forms of strong authentication, including biometric fingerprint, contactless smartcards, and security questions, to Oracle Enterprise Single Sign-On Logon Manager. authasas.com

September/OctOber 2011 Oracle.cOm/Oraclemagazine

Lindy GrOeninG

Community Bulletin by Justin Kestelyn

29

Worthy of membership

Oracle technology network redefines what it means to be a member of the club.

roucho Marx famously said, I dont want to belong to any club that will accept people like me as a member. 1 Replace club with community, and you have an interesting basis for discussion. There are various competing theories of community out there, ranging from the passive to the active. (In the context of this discussion, a community is either partially or completely virtualhence geographically neutralin nature. Once upon a time, nearly all communities were built on the premise of shared geography.) On the passive end of the spectrum lies the community of interest, in which any people with a shared interest are implicitly membersChicago Bears fans, for example. On the active end, where the open source world lives, its been said that community membership is defined only by contributions (of code, money, and/or time). And in the middle, at the top of the bell curve, is the virtual community, where according to Howard Rheingold in his book The Virtual Community (The MIT Press, 2000), people carry on public discussions long enough, with sufficient human feeling, to form webs of personal relationships. Since its inception, the Oracle Technology Network (OTN) program has tilted toward the passive end of this spectrum. Historically, the bonds of shared interest as expressed by ticking a checkbox in ones oracle.com account preferenceshave been sufficient for helping the OTN team define what a community member is. But this action of self-identifying as an Oracle Technology Network member had the undesirable side effect of dividing the community between the active and the passive, because a community of interest does not necessarily imply that all its members are actively participating and engagedeven if they consider themselves part of the community. And for the health of the program, counting
1 Source: en.wikiquote.org/wiki/Groucho_Marx

oracle technology network turbocharges oracle openWorld


If youre an Oracle OpenWorld attendee this year, prepare yourself for the usual excitement infusion from the Oracle Technology Network (OTN) program. Highlights include Numerous technical sessions led by Oracle ACEs The massive OTN Night party on Monday night (check the conference agenda for location) Morning coffee/afternoon beer; daily raffles; community meetups; live tech chats; and free software, T-shirts, and other swag at the OTN Lounge (check agenda for location) Please stop by these sessions, events, and the OTN Lounge, and see the team! Oracle OpenWorld Registration oracle.com/openworld

active members is importantfor reasons I will describe in a moment. Given these factors, the OTN team has decided to make a break with the past. Going forward, our model of community membership will be based on activity, not self-identification. In other words, we will consider you a member based on what you do, not what you call yourself. If you are a technical newsletter subscriber, we will consider you an Oracle Technology Network member. If you have logged in for a download or to post a discussion forum message over a certain time period, we will consider you a member. If you are a subscriber to Oracle Magazine or Java Magazine, we will consider you a member. And so on. (Case in point: nearly half of our newsletter subscribers today do not in fact self-identify as Oracle Technology Network members.) Please keep in mind, this process is completely transparent to youyou wont notice any change in the benefits of membership; we are simply expanding the definition of what constitutes a member. Why is that important? Because the course direction of the program is charted according to the needs and interests of its members, and without knowing who those members are, the program is adrift. Circling back to the idea of what you do, I have a request. As you read this, you have possibly already received an invitation to take our five-question, one-minute survey.

I implore you to participate, because the OTN team truly needs to know more about you before we can create and prioritize new objectives for the program. If you have not received the invitation, youll find it at oracle .com/technetwork/goto/survey. By the way, the team could have gone another direction: requiring self-identification as a gateway to benefits. But this would have added an unnecessary layer of complexity and raised the bar for membership overall. Groucho would not have approved.

Justin Kestelyn
(justin.kestelyn@oracle .com) is senior director, Oracle technology network and developer programs, as well as Oracle technology network editor in chief.

WeB loCator
oracle technology network Home oracle.com/technetwork Become a member oracle.com/technetwork/community/join/ overview Database admins and Developers Home Page oracle.com/technetwork/dbadev System admins and Developers Home Page oracle.com/technetwork/systems architect Home Page oracle.com/technetwork/architect

oraCle magazine september/OctOber 2011

30

architect by bOb rhubart

getting Schooled

education, training, and experience are stepping stones to a career as a software architect.

here is more to being a successful software architect than learning the secret handshake and showing up at the meetings. You need education. You need training and experience. The specifics of the education, training, and experience depend on which branch of the profession you plan to enter. And given the variety of roles under the software architecture umbrella, it should come as no surprise that there is more than one path to an architecture career. In order to gain some insight into the possible paths, lets take a look at the experience of three very different architects. Our first architect, Helen Sun, has a PhD in educational technology and information systems from the University of Toledo. She started out as an educator, but a fascination with technology pulled her in a different direction, a shift that ultimately led to her current role as an Oracle enterprise architect. Although an advanced degree is not a prerequisite to being an architect, Dr. Sun says, the critical thinking I acquired in my PhD study and the habit of turning over every stone are definitely beneficial to what I do. And shes done a lotdatabase and Web programming, database administration, data warehousing, and business intelligenceas she moved through various leadership positions. That diverse background is a real boon in her role as an enterprise architect. But experience alone will only get you so far. Sun bolstered her technical experience with training and certification in the Open Group Architecture Framework (TOGAF). She also completed Oracles internal enterprise architecture master class and earned Oracle enterprise architect certification. Our second architect, Karine Ishkhanova, who holds a PhD from Moscow State University, says she grew into her role as a system architect with Toronto, Ontario,

What works for me is the analytics basics i got through my computer science degree.
Ronald van Luttikhuizen Canadabased TFA Wise Applications. My original university education was in economics. When I immigrated to Canada in 1996, I faced the task of integrating my skills into the Canadian professional market. I opted to complete an intensive programming course at the Institute for Computer Studies. Ishkhanovas experience includes working on the Y2K conversion for a global accounting firm, developing an automated processing interface for credit card chargebacks, and creating a custom invoiceprocessing module. That project was the first step that pushed me to concentrate my professional growth toward becoming a fully qualified technical lead and system architect, she says. Already a Sun Certified Java Programmer and a Sun Certified Java Developer, she is now studying to earn the Oracle Certified Master, Java EE Enterprise Architect certification. IT is a very fast-paced industry, so one always has to look forward and anticipate what skills to master to stay in demand, Ishkhanova adds. Our third architect, solution architect and Oracle ACE Director Ronald van Luttikhuizen, focuses on SOA and middleware in his role as managing partner at Vennster. His path to that role included earning a masters degree in computer science from the University of Utrecht in the Netherlands, where he specialized in algorithmic design. He also earned Java certification and has had training in

TOGAF, Oracle technologies, and objectoriented programming. What works for me is the analytics basics I got through my computer science degree, and doing lots of hands-on projects for lots of customers, says van Luttikhuizen. He credits his success over the last 10 years to a combination of a solid education and onthe-job experience. The experience of three architects in three different roles certainly doesnt represent the entire profession. But the common thread in each of their stories offers guidance to those interested in building a career as an architect in the IT realm. It turns out that the real secret handshake necessary to gain entrance into the club is a willingness to hit the books, to do the work, and to never stop learning.

Bob rhubart
(bob.rhubart@oracle.com) is manager of the architect community on Oracle technology Network, the host of the Oracle technology Network archbeat podcast series, and the author of the archbeat blog (blogs.oracle.com/archbeat).

neXt StePS
liSten to archBeat podcasts feeds2.feedburner.com/otnarch2arch bit.ly/9X6j2t eXPlOre education and training resources The Open Group opengroup.org Arcitura arcitura.com IASA iasaglobal.org Oracle University courses for architects education.oracle.com

September/OctOber 2011 Oracle.cOm/Oraclemagazine

Oracle OpenWorld 2011 October 26 San Francisco


Visit Oracle Press in the Oracle OpenWorld bookstore for free gifts, prize drawings, book signings, sneak previews, and more.

Oracle BPM Suite 11g Handbook Manoj Das, Manas Deb, and Mark Wilkins Learn best practices for successfully implementing business process management projects

Oracle Hyperion Financial Management Tips and Techniques Peter Fugere The definitive guide for working with and optimizing Oracle Hyperion Financial Management

Java: The Complete Reference, Eighth Edition Herb Schildt The definitive guide for Java programmersfully updated for Java SE 7

Oracle Database 11g and MySQL 5.5 Developer Handbook Michael McLaughlin Work seamlessly in a mixed-database environment

Oracle Database 11g Real Application Clusters Handbook, Second Edition K Gopalakrishnan Architect a scalable, highly available database environment

Oracle WebLogic Server 11g Administration Handbook Sam R. Alapati Install, configure, manage, and secure Oracle WebLogic Server 11g

E-BOOKS: Go to OraclePressBooks.com for Adobe Digital Editions (PDF) or Amazon.com for Kindle Editions. Join the Oracle Press Community: www.OraclePressBooks.com Follow us @OraclePress

32

Up clOse by carOline KvitKa

global explorer

OaUG president mark clark wants to expand the organizations reach beyond north america.

ark Clark isnt afraid to go exploring. In fact, when I talked with him during his recent visit to Oracle headquarters, he had just returned from the mountains where he had a run-in with a mother bear and her cubs. Now out of harms way, he says hes ready for another adventure. This time, Clark will be undertaking new explorations as Oracle Applications Users Group (OAUG) president, a role in which he hopes to extend the user groups activities to other regions of the world. Id like to see OAUG expand geographically, says Clark, a 20-year veteran of OAUG who has served in a variety of positions with the organization, including membership chairman and executive committee member. Traditionally, OAUG has been very strong in North America. A lot of our members are making their first trips globally, pushing forward to Brazil or Asia, and they want information from their peers on the pros and cons, the challenges, and the pitfalls. Global exploration, says Clark, will include building on events such as OAUG Connection PointDubai, a two-day education and networking event. The third annual OAUG Connection PointDubai event in March attracted more than 300 attendees from all over the Middle East and featured Cliff Godwin, senior vice president of applications development at Oracle, who provided an update on the Oracle E-Business Suite product line. Conference topics included new features in Oracle E-Business Suite 12, upgrade best practices, and enterprise performance management. OAUG has also expanded its horizons by partnering with the German Oracle Users Group (DOAG) on the DOAG Applications Conference in May. At this three-day event, the spotlight was on Oracle Fusion Applications, with Oracle representatives presenting the next generation of Oracle Applications.

NetworkiNg Still ruleS OAUGs global reach with education and networking events makes sense, given Oracles growth in the applications area. When OAUG first started, Oracle was just expanding from database into applications, Clark says. There were very few sources for

Oracle OpenWorld presents an optimal opportunity for education, networking, and interacting with Oracle developers and product managers. At the upcoming conference (October 2 to 6, 2011) OAUG is offering 50 sessions at User Group Sunday (October 2) geared toward both geographic and special interest groups. OAUG will also offer 30 sessions over the course of the week on topics including master data management and Oracle Fusion Applications. give Back As we wrapped up our interview, Clark promised to limit his wildlife adventures to his familys new peta retired Greyhound. He also shared his advice for new OAUG members, likening new membership to working with a new Oracle application. From an implementation standpoint, we always try to do a sandbox instance, and we encourage people to roll up their sleeves and really interact with Oracle, Clark explains. I would talk to new members the same way. Id encourage them to join the user group, get involved, attend a special interest group or local geographic group meeting. And then think about giving a presentation on their ownor evangelizing the OAUG message throughout their organization.

OaUg president mark clark

information about the applications. Peer-topeer was probably one of the best ways to get information. Now that Oracles applications offerings are broader, OAUG members need to find information that is relevant to their specific needs. But with so much information available online about Oracle Applications, from a variety of sources, Clark says that networking is more important than ever. Finding that person you can network with and communicate with is key, he says. Education and networking, in fact, top the OAUG member wish list. We survey our members every year to find out whats important. The first is educational events, the second is networking opportunities, and the third is for OAUG to have a good interactive relationship with Oracle, Clark says.

caroline Kvitka
(caroline.kvitka@oracle .com) is senior managing editor of Oracle Magazine and Java Magazine.

nexT sTeps
learn more about OaUg oaug.com WaTcH the interview oracle.com/oramag/upclose

September/OctOber 2011 Oracle.cOm/Oraclemagazine

bOb adler

Now, manage both your UPS and your energy proactively.


CO2
CO2 emissions monitoring:
Reduce environmental impact through increased understanding of CO2 emissions.

Energy usage and energy cost reporting:


Save energy and money by tracking energy usage and costs over time.

Risk assessment:
Identify and proactively manage threats to availability (e.g., aging batteries).

Only APC Smart-UPS saves money and energy without sacrificing availability.
Todays more sophisticated server and networking technologies require higher availability. That means you need more sophisticated power protection to keep your business up and running at all times. But thats not all. In todays economy, your UPS must safeguard both your uptime and your bottom line. Only APC by Schneider Electric helps you meet both of these pressing needs. Specically, the APC Smart-UPS family now boasts models with advanced management capabilities, including the ability to manage your energy in server rooms, retail stores, branch ofces, network closets, and other distributed environments.

Why Smart-UPS is a smarter solution


Intuitive alphanumeric display
Get detailed UPS and power quality information at a glance including status, about, and diagnostic log menus in up to five languages.

Intelligent UPS management software


PowerChute Business Edition, which comes standard with Smart-UPS 5 kVA and below, enables energy usage and energy cost reporting so you can save energy and money by tracking energy usage and costs over time; CO2 emissions monitoring to reduce environmental impact through increased understanding; and risk assessment reporting so you can identify and proactively manage threats to availability (e.g., aging batteries).

Configurable interface

Best-in-class UPS
Our intelligent, interactive, energy-saving APC Smart-UPS represents the combination of more than 25 years of Legendary Reliability with the latest in UPS technology including an easy-to-read, interactive, alphanumeric LCD display to keep you informed of important status, conguration, and diagnostic information. It also has a unique battery life expectancy predictor, and energy-saving design features, like a patent-pending green mode. Now, more than ever, every cost matters and performance is critical. Thats whyyou should insist on the more intelligent, more intuitive APC Smart-UPS.

Set up and control key UPS parameters and functions using the intuitive navigation keys. On rack/tower convertible models, the display rotates 90 degrees for easy viewing.

Energy savings

A patent-pending green mode achieves online efficiencies greater than 97 percent, reducing heat loss and utility costs.

Download White Paper #24 Effect of UPS on System Availability, and register to win an APC Smart-UPS 1500VA rack/tower LCD 120V, a $779 value!
Visit www.apc.com/promo Key Code e646v Call 888-289-APCC x6291

2011 Schneider Electric. All Rights Reserved. Schneider Electric, APC, Smart-UPS, PowerChute, and Legendary Reliability are trademarks owned by Schneider Electric Industries SAS or its affiliated companies. email: esupport@apc.com 132 Fairgrounds Road, West Kingston, RI 02892 USA 998-4144_US

34

Peer-TO-Peer by bLAir CAmpbELL

in with the new

rave reviews for virtualization, Oracle Exadata, and the twittersphere

Julien gabel

Fahd mirza

FriTs hOOgland

company: Silca, the it production group of Frances Crdit Agricole banking group Job title/description: multiplatform UNiX systems consultant and administrator, working in mutualized and virtualized environments deploying Oracle Solaris and UNiX location: paris, France length of time using Oracle products: more than 10 years What is your favorite tool on the job? Im interested in pinpointing the root cause of performance problems, and Ive found DTraceintroduced in Oracle Solaris 10to be an invaluable tool for this. It has enhanced understanding of how things work at the operating system level, as well as providing a better understanding of the metrics reported by more-classic tools. What about a favorite strategy? I encourage a focus on virtualization, both for myself and among my team membersparticularly when the project is based on zones and ZFS, which completely revolutionized and extended the possibilities of virtualized configurations. Nowadays, one virtualization technology or another can be the solution for most workloads I see. If you were going to the International Space Station for six months and could only take one Oracle reference book, what would it be? Without hesitation, its Solaris Performance and Tools: DTrace and MDB Techniques for Solaris 10 and OpenSolaris [Prentice Hall, 2006]. This book is a must-have, covering both tools and methodologies for performance observation and debugging.

company: pythian, a firm specializing in remote DbA services and consulting Job title/description: DbA consultant, managing configurations based on Oracle solutions location: Wah Cantt, pakistan Oracle credentials: Oracle Certified professional (Oracle Database 10g, Oracle Database 11g), with 23 years of experience using Oracle products What technology has most changed your life? The Oracle Exadata Database Machine. Its changed the game and has set very high standards of performance, scalability, reliability, and support unification. Managing mixed OLTP [online transaction processing] /data warehouse workloads on a single view of the system has made things easier and seems so natural. With our clients who are using Oracle Exadata, Ive seen gigantic improvement in ETL [extract, transform, and load] processes, analytics, and reporting, and the notion of nightly batch jobs when interactive users are sleeping is now obsolete. You can run anything at any time. How are you currently using cloud computing in your work? My whole job is on the cloud. With only my browser and a remote SSH [Secure Shell] session, I manage Oracle databases around the globe without ever touching, seeing, or knowing the physical location of their servers. How do you use mobile computing? Ive configured my mobile devices to access Pythians custom monitoring tool and made those devices Oracle Grid Controlaware. Now I cant see how I survived without this setup.

company: VX Company, an it service provider Job title/description: principal consultant, handling Oracle Exadata installation and configuration and it consulting in the performance area location: baarn, the Netherlands length of time using Oracle products: 15 years How did you get started in IT? I really got started by figuring out the architecture of my home computer during high school. It was an MSX2a 1980s-era collaboration between Microsoft and ASCII Corp. that was especially popular in Europewith a Z80A microprocessor, first designed by Zilog in the mid-1970s, at a whopping speed of 3.58 MHz. Five years later, I got my first IT jobas a Clipper programmer. [Clipper was a compiler for the dBASE III language, for MS-DOS.] Which new features in Oracle technology are you currently finding most valuable? The Oracle Exadata Database Machines optimizations have proven very valuable especially the Smart Scan feature, which greatly reduces full scan response time. How do you use social media in your professional life? I blog and use Twitter. Im both communicating with other IT professionals through Twitter and using it as an information aggregator. I used to use RSS feeds to get information about new blog posts, but now I let blog aggregators tweet them to me. Twitter is the newsgathering medium that costs me the least time, because it combines new blog posts, local and world news, and messages to and from industry peers.

Learn more about the Oracle ACE program at otn.oracle.com/community/oracle_ace. SEptEmbEr/OCtObEr 2011 Oracle.cOm/Oraclemagazine

ADVeRTISIng SUPPleMenT

SPARC TeChnology

Both Oracle and Fujitsu are focused on the future of SPARC technology and that promises to pay off for Oracle users in the coming years.

ata centers have to contend with the ongoing day-to-day challenges of keeping critical systems up and running in support of the business. But they also have to look beyond today to determine how they will handle growing workloads and support new business processes and strategiesall while keeping costs down. To help in that effort, Fujitsu and Designed to provide mainframe oracle released a roadmap last year for SPARC enterprise servers running performance at open-system oracle Solaris, depicting how these costs, these servers solidify the systems would evolve and continue to commitment to SPARC/Solaris deliver higher levels of performance products that deliver improved over the next five years. value and efficiency. Recently, the two companies took a long step forward in executing the SPARC roadmap with the launch of an enhanced SPARC enterprise M3000, which uses the new SPARC64 VII+ processor, and features the logos of both companies.This server is the latest result of a 20-year-plus relationship between Fujitsu and Oracle, and it further solidifies the commitment in providing Oracle Solaris products that deliver improved value and efficiency.

ADVeRTISIng SUPPleMenT

The SPARC enterprise M3000 is designed to provide mainframe performance at open-systems costs. And it reflects the key qualities that enterprise servers should deliverhigh performance, high levels of availability and customer investment protection.

Enhancing the SPARC Lineup


The new SPARC enterprise M3000 joins a complete lineup of Fujitsu and SPARC enterprise M-Series servers,

which range from the single-socket M3000 to the 64-socket M9000. The SPARC enterprise M-Series servers run oracle Solaris and deliver reliability, scalability, virtualization and tightly engineered performance optimizations for companies using mission-critical applications, including oracle Applications and Fujitsu applications. For example, the new SPARC64 VII+ processor offers up to 20 percent better performance than the previous generation SPARC64 VII processor. It provides faster memory access and increased compute power, including

An end-to-end Perspective on oracle


The shared focus on SPARC technology is just one aspect of the Fujitsu and oracle relationship. over the course of two decades, the companies have worked together on everything from innovative applications and middleware solutions to service-oriented architectures, data management, business-critical computing and grid computing. Fujitsus strength in the oracle arena was recently highlighted in an independent report. Fujitsu was positioned in the leaders category of The Forrester Wave: oracle Services Providers, Q2 2011 report.The leaders category is the top-ranking section of the report. The report stated that Fujitsu invests substantially in co-development and innovation related to oracle and is one of the leading partners in the Fusion applications space. As a global IT company, Fujitsu provides end-to-end technology, services and expertise for oracle users, from consulting to design, build, implement and maintain activities. Fujitsu offers: Comprehensive IT, business and infrastructure services, with a number of Oracle-specific managed and professional services covering applications, infrastructure and business imperatives such as operational excellence and customer experience. Fujitsu has experience and expertise with oracle e-Business Suite; oracles Siebel, PeopleSoft, and JD edwards applications; and oracle industry solutions as well as oracle Fusion Middleware and oracle Database. A range of data center technologies, which focus on the creation and delivery of Dynamic Infrastructures supporting oracle applications and the oracle technology stack. Dynamic Infrastructures combine products, solutions and services that enable companies to assign IT resources dynamically to services as required, and to choose sourcing models that best fit their businesses, bringing IT flexibility and efficiency to the next level. Fujitsu has some 3,500 oracle professionals working in more than 20 countriesand the depth of their knowledge is well-documented by oracle itself. For example, Fujitsu, an Oracle Platinum Partner, was the first global partner to earn the Oracle PartnerNetwork (oPn) Specialized status for SoA. To earn an oPn specialization, an organization has to meet a stringent set of requirements in a certain area. overall, Fujitsu has 25 oPn specializations in oracle-related hardware, software and industriesand that number is growing.

an increased clock speed of up to 3.0 ghz, and a doubling of the size of the l2 cache up to 12MB.This type of improvement is actually part of Fujitsus long term strategy. Companies using SPARC enterprise servers have always benefited from regular increases in performance because Fujitsu is constantly improving its CPU and memory architecture. Fujitsu regularly releases processors that deliver significant performance increases by adding cores, introducing ever more sophisticated threading mechanisms, and extending CPU cache capacity. In addition to drawing on the power of the new processor, the SPARC hardware and oracle Solaris software have been jointly engineered to optimize oracles software in its performance and functionality. As a result, organizations running oracle enterprise Manager ops Center 11g can take advantage of new SPARC Enterprise M-Series-specific management capabilities such as creating and provisioning Dynamic Domains.The recent improvements to oracle enterprise Manager ops Center means that SPARC enterprise M-Series customers can use the same software to manage the entire integrated stack, from applications to the servers. To help data centers meet the challenges of both today and tomorrow, Fujitsu and oracle offer a broad range of no-cost virtualization technologies. These can be mixed and matched in order to support a companys specific needs for business continuity, agility and improved business operation, for every application requirement, all in the same box. For example, an organization can efficiently run databases in Dynamic Domains in an SPARC enterprise M-Series server and the applications in oracle Solaris Containers in other Dynamic Domains in that same SPARC enterprise M-Series server. SPARC enterprise M-Series virtualization technologies provide no-cost,

low-overhead, secure and dynamic partitioning that meet all the business requirements for flexible resource allocation. The SPARC enterprise M-Series server family provides the high availability required for always-on 24/7 missioncritical computing.The SPARC enterprise M8000 and SPARC enterprise M9000 even include processor and memory hot-swap capabilities. The SPARC enterprise M-Series family includes predictive self-healing, with an automated loop of detection, correction, dynamic de-allocation and maintenance. error detection and correction features are built into the processors, system interconnects, and other hardware components. This not only takes the self-healing load off of the operating system and applications, it also helps ensure that the platform can truly manage itself. Besides extending the number of cores, increasing cache capacity and clock frequencies, Fujitsu continues to devote significant resources to ensuring its systems remain at the forefront of mission critical technology. Finally, the SPARC enterprise M-Series server line is designed to help data centers adapt to growing energy-usage and environmental mandateswhich in turn helps control costs. For example, the enhanced SPARC enterprise M3000 server provides up to 37 percent lower power consumption, compared to similarly equipped competing hP and IBM servers, while minimizing the environmental impact of Co2 emissions. With such performance, it has achieved Fujitsus highest sustainability-related classification of Super green Product. The SPARC enterprise M-Series line with oracle Solaris provides a high-performance foundation for mission-critical computing with unmatched investment protection, sums up John Fowler, oracle executive Vice President, Systems. Through oracles collaboration with Fujitsu, we are providing customers with powerful SPARC/oracle Solaris-based systems designed to provide best-in-class performance from application-to-disk.

Tracking Success
Fujitsus recent record of Oracle related achievements includes:
n n n

Database Award 2011 ( Japan) exadata Award 2011 ( Japan) Fujitsu has been positioned in the leaders category of The Forrester Wave: oracle Services Providers, Q2 2011 report Won the oracle global Partner of the year award at oracle openWorld 2010 for its work with the Ministry of Justice in Japan Received two honorable mentions (Titan) awards at oracle openWorld 2010 for projects in the USA (Manufacturing & Distribution and Supply Chain Management) First global oracle SoA (Service oriented Architecture) Specialized Partner.

Recipient of the oracle global enable the eco-enterprise award both announced at openWorld 2010 Winner of Public Sector Partner of the year award at UK oracle User group (UKoUg) Awards 2010. Received a further two Bronze Awards (Training and Middleware). These awards are the only ones voted for by oracle customers anywhere in the world In addition, Fujitsu also won the following oracle awards in 2010:Technology System Integrator Partner of the year (UK), oracle Japan Industry Partner of the year for Innovation, oracle Japan Database Award and oracle Japan exadata Award

ADVeRTISIng SUPPleMenT

Powering next-generation operations


The Andersen group companies sell quality breads through 450 stores across Japan, as well as locations in Denmark and the US.Within the group, each company essentially managed its own operations with its own systems. But to keep up with order volumes, the company decided to move to what it calls next generation Total SCM, based on a group-wide technology platform. Until now, each group company has been optimizing its systems separately. However, for TCO reduction and efficient administration on a group-wide scale, these systems must all inter-work harmoniously, says Toshiaki horio, manager of the companys System Support Department.The company tackled that problem with a single platform that could support applications for ordering, procurement, manufacturing, inventory control and shipmentand ensure that they all work together. To create this platform, the Andersen group implemented two clustered Fujitsu SPARC enterprise M3000 servers and Fujitsu eTeRnUS 2000 storage systems. From my long experience with UnIX servers, I consider the latest [SPARC enterprise] model with the sophistication of multi-core processors and virtualization to be dependable, because we know many companies worldwide are using it, says horio. In addition, SPARC enterprise M3000 can provide high performance with low cost. The new group-wide system has indeed delivered a number of such benefits.The Andersen group has seen application server performance improve by a factor of 2.3, while database server performance has improved 3.5 times.With the clustered approach, both hardware and operating system reliability have improved as well, and maintenance is easier. Data backup time was reduced to around one hour and forty minutes from over three hours, says horio. Meanwhile, the company has been able to consolidate applications, including inventory control and data warehouse applications, and reduce the number of servers it needs from three to two. This has helped reduce server administration, space and power requirements, and contributes to a low TCo for the platform. overall, the Fujitsu technology is helping the company meet the needs of today and tomorrow, says horio: The new system keeps response times constant even when handling multiple transactions. The new system will also be able to handle application workloads which will be added in the future.
Certified No.1 in the world

The SPARC Journey Continues


Fujitsu and oracle have a long history of working together on a variety of fronts, and that includes tightly coupled development plans for SPARC and oracle Solaris. earlier this year, the two companies extended their SPARC development relationship with a new product distribution agreement and a commitment to further joint engineering, marketing and sales promotion efforts. Meanwhile, both companies have engineering centers focusing on SPARC and oracle Solaris technologies, with the engineers in their respective centers working and collaborating closely together.The two companies have also established virtual teams that focus on

various aspects of the SPARC enterprise server effort, such as data center server teams, mid-range server teams, service processor software teams, oracle Solaris teams and documentation teams. In addition, Fujitsu and oracle Japan have established a SPARC enterprise-oracle Database Solution Development Center that works on creating solutions for next-generation standard IT infrastructures. For its part, Fujitsu builds on its deep expertise in SPARC technol-

ogy developed over many years. Fujitsu provided SPARC technology to Sun and was an Innovation Partner of Suns for years, and that focus has continued through oracles acquisition of Sun. Whats more, recent efforts at Fujitsu have taken SPARC technology to new heights, with the K computer, built by Fujitsu and RIKen, a Japanese research institute. Based on Fujitsu SPARC chips, the K computer, currently not even fully configured, recently achieved the highest performance level in the world, with a lInPACK benchmark result of 8.162 quadrillion floating-point operations per second. The experience and knowledge enhanced through such innovations constantly strengthens our ability to use SPARC technology in enterprise computing, says noriyuki Toyoki, Corporate Senior Vice President at Fujitsu. on another level, Fujitsu has re-aligned and re-focused its various business units into a cohesive, global one Fujitsua $55 billion company with some 170,000 employees, and one of the largest ICT providers in the world. This allows the company to closely align its SPARC and oracle resources with those of oracle, around the world. I

For more information on Fujitsu and SPARC technology, please visit www.fujitsu.com/oracle and www.fujitsu.com/sparcenterprise. or, visit the Fujitsu Booth #1311 at oracle openWorld 2011.

Specialized
Oracle PartnerNetwork
50+ Product Specializations Recognized by Oracle Preferred by Customers

Differentiate Yourself

partner.oracle.com or call 1.800.323.SELL

Copyright 2010, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

40

Organizations deploy x86 blade servers from Oracle to reduce costs and sharpen business services.

ervers on the Cutting Edg

by DaviD a. kelly
nce deployed only as Web servers and in less-critical deployment scenarios, x86-based servers are now deployed in datacenters and cloud computing environments across the globe and are successfully powering business-critical applications. x86 processors, including Intels powerful Xeon processors, are the processing foundation for cutting-edge Oracle hardware, including database and storage appliances such as Oracle Exadata. With standards-based x86 servers powering the engine rooms of so many organizations IT infrastructures, what differentiates Oracle x86-based servers?

41

oracle magazine September/OctOber 2011

42

We manage the storage of very, very large data sets. . . . a few years ago, we were talking 100 mB; now were pulling in terabyte and multiterabyte data sets.
Young Sul, Senior Systems Administrator, Department of Health Care Policy, Harvard Medical School Part of the attraction of purchasing x86-based servers from Oracle is that theyre delivering an optimized hardware and software technology stack, says Jean S. Bozman, research vice president for the Enterprise Platforms Group at International Data Corporation (IDC). For Oracle, its not just a matter of selling a lot of small servers but of providing solutions that support certain types of workloads appropriate for the enterprise, midmarkets, and service providers, and putting in the layers of Oracles software that support those workloads. Oracle Delivers real HOrsepOwer fOr HarvarD MeDical scHOOl Gathering and organizing volume data that informs decision-makers requires significant processing capacity. Thats one of the key reasons that the IT group at the Department of Health Care Policy at Harvard Medical School turned to Oracles Sun servers to power high-end statistical analysis jobs. While the department isnt terribly large in terms of users, the types of high-volume transfer and highvolume statistical jobs that we run tend to push the limits of typical enterprise systems, says Young Sul, senior systems administrator, Department of Health Care Policy, at Harvard Medical School. Thats why Oracle [hardware and software] has always been a good fit. The Department of Health Care Policy at Harvard Medical School is an interdisciplinary department that includes doctors, economists, sociologists, psychologists, and other specialists. It manages studies and research on healthcare, from the impact of social networking to outcomes for posttraumatic stress disorder treatments. The department is composed of about 140 people, including primary investigators, statisticians, and statistical programmers. As might be expected, much of the analysis relies on manipulating very large data sets and in-depth number crunching, requiring enterprise-class server horsepower and highly scalable, high-bandwidth storage. We manage the storage of very, very large data sets and the acquisition of servers that can handle the kinds of statistical processing that our investigators and statisticians need to do for the publications theyre working on, says Sul. A few years ago, we were talking 100 MB; now were pulling in terabyte and multiterabyte data sets. Its ramped up significantly. For most of its 25 years, Health Care Policy has been a Sun shop, from its disk arrays to servers to Web servers. Key decision factors for using Oracles x86-based Sun servers include price for performance and a consistent management and deployment experience. When we introduced our first x86 system a few years ago, it became one of the most popular systems

SnaPSHOt

Department of Health care Policy, Harvard medical School


www.hcp.med.harvard.edu location: Boston, Massachusetts employees: More than 140 Oracle products: Sun Fire X4470 and other Sun Fire x86 servers, Oracle Solaris 10

Oracle in the engine room


In addition to scalability, reliability, and price/performance benefits, one of the key factors making x86 servers so popular is the relatively fast rate of change in the underlying CPU and chipset technologies. Newer processors are faster, and organizations like faster servers.
Our releases are timed with the pace of development in the x86 market, says Ali Alasti, vice president of x86 management at Oracle. As new x86 CPUs and chipsets are made available, we introduce new systems that take advantage of those latest releases. Instead of just delivering raw processing power in a new server, however, Oracle is focused on delivering x86-based solutions tested and benchmarked combinations of the latest chips with enterprise-tuned configurations, with integrated software packages and options. Oracle offers a range of x86 servers, both rackmount and blades, engineered for virtualization (with Oracle VM), high performance, availability, and reliability. In July 2011, for example, Oracle announced the availability of the Sun Fire X4800 M2 server. The rackmount server is powered by up to eight Intel Xeon E7-8800 processors and features 2 TB of memory, 4.8 TB of internal storage, eight hot-swappable PCI ExpressModules, and Oracle Integrated Lights Out Manager. The x86-based system is optimized to run Oracle Solaris, Oracle Linux, and Oracle VM.

September/OctOber 2011 Oracle.cOm/Oraclemagazine

among the analysts to work on, says Sul. It actually became a little problematic because everyone wanted to use it, since it was just much, much faster than what we had previously. Currently, Health Care Policy has several x86 serversSun Fire X4470 and other Sun Fire x86 servers deployed. The prices for x86-based systems are competitive, but according to Sul, one of the more important benefits of an x86-based architecture is its scalability. Since the systems are homogeneous, it makes it easier for us to incorporate new hardware whenever we need to, says Sul. For example, weve recently been purchasing multi-CPU dense systems with lots of memory, which are great for statistical analysis. Another real advantage for Sul and the Health Care Policy group is the management solutions Oracle provides. The lights-out management feature [Oracle Integrated Lights Out Manager] is really convenient for us because it allows us to control, manage, and even reboot a frozen server from a remote console, says Sul. More for Less at CBoe HoLdings When your business is built around microsecond response times for trading in highly active financial derivatives products, performance, reliability, and availability dont just mattertheyre all that matters. Thats why CBOE Holdings migrated its infrastructure to Oracles Sun x86 servers. Moving to x86-based servers wasnt only a good idea; it was essential to our business, says Gerald OConnell, executive vice president and CIO at CBOE Holdings. Price, performance, and capability on x86based servers are all significantly better than our previous architecture. Established in 1973, CBOE Holdings is the largest U.S. options exchange and creator of listed options. In

The high-volume transfer and statistical jobs that Harvard medical Schools Department of Health care Policy run tend to push the limits of typical enterprise systems. Thats why oracle [hardware and software] has always been a good fit, says the departments Young Sul.

Dave braDley

oracle magazine September/OctOber 2011

44

2010, CBOE Holdings posted its third consecutive year of trading volume at more than 1 billion contracts. CBOE Holdings has two exchanges in Chicago, IllinoisChicago Board Options Exchange (CBOE) and CBOE Futures Exchangeas well as its all-electronic New Jerseybased C2 Options Exchange, which opened for trading in October 2010, and its partly owned CBOE Stock Exchange. As you might expect, CBOE Holdings IT environment revolves around its high-performance trading systems. The organization is currently running more than 700 Sun Fire x86based serversincluding Sun Fire X4270on CBOEdirect, and all the applications run on Java. CBOE Holdings back-end systems run Oracle databases and data warehouses on x86 servers as well. Everything we run is x86-based, says OConnell. Weve found x86-based servers easy to integrate into our IT environment. While some companies might try to hold on to their hardware investments, CBOE Holdings tends to keep its servers active for only about two years in its production environment. Were always looking for the next fastest server, says OConnell. When faster processors and faster machines come out, we put them in, because microsecond response time is key for us in the highly competitive exchange environment. CBOE Holdings architecture is designed to scale both horizontally and vertically, depending on the organizations needs. Scalability is especially important as the company grows its business. To help it capitalize on the scalability capabilities that x86-based servers can provide, CBOE Holdings has also made sure to engineer its software architecture to scale. Our exchanges all run the same code set and the same platform, says OConnell. Weve built it in a way to handle different types of trading assets, classes, options, stocks, and futures. The system runs the same code set with just XML parameter changes. Each exchange has different hardware configurations, based on that exchanges scalability and load requirements.

SNAPSHOT

CBOE Holdings
cboe.com Location: Chicago, Illinois Employees: 600 Revenue: US$437 million in 2010 Oracle products: Sun Fire X4270 servers, Sun ZFS Storage Appliance, Oracle Real Application Clusters, Oracle Database, Oracle Solaris

Think FasT. now Think FasTer!


keeping your daTa cenTer MoVing

aT The speed oF Business

can Be a chaLLenge.
Tallgrass Technologies provides outstanding delivery of advanced infrastructure solutions with Oracle. We have deep expertise in hardware, software and services to design a best in class system to support and grow your business.

TaLLgrass TechnoLogies and oracLe wiLL heLp you achieVe your goaLs wiTh inTeLLigenT soLuTions designed To:
Dramatically enhance performance of multi-threaded applications with Oracles SPARC T3 servers. Drastically reduce transaction times with Oracles Sun Storage F5100 Flash Arrays. Seamlessly integrate data sharing between multiple environments with Oracles Sun ZFS Storage Appliances.

To geT your daTa cenTer up To speed, conTacT us Today. VisiT

www.tallgrassadvantage.com
2011 Tallgrass Technologies. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. All company logos and product names mentioned herein may be trademarks and/or registered trademarks of their respective companies.

SEPTEMBER/OCTOBER 2011 ORACLE.COM/ORACLEMAGAZINE

45

One of the things that is important for CBOE Holdings as it continues to grow is ensuring that it can optimize its IT hardware and deployment platform for its core Java applications. Everything we do is Java, so we depend on the Java Virtual Machine that comes from Oracle, says OConnell. CBOE Holdings leverages its expertise in Java across all of its applications and has been at the forefront of providing feedback to Sunand now to Oracleon how to deploy and run high-performance Java. In the end, CBOE Holdings business performance depends entirely on its IT infrastructure. And CBOE Holdings IT infrastructure is built on Oracle hardware and software. From OConnells perspective, thats a pretty solid foundation. We have a very good relationship with Oracle, says OConnell. Were actually very close with Oracle, and to have Oracle in control of more of the software stack and having a single point of contact is a very good thing for us.

Virtualization, Clustering, and the Cloud


When it comes to scalability, whether its up, out, or in the cloud, organizations are turning to x86-based servers for their clustering, virtualization, and cloud computing capabilities.
Virtualization allows different applications to share a single piece of hardware. Clustering allows organizations to bring multiple individual hardware servers together to have them act as a single machine. You can view x86 servers as building blocks for grids or clusters, or they can be used in blade systems so that multiple blades can be housed together in the same chassis and managed easily, says Jean S. Bozman, research vice president of the Enterprise Platforms Group at IDC. The x86 server space is very, very popular for virtualization because it improves the utilization of the servers that youre purchasing.

Moving to x86-based servers wasnt only a good idea; it was essential to our business.
Gerald OConnell, Executive Vice President and CIO, CBOE Holdings

BUSINESS IS BUILT ON TRUST AND RELIABILITY.


Your employees look to YOU to provide timely, reliable access to the information they need to succeed. Its time to trust your data center.
With the industrys broadest portfolio of highperformance, cost effective, and easy-to-manage solutions - backed by the support of an Oracle Platinum Partner - you can rest assured that your users are as efficient as the data center they rely on. Trust your Oracle needs to a proven solutions provider with the Oracle-backed experience and expertise to build, implement and support your business every step of the way. Trust CBTS.

OPTIMIZE PERFORMANCE, MAXIMIZE DATA PROTECTION, AND REDUCE COSTS WITH ORACLE IN YOUR DATA CENTER...
Oracles Sun Storage F5100 Flash Array accelerates database applications 2x, delivers up to 7x faster transaction times, and up to 180x better power efficiency. Oracles Sun ZFS Storage Appliance enables Oracle Database and Application software to run faster and more efficiently in NAS environments with automated and intelligent data placement within its storage hierarchy. Oracles SPARC T3-2 server with 32 cores delivers up to 256 simultaneous threads to help consolidate legacy servers, save valuable datacenter real estate, and cut operational costs.

Discover why so many Fortune 500 companies trust CBTS for maximizing enterprise-wide IT efficiency.

Visit www.cbtsadvantage.com
2011 CBTS. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. All company logos and product names mentioned herein may be trademarks and/or registered trademarks of their respective companies.

ORACLE MAGAZINE SEPTEMBER/OCTOBER 2011

cBOe Holdings business performance depends entirely on its Oracle hardware- and softwarebased iT infrastructure. To have Oracle in control of more of the software stack and having a single point of contact is a very good thing for us, says cBOe Holdings gerald Oconnell.

neXT STepS
reaD more about Sun x86 servers oracle.com/us/products/ servers-storage/servers/ x86 Oracle x86 Rack Servers: Optimized for Rapid Deployments and Operational Efficiency bit.ly/pwtbdA Sun Blade servers oracle.com/us/products/ servers-storage/servers/ blades Sun Fire X4800 m2 server bit.ly/nVwmtq

More and Less From rackmount and blade deployments to the incredible integration and performance of specialized appliances like Oracle Exadata, Oracle x86-based systems deliver optimized software and hardware solutions. Our x86 servers are designed to support enterprise features, says Ali Alasti, vice president of x86 management at Oracle. By marrying Oracle software with Oracle hardware, we can deliver better performance density and higher performance per server. The bottom line is that the value of Oracle x86-based servers goes beyond the performance of the chips inside. We can provide easier installs, easier patching, easier general management, and easier support for the software and hardware combination, Alasti concludes. All the integration and testing work we do pays off by delivering better performance, better support, and better value.
ANdreA mANdel

David a. Kelly (davidakelly.com) is a business, technology, and travel writer who lives in West Newton,
massachusetts

September/OctOber 2011 Oracle.cOm/Oraclemagazine

Database
Performance
Sun 30 Million
SPARC

Fastest Ever

IBM
P7

10 M
4M
tpmC Transactions/Minute

Superdome

HP

Source: Transaction Processing Performance Council, www.tpc.org as of 12/2/10. Oracle SPARC SuperCluster with T3-4 Servers, 30,249,688 tpmC, $1.01/tpmC, available 6/1/11. IBM Power 780 Server, 10,366,254 tpmC, $1.38/tpmC, available 10/13/10. HP Integrity Superdome-Itanium2, 4,092,799 tpmC, $2.93/tpmC, available 8/6/07. More at oracle.com/sunoraclefaster.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

48

by DaviD a. kelly

Organizations eliminate data integration bottlenecks and keep information in sync with Oracle data integration solutions.
Getty imaGeS

September/OctOber 2011 Oracle.cOm/Oraclemagazine

As organizations move to elastic and highly scalable environments, dynamic data movement for synchronizing or replicating databases becomes very important, says Carl Olofson, research vice president of database management and data integration software research at International Data Corporation (IDC). Organizations typically have huge amounts of data in their internal systems that are not aligned and cant be used easily in a data integration project. Thats why its critical for organizations to think about data integration strategically, not project by project. Thats just one of the reasons why the old standby of doing data integration internally or creating one-off data integration solutions doesnt work anymore. According to Olofson, in nearly all cases, internal development of data integration solutions is at the least a bad choice, and it could even be a disastrous choice, because the results can be so limiting. You wont be able to extend it, you cant use it as part of a strategic initiative, and you have to maintain it for all time. Its going to be an ongoing cost, says Olofson.
Jaime Ferrand/StaFF

loud computing, the data volume facing most organizations, and the need for real-time data and reporting are all driving a rethink of data integration solutions.

50 snapshOts

iQnavigator
iqnavigator.com While elastic environments, data volume, Data replication and integration are location: Denver, Colorado and the need for efficient data integration critical for us as a SaaS [software as a service] employees: 300-plus operations are driving integration strategies, provider, especially with the types of processes Oracle products: Oracle Database 11g, Oracle Financials, Sun Fire X4170 M2 server, SPARC the need for real-time data and reporting we automate for our clients, says Martin. T3-1 server, Oracle Exadata, Oracle Solaris, reflects a change in how integrated data is IQNavigator is a leading provider of serOracle WebLogic Server, Oracle TopLink, Oracle viewed and used. Business users want to run vices procurement and extended workforce Business Intelligence Enterprise Edition a query and get an idea of how the business solutions. Global 2,000 companies use is doing as of a few minutes ago, instead of IQNavigator to help clients manage workavea avea.com.tr yesterday or last week. force and services procurement in real-time, location: Istanbul, Turkey Weve expanded the realm of business through IQNavigators SaaS applications. employees: 2,600 intelligence beyond just the business anaOur solution handles the sourcing of serrevenues: US$7.5 billion lysts who are doing long-term planning to vices, from identifying the right supplier to Oracle products: Oracle Database 11g, include a wide range of business users who negotiating and recording the contract to Oracle Data Integrator Enterprise Edition, Oracle GoldenGate, Oracle Exadata, Oracle are making tactical decisions, Olofson says. payments for services, says Martin. We Business Intelligence Enterprise Edition, Siebel And these people are more interested in upcan even track the workers onsite that are Customer Relationship Management to-the-minute data. delivering those services and reconcile them Thats where Oracle Data Integrator against the contracts. and Oracle GoldenGatestrategic data integration solutions from IQNavigator has to undertake an average of 10 different businessOraclecome in. critical integrations with each clients internal systems. From master data transactions to personnel information to time cards, it all needs Oracle Data IntegratIOn SOlutIOnS to be integrated in real time with IQNavigators applications. Oracle Data Integrator is a high-performance, batch-oriented data IQNavigator is now using two Exadata Database Machine X2-2 integration solution for heterogeneous data integration. It provides systems from Oracle as the foundation of its next-generation online the ability to move data across different systems and transform it transaction processing (OLTP) applications and real-time reporting as necessary, regardless of whether its coming from or going to an services. From enabling IQNavigator to migrate to Oracle Exadata Oracle-based system. without downtime in a phased model to synchronization in the According to Alok Pareek, vice president of product manageOracle Exadata production environment with standby systems, ment for data integration at Oracle, Oracle Data Integrator performs Oracle GoldenGate is IQNavigators key to ensuring accurate and because it doesnt use a midtier server like other data integration consistent data. solutions. Oracle Data Integrator takes a next-generation data IQNavigator decided on the combination of Oracle Exadata and integration approach that extracts the data from the source system, Oracle GoldenGate because with more than 3 million usersfrom loads it into the target system, and then transforms the data, says many Global 2000 companiesspread across 113 countries and thouPareek. Thus you dont have the performance cost of midtier server sands of suppliers, it needed a high-performance, integrated system. processing, and you get to leverage the computing power of the dataWe need to be able to process financial transactions with 100 base or data warehouse. percent transactional integrity while processing close to US$10 Oracle GoldenGate is Oracles solution for dynamic data integration billion annually, says Martin. The scalability thats inherent in needswhere organizations need to have up-to-the-minute informa- Oracle Database and the Oracle Exadata platform is a huge benefit tion to make business decisions or want new ways of offloading expen- for our clients. sive legacy systems. Oracle GoldenGate provides high-performance With the new architecture based on Oracle Exadata and Oracle data integration with transactional integrity across heterogeneous GoldenGate, IQNavigator expects to be able to improve system systems, says Pareek. It can scale to very high volumes. throughput and increase performance of complex queries by an While Oracle Data Integrator approaches data integration on a average of 10 times. An added benefit is the new real-time reporting table-by-table basis, Oracle GoldenGate is designed to keep transcapabilities from IQNavigators transactional system, which will actional data consistent as it moves data from a source to target enable the company to deliver a whole new class of real-time services system. With Oracle GoldenGate you can have applications that are to its customers. deployed against your target system that continue to read or analyze For high-volume global clients, real-time reporting is extremely data even as information is being updated, says Pareek. important, says Martin. Gaining faster access to real-time data opens up the door to adding new types of services and capabilities for HIgH-PerfOrmance Data IntegratIOn our clients. When it comes to cloud-based applications and services, data replication and integration might not be the first things that come to real-tIme Data fOr real-tIme BuSIneSS mind. But they are key for John Martin, COO of Denver, Colorado Few industries move faster than telecommunications, especially based IQNavigator. when it comes to mobile services. Staying competitive in that industry

September/OctOber 2011 Oracle.cOm/Oraclemagazine

51

The scalability thats inherent in oracle Database and the oracle exadata platform is a huge benefit for our clients.
John Martin, COO, IQNavigator

oracle goldengate is key to ensuring accurate and consistent data for iQnavigator, a services procurement and workforce solutions provider. Data replication and integration are critical for us as a SaaS provider, especially with the types of processes we automate for our clients, says iQnavigator coo John martin.

requires an IT and business information platform that can deliver near-real-time data to business analysts, marketing, sales, and customer support. Take the case of Avea, a leading provider of communications services to more than 12 million customers in Turkey. When Avea needed to ensure it could move data between its production systems, an operational data store, and its data warehouse environment rapidly enough to keep up with business requirements, it turned to Oracle Data Integrator, Oracle GoldenGate, and the Oracle Exadata Database Machine. Rapid replication is critical in some areas, such as our mobile number portability systems, says zlem Topakan, business intelligence manager at Avea. If theres any latency, we need to be able to take immediate action. As with most mobile phone companies, new customer acquisition

is critical. But servicing new customers effectively requires business users and managers that have the most-accurate and -up-to-date information available. Avea needed to create a new data warehouse with a highperformance daily extract, transform, and load (ETL) process and the ability to provide high-performance user queries. One of the challenges it faced was an ETL processing window that was increasing day by day. It needed a new architecture that would meet expanding business requirements. The company redesigned its systems so that production systems were replicated using Oracle Data Integrator to an operational data store (ODS), which was then used to feed the data warehouse running on Oracle Exadata. In addition, the ODS became the primary source for online operational reports, which avoids putting a query

ray Ng

oracle magazine September/OctOber 2011

52

avea relies on Oracle goldengate, Oracle Data integrator, and Oracle exadata for rapid data replication between systems. most of the time we replicate from the production systems to the ODS in just three seconds, says zlem Topakan (right), business intelligence manager at avea, pictured with Hanife Keskin, eTl supervisor.

load on the production systems. Avea developed an innovative solution that uses Oracle GoldenGate and Oracle Data Integrator to feed its data warehouse. With the new solution, each day 500 million rows of data are moved from source systems into the data warehouse. Avea uses Oracle Data Integrator for its ETL operations, and it uses Oracle GoldenGate to replicate data to its ODS, which allows Aveas business users to access data in near-real time. We manage all our ETL windows within Oracle Data Integrator. We use Oracle GoldenGate for replicating the data from production systems to the ODS, says Topakan. The ODS is used for online reports using interactive reporting tools. Oracle goldengate and Oracle Data integrator Updated
Oracle has released updates of Oracle GoldenGate and Oracle Data Integrator. Oracle GoldenGate 11.1.1.1.0 is a bundled set of patches for Oracle GoldenGate 11g Release 1 that includes features for increased data security, deeper integration with Oracle Database, and expanded heterogeneity. Oracle GoldenGate can now replicate data protected by Oracle Advanced Security. Oracle GoldenGate can also now integrate with Oracle Recovery Manager for improved archive log management and recovery, and it

Topakan further explains that Avea automatically manages latency on its operational data store environment through Oracle Data Integrator. At the start of the ETL process, Oracle Data Integrator checks the Oracle GoldenGate logs for latency and then automatically switches source systems if needed. Most of the time we replicate from the production systems to the ODS in just three seconds, so business users can reach the data extremely quickly, says Topakan. When Avea moved its data warehouse to Oracle Exadata from IBM p5 servers, the ETL performance improved by four times. Prior to migration, the batch processing window had been 12 hours, and now on Oracle Exadata its down to 3.5 hours. At the same time, the

September/OctOber 2011 Oracle.cOm/Oraclemagazine

Ali KAbAS/Getty imAGeS

supports databases including SQL Server 2008 Release 2, Sybase Adaptive Server Enterprise 15.5, and DB2 10 for z/OS. Oracle Data Integrator 11.1.1.5.0 is a bundled set of patches for Oracle Data Integrator 11g Release 1 that includes Oracle Data Integrator load plans, which organize at a high level execution of packages and scenarios. The update also offers Web services enhancements such as container-based authentication, asynchronous Web services and callbacks, and full SOAP

support for outbound calls. Our latest Oracle GoldenGate and Oracle Data Integrator product updates demonstrate Oracles unique strategy to integrate its best-of-breed data integration solutions with Oracles stack, while expanding on heterogeneity, says Alok Pareek, vice president of product management for data integration at Oracle. Oracle continues to enhance its pervasive data integration offering to deliver fast time to value to customers.

53

performance improved by an average of 10 times. Now that Avea has an operational data store, it can refresh its data warehouse multiple times a day, if needed. Thats a prerequisite for a near-real-time data warehouse, so its a big plus for us, says Topakan. Prior to implementing Oracle Data Integrator, Avea used a combination of tools and utilities to do its data movement. Before Oracle Data Integrator, we had to look at separate UNIX jobs, individual ETL tools, and different kinds of systems, says Topakan. Now, we can manage all our data integration through Oracle Data Integrator. Using Oracle Data Integrator to manage data integration has also simplified the development and management process for Avea. Oracle Data Integrator is a very easy tool for development, says Topakan. Its easy to learn, easy to develop with, and easy to share information with other team members. STRATEGIC DATA INTEGRATION When it comes to data integration, doing nothing isnt a viable strategy. For most organizations, simply addressing the continuous growth of data volumes will require a re-evaluation of data strategy regardless of the effectiveness of an organizations current solution.

Data is simply growing at an exponential rate, says Oracles Pareek. And the IT infrastructures that used to work fine are starting to deteriorate because they simply cant cope with the volumes of data that organizations are dealing with. Thats why now is a good time for organizations to take a step beyond viewing data integration as a utility and recognizing it as something more. Its important to remember that data integration isnt just plumbing, says IDCs Olofson. Data integration is really the underlying technology for a more mature and unified enterprise information management environment. Everyone needs to be thinking about data integration strategically. t

David A. Kelly (davidakelly.com) is a business, technology, and travel writer who lives in West Newton, Massachusetts. NEXT STEPS
LEARN more about Oracle data integration solutions oracle.com/goto/dataintegration

www.InsightSpecialized.com

InsIght Moves Your technologY

goals Forward

Now more than ever its important to have an IT solutions partner who can help you accomplish more of your IT goals, achieve new efficiencies and realize cost savings every step of the way. Whether you need fast access to essential technologies or the support of technical experts for the strategic planning and deployment of solutions, Insight can help.

Significantly improve multi-threaded application speeds with Oracles SPARC T3 servers. Increase productivity and ecoefficiency by reducing transaction times with Oracles Sun Storage F5100 Flash Array. Optimize multiple data center management with Oracles Sun ZFS Storage Appliance.
Let us map out a better enterprise data center solution for you. Visit

www.InsightSpecialized.com

2011 Insight. Oracle and Java are registered trademarks of Oracle and or its affiliates. All rights reserved. All company logos and product names mentioned herein may be trademarks and/or registered trademarks of their respective companies.

ORACLE MAGAZINE SEPTEMBER/OCTOBER 2011

Great minds dont think alike.


To continue to lead the way in technology and science, we must develop the next generation of innovators. Steps we take today can empower young people to develop and test their own ideas and approach science, technology, engineering, and math not just as fields of study in school but as ways of understanding our world. Join the Lawrence Hall of Science in inspiring and preparing kids from all backgrounds to do science. lawrencehallofscience.org/brilliant

Java Developer

Oracle aDF By Frank nimphius

55

all aboard
D

Oracle JdevelOper 11g and Oracle applicatiOn develOpment FramewOrk

Build train models for navigation in bounded task flows.

evelopers of Oracle Application Development Framework (Oracle ADF) applications usually implement page navigation by defining control flow cases between activities in unbounded and bounded task flows. An additional navigation configuration option is available for bounded task flows: defining a train. At runtime, a train guides users through a predetermined sequence of views required for completing a multistep taskfor example, a series of wizard pages for making multiple form-field edits. In Oracle ADF, you define a train through a train model object, which can be a bounded task flow. In walking through this column, you will explore a completed sample application to learn how to build and use train models in your own Oracle ADF applications. To begin, download the sample application from bit.ly/kXOHGa and unzip the o51adf-409578.zip file. Ensure that youre using the studio edition of the Oracle JDeveloper 11g 11.1.1.5 (or later) release, available as a free download on Oracle Technology Network at oracle.com/technetwork/ developer-tools/jdev/downloads. The application uses the HR schema available by default in Oracle Database.

is exposed as a region in Main.jspx. This task flow contains two view activities and one task flow call activity. The dashed arrows between the activities indicate that this bounded task flow is configured as a train model and the activities therein as train stops that users navigate at runtime. 2. employees-btf.xml, shown in Figure 2, is a subprocess called from the task flow call activity in the adf-region-btf .xml task flow. It represents a threestep form-entry wizard for editing employee records, also configured for train navigation. To run the sample application, expand the ViewController project in the Application Navigator, right-click the Main .jspx page in the Web Content folder, and choose Run. On the browser page that opens, select an employee record and click

either the Employee Edit train stop or the Create New Employee button. Both actions enter the employees-btf subtask flow, enabling you to edit the selected (or newly created) employees data. Use the train UI component or the Next and Previous buttons to continue navigation and complete the task. On the last wizard page, click either Cancel to start over again or Submit to see a summary page with the changes applied. (To preserve the state of your HR schema, the sample application does not commit changes to the database.) enabling train moDelS You can declaratively configure a bounded task flow to expose a train model for use on the pages and page fragments it contains by setting the task flows Train property. On the pages and page fragments, you use the Oracle ADF Faces af:train and

Figure 1: Parent task flow exposed as an Oracle aDF region

Sample application overview Launch Oracle JDeveloper and browse to the directory where you unzipped the sample application. Open the AdfTrainSample.jws workspace from inside the AdfTrainSample folder. Before proceeding, adjust the properties of the hrconn connection in the Application Resources panel of the Application Navigator and confirm that you can successfully connect to the HR schema. The sample application consists of two bounded task flows: 1. adf-region-btf.xml, shown in Figure 1, is the parent bounded task flow, which

Figure 2: Subtask flow for editing employee records

Oracle magazine septemBer/OctOBer 2011

56

Oracle aDF

af:trainButtonBar components to render the train model in the UI. Expand the sample applications View Controller project in the Application Navigator. Open the Web Content folder and its WEB-INF folder, and then double-click employees-btf.xml to open it in the task flow visual editor. Next, open the Oracle JDeveloper Structure window (Ctrl-Shift-S). Under ADF Task Flow, select task-flow-definition employees-btf. Open Oracle JDevelopers Property Inspector feature (Ctrl-Shift-I), and scroll to the Behavior section. You can see that the Train property is set to true to expose the task flow train model at runtime. (The default value is false.) Defining Train STopS anD The navigaTion Sequence After enabling a bounded task flow to expose a train model, you need to define view activities and task flow call activities as train stops. To add an existing view or task flow call activity to the train model, select the activity in the visual editor, right-click, and then select the Train option to create (or, later, to change) the train stop setting. Any view and task flow call activities you add to the task flow diagram are automatically added to the sequence of train stops. The navigation sequence is defined initially by the order in which view activities and task flow call activities are added as train stops. You can easily change this order via the Train option in the context menu associated with each activity. Train stops are further configured with the Property Inspector. To see how, select the EmployeeDetails view activity in the sample applications employees-btf.xml task flow and open the Property Inspector. Scroll to the Train Stop section to see the train stop properties, as shown in Figure 3. The Train Stop section appears in the Property Inspector only if the bounded task flows Train property is set to true and the selected activity is either a view activity or a task flow activity. Train STop properTieS As you can see in Figure 3, train stops are configured with five properties:

Figure 3: Train stop configuration properties for the employeeDetails view activity

1. The Train Stop property is set to false by default. When set to true, it indicates that the view or task flow call activity is a train stop. You set this property at design time and cannot change it at runtime. 2. The Outcome property enables you to associate a control flow name with a train stop to define an alternative navigation case. The Outcome property can be read from Java code at runtime but not changed then. 3. The Sequential property defines the order in which users navigate the train stops. If a train stops Sequential property is set to true, users can access that stop only if they have already visited the preceding stop. A value of false defines nonsequential navigation, enabling the user to select any train stop whose Skip property is not set to true. You can use Expression Language (EL) to define the Sequential property value for a train stop dynamically. The sample application for this column demonstrates this usage. 4. The Skip property disables a train stop so that users cannot navigate to it. Like the Sequential property, the Skip property can be dynamically changed at runtime. 5. The Ignore property prevents a train stop from rendering in the UI. Although you can use EL to set the Ignore property

value dynamically at runtime, it can be changed only upon task flow initialization. Once a task flow is rendered, the Ignore property is immutable. BuilDing The Train uSer inTerface Oracle ADF Faces provides two UI components for displaying train models in your JavaServer Faces pages and page fragments: 1. The train component, af:train, displays the train model as a horizontal or vertical line with icons indicating the stops. The train component is used for both sequential and nonsequential navigation. To define display names for each stop, you edit the task flow. If its not open already, double-click the employeesbtf.xml file in the Application Navigator and expand the EmployeeDetails view activity node in the Structure window. Expand the train-stop node, as shown in Figure 4, to see the Display Name configuration. You add the display name element by using the right-click context menu on the train-stop node and selecting Insert inside train-stop -> Display Name. You then edit the Display Name value with the Property Inspector. You can also use EL to read the displayname value from a message bundle to

September/OctOber 2011 Oracle.cOm/Oraclemagazine

57

you must change the train component tag, as shown in Listing 2. In this changed tag configuration, af:commandNavigationItem is added to the nodeStamp facet to replace the default train stop renderer. The EL trainNode variable is defined on the var attribute of af:train to access the train stop properties defined in the train model. Note that the trainNode variable is also accessible from a managed bean (MBean) during train rendering. An example that uses this option to set the af:commandNavigationItem components immediate property is explained in the Enabling Backward Navigation section later in this column.
Figure 4: Display name configuration for a train stop in the Structure window

directly to a page. To set it for a template, open the Property Inspector for the selected train component and click the arrow icon next to the value property. Then choose the Expression Builder menu option to declaratively compose the expression
#{controllerContext.currentViewPort .taskFlowContext.trainModel}

support translated labels for internationalized applications. 2. The trainButtonBar component renders the train model with buttons for forward and backward navigation. Navigation with trainButtonBar is strictly sequential and does not skip over disabled train stops. If a train stop is configured with the Skip property set to true, the trainButtonBar will stop there. The Oracle ADF Faces train and trainButtonBar components are located in the Oracle JDeveloper Component Palette window under ADF Faces -> Common Components. When you drag either component to a page or a page fragment in a bounded task flow whose Train property is set to true, Oracle JDeveloper automatically sets the components value property, as shown in Listing 1, for each component. The EL string within each of these component tags references the train model of the active bounded task flow to determine the current stop in the navigation sequence. By doing so, it also determines the preceding and next stops in a sequential train. Customizing the train user interfaCe To customize the train stop behaviorfor example, to add an action listener to a train stop, to mark a train stop as required, or to use your own custom icons for train stops

enabling reuse via a Page temPlate As you know from the preceding section, the af:train and af:trainButtonBar components reference the bounded task flow train model by using the generic expression
#{controllerContext.currentViewPort .taskFlowContext.trainModel}

The sample application uses a page template, PageFragmentTemplate.jspx, to add the train definition to all views in the bounded task flows. In the Application Navigator, the template is under the ViewController project, in the templates folder inside the Web Content folder. When you reference an MBean from the train component configuration, as the sample application does, make sure the MBean is configured with the same name in all bounded task flows that use the page template. inCluding method Call aCtivities in train navigation Train navigation occurs among view and task flow call activities, but in some use cases, you might also want to call a method as part of the navigation. To include method call activities in train navigation, you set the train stops Outcome property to reference a wildcard control flow case. As you can see in Figure 2, the

Because this string does not include the task flow name, train configuration is a good candidate for use in page templates. However, when you add a train component to a template, the value property is not automatically set, as it is when you add it

code listing 1: Automatic default settings for train components


<af:train id="t2" value="#{controllerContext.currentViewPort.taskFlowContext.trainModel}"/> <af:trainButtonBar id="tbb1" value="#{controllerContext.currentViewPort.taskFlowContext.trainModel}"/>

code listing 2: changing the settings of a train component


<af:train id="t1" var="trainNode" value="#{controllerContext.currentViewPort.taskFlowContext.trainModel}"> <f:facet name="nodeStamp"> <af:commandNavigationItem text="#{trainNode.textAndAccessKey}" id="cni1" visited="#{trainNode.visited}" disabled="#{trainNode.disabled}" action="#{trainNode.action}" immediate="false" actionListener=""/> </f:facet> </af:train>

Oracle magazine September/OctOber 2011

58

Oracle aDF

HumanResourceDetails task flow activitys Outcome property is set to humanResourceDetailsStop to invoke an MBean method before the view activity is accessed. By using a router activity instead of a method call activity, you can even divert train navigation based on an EL-accessible condition. SuppreSSing Model Validation If your application includes a train that uses multiple Oracle ADFbound forms that update the same data control, you might need to disable model validation. Otherwise, errors can occur if required fields are located later in the navigation sequence. To disable Oracle ADF model validation temporarily, set the SkipValidation property in a views page definition file to custom. In the sample application, Oracle ADF model validation is disabled when users create a new employee record. To see the configuration for the EmployeeDetails view activity, select the EmployeeDetailPageDef .xml file in the oramag.adf.sample.view .pageDefs package of the ViewController projects Application Sources folder. Open the Structure window and select the EmployeeDetailPageDef root node to see the SkipValidation property setting in the Property Inspector. enabling backward naVigation In a multistep form edit, as shown in Figure 2, users might need to navigate to a previous step without providing all the required information on the current page. To enable backward navigation without validating the current form, you must set the train stops immediate property to true, using the following steps: 1. Customize the train user interface with a commandNavigationItem (as explained under Customizing the Train User Interface, above). 2. Create an MBean method that references #{trainNode} to compare the rendered DOWnlOaD Oracle JDeveloper 11g release 2 oracle.com/technetwork/developer-tools/jdev/ downloads reaD more about this release oracle.com/technetwork/developer-tools/jdev/ documentation

at runtime, a train guides users through a predetermined sequence of views required for completing a multistep taskfor example, a series of wizard pages for making multiple form-field edits.
train stop with the current selected stop. 3. If the rendered train stop is before the current train stop, the method should return true. Otherwise, the method should return false. 4. Using EL, reference the MBean from the immediate property of the commandNavigationItem. The sample application implements the immediate = true behavior in the train component in the PageFragmentTemplate .jspx template. The MBean referenced by commandNavigationItem is configured in both bounded task flows. naVigating the train Model froM JaVa code You might have a use case that requires programmatic navigation in a train model. For example, you might want to create a finish option that skips all remaining steps in a train sequence or build your own trainButtonBar solution that can step over train stops that are marked as skipped. The JobDetails view activity in the sample applications employees-btf.xml bounded task flow definition contains two af:commandButton components, for forward and backward navigation. The button action properties reference an MBean method that accesses the train model to determine what the next navigation stop is and whether that stop needs to be skipped. To determine if a train stop needs to be skipped, the MBean method accesses the same HashMap bean that is used to configure the Skip property on the train stops in the bounded task flow. concluSion Train navigation is a valuable addition to control flow cases in Oracle ADF bounded task flows. In this column, youve learned how to create train models from bounded task flows, including some advanced techniques you can use in your Oracle ADF application projects. To learn more about creating train models, see Section 18.8, Creating a Train, in Oracle Fusion Middleware Fusion Developers Guide for Oracle Application Development Framework 11g Release 1 (11.1.1.5.0).

Frank nimphius is a senior principal product


manager for Oracle JDeveloper and Oracle Application Development Framework. He is a coauthor of Oracle Fusion Developer Guide: Building Rich Internet Applications with Oracle ADF Business Components and Oracle ADF Faces (mcGraw-Hill, 2010).

next StepS
reaD more about Oracle aDF oracle.com/technetwork/developer-tools/adf/ overview Oracle Fusion Middleware Fusion Developers Guide for Oracle Application Development Framework 11g Release 1 (11.1.1.5.0) bit.ly/krh9QL Oracle Fusion Developer Guide: Building Rich Internet Applications with Oracle ADF Business Components and Oracle ADF Faces (McGraw-Hill, 2010) amzn.to/e7SJNw Oracle ADF Insider bit.ly/f71x3w reaD more nimphius Oracle ADF code corner bit.ly/hp3cbU OtN Harvest blog blogs.oracle.com/jdevotnharvest DiScUSS Oracle JDeveloper and Oracle aDF Oracle JDeveloper Oracle technology Network forum bit.ly/fpiamS DOWnlOaD the sample application for this column bit.ly/kXOHGa Oracle JDeveloper and Oracle aDF oracle.com/technetwork/developer-tools/jdev/ downloads

September/OctOber 2011 Oracle.cOm/Oraclemagazine

Database Developer

Oracle Data PrOviDer fOr .Net By Christian shay

59

Distinctive Database Development


Use entity Framework with Oracle Data provider for .net.

OraCle Data prOviDer FOr .net

bject-relational mapping (ORM) technologies enable developers to write object-oriented code against a conceptual model of their data rather than accessing the database directly. For example, with an ORM, a developer can make an update to an instance of an EMPLOYEE class or request a collection of EMPLOYEE instances rather than executing the equivalent UPDATE or SELECT SQL statements against the EMPLOYEES table in an Oracle database. Two popular ORMs for .NET developers are NHibernate and Microsofts Entity Framework. Both solutions integrate with Microsoft Visual Studio; leverage designers, wizards, and code templates; and require a layer of code to handle the mapping to an Oracle database. Oracle Data Provider for .NET (ODP.NET) and Oracle Developer Tools for Visual Studio provide that mapping layer as well as Visual Studio enhancements to enable .NET developers to target Oracle Database with their Entity Framework applications. In this article, Ill demonstrate some common development tasks that use Entity Framework to target Oracle Database. (For information on NHibernate, visit nhforge.org.) Setup To work through the examples in this article, youll need Microsoft Visual Studio 2010 Professional (or a later release). Youll also need to download and install ODP.NET and Oracle Developer Tools for Visual Studio Release 11.2.0.2.40 or later. Both of these products are included as part of the Oracle Data Access Components package, which can be downloaded from the Oracle Technology Network .NET Developer Center (oracle .com/technetwork/dotnet). All of Oracles .NET products are available for free from the

Oracle Technology Network Website. Its important to note that earlier versions of this Oracle .NET software do not support Entity Framework; the integrated Visual Studio designers will not work properly, and you will see errors such as The store provider factory type Oracle.DataAccess.Client .OracleClientFactory does not implement the IServiceProvider interface if you attempt to run already compiled Entity Framework code. If you are unsure of which version of the Oracle .NET software you have, you can check the About window (Help -> About Microsoft Visual Studio). You should see Oracle Developer Tools for Visual Studio followed by the version number. The application you create in this article will use tables that are part of the Oracle database sample HR schema, so youll also need access to an Oracle database and the HR schema. To begin the setup for the article, first confirm that you have a connection to the HR schema. From Visual Studio, right-click the Data Connections node in Server Explorer and choose Add Connection. When the dialog box appears, make sure that the Data source is set to Oracle ODP.NET. From the Data source name list, select the database alias and then provide the User name and Password for the HR schema. Download code and SQL scripts for this article at bit.ly/rhjzrG and extract the contents. From the Tools menu in Visual Studio, select Run SQL Plus Script. Browse to the location where you extracted the code and SQL scripts, select the HR_SP.SQL script, select the HR connection from the list, and click Run. Check the Visual Studio output window to make sure there were no errors. Right-click the Procedures node in Server Explorer and choose Refresh.

the entity Data MODel WizarD anD DeSigner Use the Visual Studio Entity Data Model Wizard as the starting point for building an Entity Frameworkbased application. To begin, create a new project. From the File menu select New -> Project. Select Visual C#:Windows -> Console Application. Rename the project EntityFramework, and click OK. Open Solution Explorer, right-click EntityFramework, and select Add -> New Item. In the Add New Item window, choose ADO.NET Entity Data Model, enter HRModel .edmx as the Name, and click Add. The Entity Data Model Wizard will appear. In the first screen, Choose Model Contents, select Generate from database, and click Next. Select the data connection that you created earlier and the Yes, include the sensitive data in the connection string radio button. Enter HREntities in the text field under the Save entity connection settings in AppConfig as checkbox and click Next. In the Choose Your Database Objects screen, select DEPARTMENTS and EMPLOYEES from the Tables group and INSERT_EMPLOYEE, UPDATE_AND_RETURN_SALARY, and UPDATE_AND_RETURN_SALARY_BINDV from the Stored Procedures group. Enter HRModel in the Model Namespace field and click Finish. The Entity Data Model Designer will open and display a visualization of the newly created Employee and Department entities and their relationships, as shown in Figure 1. entity SQl Now that you have some entities backed up by ODP.NET and Oracle Database, you can perform operations on them. As entities are created, modified, and deleted, these

Oracle magaziNe septemBer/OCtOBer 2011

60

Oracle data PrOvider fOr .Net

changes will be automatically reflected seamlessly in Oracle Database. Lets add some program code to try this out. In Solution Explorer, right-click References and add a reference to Oracle .DataAccess.dll. If multiple versions of the DLL are present, reference Release 11.2.0.2.40 or later. Replace the contents of your new projects program file (Program.cs) with the code of the Program.cs file included in the code download for this article. There are several namespaces at the top of the file, most importantly System.Linq, System.Data .EntityClient, System.Data.EntityModel, and Oracle.DataAccess.Client. One way to perform queries on entities is to use Entity SQL, which is a SQL-like language. It is backed by the ADO.NET data access model, so the Entity SQL code is very similar to common database-specific ADO .NET implementations such as ODP.NET. The difference is that with Entity SQL, the entitiesnot the database objectsare queried by Entity SQL. In your updated program file, uncomment the first block of code (// Entity SQL -- Retrieve employees with ID number less than max_id), shown in Listing 1. Build and step through the code. Note that the EntityConnection, EntityCommand, and EntityDataReader classes are created and data is fetched from these entities. LINQ to ENtItIEs Another way to perform queries on entities is to use LINQ to Entities. LINQ (LanguageIntegrated Query) is a general-purpose query facility built into the .NET Framework that accesses all sources of information, including relational data, XML, and now entities. To try LINQ to Entities, first uncomment the second block of code in the program file (// LINQ to Entities query -Retrieve employees with ID number less than max_id) shown in Listing 2 and examine it. The first section of this code block contains the LINQ query:
var Employees = from e in ctx.EMPLOYEES where e.EMPLOYEE_ID < max_id select e;

code listing 1: entity SQL code for program.cs


// Entity SQL -- Retrieve employees with ID number less than max_id int max_id = 110; string esql = "select e.EMPLOYEE_ID, e.FIRST_NAME, e.SALARY from HREntities. EMPLOYEEs as e where e.EMPLOYEE_ID < " + max_id; EntityConnection econn = new EntityConnection("name=HREntities"); econn.Open(); EntityCommand ecmd = econn.CreateCommand(); ecmd.CommandText = esql; EntityDataReader ereader = ecmd.ExecuteReader(CommandBehavior.SequentialAccess); Console.WriteLine("Entity SQL Result"); while (ereader.Read()) { Console.WriteLine("ID: " + ereader.GetValue(0) + " Name: " + ereader.GetValue(1) + " Salary: " + ereader.GetValue(2)); }

code listing 2: LINQ to entities code for program.cs


// LINQ to Entities query -- Retrieve employees with ID number less than max_id int max_id = 110; var Employees = from e in ctx.EMPLOYEES where e.EMPLOYEE_ID < max_id select e; Console.WriteLine("LINQ to Entities Result"); foreach (var Employee in Employees) { Console.WriteLine("ID: " + Employee.EMPLOYEE_ID + " Name: " + Employee.FIRST_NAME + " Salary: " + Employee.SALARY); }

LINQ queries are designed with the FROM clause first so that the Visual Studio development environment can perform type checking and enable intellisense on the queries as they are typed. The remaining code in this block fetches and displays employee records. Step through this code and view the results. CaLLINg storEd ProCEdurEs Oracle developers can leverage PL/SQL stored procedures, with limitations, within the entity framework via Entity Framework Function Imports (used to call the procedures explicitly) and stored procedure mappings (which are automatically called for entity Insert, Update, and Delete operations). Only Oracle stored procedures can be called by Entity Framework, not stored functions. (Oracle stored functions can be used if they are wrapped inside of a stored procedure that uses an OUT parameter for the stored function return value.) The

Entity Framework maps Oracle stored procedures to Entity Framework functions. If an Entity Framework function mapped to a stored procedure is to have a return value other than null, the value must be provided by the Oracle stored procedure as an OUT parameter of the type SYS_REFCURSOR. Furthermore, only the first REF CURSOR in the parameter list is used as the Entity Framework function return value; any other REF CURSORS in the list are ignored. And because the metadata for this REF CURSOR is not known at design time, you must add this information to your App.Config file. running stored procedures with sYs_ rEFCursors and app.Config configuration. To try out PL/SQL stored procedures with entities, first update the App.Config file. In the files you downloaded, find App.Config.txt and cut and paste the contents into the App .Config file in your project somewhere after the <ConnectionStrings> section. (For more information on the format of this metadata,

September/OctOber 2011 Oracle.cOm/OraclemagaziNe

61

refer to ODP.NET online help in the Implicit REF CURSOR Binding Support section.) Earlier you ran a script (HR_SP.SQL) that created the UPDATE_AND_RETURN_SALARY procedure and added it to the entity model. This procedure accepts an employee ID and a salary increase amount, and then it outputs a REF CURSOR containing the employees first name and the new salary. To get your application ready to call the UPDATE_AND_RETURN_SALARY procedure, first open the Model Designer, and then view the Model Browser (see Figure 1). Under HRModel.Store, click the Stored Procedures node, and then right-click UPDATE_AND_ RETURN_SALARY. From the menu, choose Add Function Import. In the Add Function Import dialog box (see Figure 2), for Returns a Collection Of, select Complex. Click Get Column Information. The column information will be retrieved from the App.Config file. To call the method from .NET, you will use the name listed in the Function Import Name field (in this case, UPDATE_AND_RETURN_ SALARY). Click Create New Complex Type and click OK. In the Model Browser, you will now see UPDATE_AND_RETURN_SALARY under HRModel.edmx -> EntityContainer: HREntities -> Function Imports. In your projects program file, uncomment the next block of code// CALLING A STORED PROCEDURE VIA IMPORT FUNCTION (RETURNING VALUES)shown in Listing 3. Build and step into it. Take a look at the output window and note that the employees first name and the updated salary are displayed there. Binding to stored procedure output values. If you only need to return a single scalar value, rather than a collection of complex types, you can bypass the need to use SYS_REFCURSORs and the resulting App .Config configuration file by binding directly to stored procedure parameter output values in your code and allowing the imported function to simply return null. Earlier you ran a script (HR_SP.SQL) that created the UPDATE_AND_RETURN_ SALARY_BINDV procedure and added it to the entity model. The UPDATE_AND_ RETURN_SALARY_BINDV procedure accepts an employee ID and a salary increase amount, and it includes an output NUMBER parameter

figure 1: entity data model designer

figure 2: add function import dialog box

Oracle magaziNe September/OctOber 2011

62

Oracle data PrOvider fOr .Net

containing the employees new salary. In the Model Browser under HRModel .Store, click the Stored Procedures node, and then right-click UPDATE_AND_RETURN_ SALARY_BINDV. From the menu, choose Add Function Import. In the Add Function Import dialog box, select None for Returns a Collection Of (because the Oracle stored procedure did not include a SYS_REFCURSOR, this function cannot return a value), and click OK. In your projects program file, uncomment the next block of code// CALLING A STORED PROCEDURE VIA IMPORT FUNCTION (USING OUTPUT BIND VARIABLE)shown in Listing 3. Note that the code in Listing 3 includes the following line to set up the output bind variable:
ObjectParameter newsal = new ObjectParameter("NEWSAL", typeof(decimal));

code listing 3: code for calling stored procedure in program.cs


// CALLING A STORED PROCEDURE VIA IMPORT FUNCTION (RETURNING VALUES) int empid = 100; int raise = 9000; foreach (var result in ctx.UPDATE_AND_RETURN_SALARY(empid, raise)) { Console.WriteLine("Name: " + result.FIRST_NAME + " Updated Salary: " + result.SALARY); } Console.WriteLine(); Console.ReadLine(); // CALLING A STORED PROCEDURE VIA IMPORT FUNCTION (USING OUTPUT BIND VARIABLE) int empid = 100; int raise = 1111; ObjectParameter newsal = new ObjectParameter("NEWSAL", typeof(decimal)); ctx.UPDATE_AND_RETURN_SALARY_BINDV(empid, raise, newsal); Console.WriteLine(newsal.Value);

The first argument to this particular ObjectParameter constructor must be set to the name of the PL/SQL output parameter. Build the code and step into it. Take a look at the output window, and you can see that the employees updated salary is displayed there and no configuration change to the App.config file was required. Stored Procedure MaPPingS The entity model also supports mapping stored procedures to insert, update, and delete operations on Entities. When these operations occur, the mapped stored procedure will fire. For this article, the INSERT_ EMPLOYEE procedure will fire every time a new Employee entity is created. This stored procedure was included in the HR_SP.SQL script you ran earlier, and because it returns an output value, it must include an output SYS_REFCURSOR in its parameter list. (The metadata for that REF CURSOR was included when you earlier copied the contents of the App.Config.txt file to the App.Config file. ) To enable this stored procedure mapping, first open up Entity Designer, right-click Employee, and select Stored Procedure Mapping. This will open the Mapping Details pane at the bottom of the designer (as shown in Figure 3). In Mapping Details, select <Select

Insert Function> and select the INSERT_ EMPLOYEE stored procedure. By default, mappings will be created between the entity and the procedure. Notice that this Oracle stored procedure accepts as its parameters all of the data for the Employee entity except for the EMPLOYEE_ID. The stored procedure uses a sequence to generate an EMPLOYEE_ ID, inserts a row into Oracle Database, and then returns the generated EMPLOYEE_ID inside of a SYS_REFCURSOR. This ensures that the Entity is consistent. Under Result Column Bindings, enter EMP_ID and press tab. EMP_ID is the name of the column in the REF CURSOR that contains the new id. When tab is pressed, a mapping is created by default to the EMPLOYEE_ID member of the entity. Uncomment the next section of code in your program file// MAPPING A SPROC WITH SEQUENCESwhich creates a new Employee entity, adds it to the Employees collection, and then saves it. After you save the program file, note that the EMPLOYEE_ID now contains the sequence value that was generated and inserted into Oracle Database. triggerS and SequenceS In addition to working with stored procedures that generate sequences, developers also work with triggers that generate sequences. Developers using Entity Framework will need to make sure that their entities are able to receive the new values being generated by triggers. To try out triggers and sequences with entities, first remove the Stored Procedure

Mapping you just created so that there is no special processing occurring when a new Employee entity is created. Open the Entity Designer, right-click the Employees entity, and select Stored Procedure Mapping again. In the Mapping Details pane, clear the INSERT_EMPLOYEES entry by choosing <delete> from the list. Now add the trigger. From the Tools menu, select Run SQL Plus Script. Browse to the location where you extracted the code and scripts, select the triggers.sql script, select the HR connection from the list, and click Run. The INSERTEMPLOYEES trigger created by the script generates a new sequence for EMPLOYEE_ID whenever NULL is passed in for that value. If you were to attempt to create a new Employee entity now and save it, you would get a unique constraint violation, because the Entity Framework infrastructure would always pass a zero for the EMPLOYEE _ID value. Entity Framework needs to ignore the NOT NULL constraint on EMPLOYEE_ID and send Oracle Database a NULL. At the same time, Entity Framework needs to promise that a valid value will eventually be provided by the database server to the entity so that the NOT NULL constraint is not violated. Fortunately, the StoreGeneratedPattern property for entity members, such as EMPLOYEE_ID, will allow an entity to temporarily reconcile a NULL without violating a NOT NULL constraint and ensure that a value is generated to replace a NULL. Due to an issue in Visual Studio, it is not currently possible to set the

September/OctOber 2011 Oracle.cOm/OraclemagaziNe

63

StoreGeneratedPattern property through the products user interface. Instead, to set this property, you must edit the underlying model XML file. In Solution Explorer, right-click HRModel1.edmx, choose Open with, and then XML Text Editor. Scroll down until you find the entry for EMPLOYEE_ID and after
"Precision = 6"

add
"StoreGeneratedPattern="Identity"

Uncomment the last block of code in your program file (// TRIGGERS WITH SEQUENCES) and execute it. Note that the value of EMPLOYEE_ID is automatically populated with the newly generated sequence. Model First Up to now, this article has followed a Database First paradigmthe entities were created based on whatever the database already contains. Theres another paradigm, Model First, in which the entities are designed and created first and then the database schema objects are created to store them. Oracle Developer Tools for Visual Studio offers a wizard to make Model First easy by automatically generating the required data definition language (DDL) scripts to create the database objects. There are currently two Model First choices for generating DDL scripts: generating a table per type and generating a table per hierarchy. To demonstrate this, you will modify the Employees entity in the Entity Designer and then regenerate the Oracle database tables needed to store the new design. In the Entity Designer, right-click the Employee entity and select Add -> Scalar Property. Name the property ADDRESS. Right-click in the white space in the Entity Designer and choose Properties. In the Properties window, change the Database Schema Name to HR, select SSDLtoOracle .tt for the DDL Generation Template, and select Generate Oracle via T4(TPT).xaml for the Database Generation Workflow property (as shown in Figure 4). These settings ensure that the Oracle-provided DDL generation

figure 3: entity designer; mapping details

figure 4: entity designer; Properties

code is used and that the Model First paradigm is implemented. Finally, right-click in the Entity Designer and select Generate Database for Model. The DDL code is generated. Click Finish to save the script to the filename in the Save DDL As field. Note that DELETE statements in the DDL code are commented out for safety. Remove the comments before you use the script to modify an existing schema. suMMary Entity Framework enables developers to work with a conceptual data model rather than a database. With Entity Framework, Oracle Data Provider for .NET, and Oracle Developer Tools for Visual Studio, developers can start with an Oracle Database, create an entity,

and query that entity using Entity SQL and LINQ to Entities. Oracle developers can also use PL/SQL stored procedures, triggers, and sequences with an entity. And rather than start with the database, developers can first create an entity model and generate a database from that model.

christian Shay (christian.shay@oracle.com)


is a principal product manager at Oracle.

Next StePS
learN more about Oracle data Provider for .Net and Oracle developer tools oracle.com/technetwork/dotnet dOWNlOad sample code for this article bit.ly/rhjzrG

Oracle magaziNe September/OctOber 2011

Connect legacy technologies affordably with the complete set of data integration tools from Altova
Experience how the Altova MissionKit, the integrated suite of XML, data mapping, and database tools, can help you leverage existing technology and business software investments while integrating modern technologies without breaking your budget.

The Altova MissionKit includes multiple intelligent tools for data integration:
MapForce Graphical data mapping, transformation, & conversion tool

Vers New in

ally for digit support e ignatur XML S ML les gX alyze signin on to an rt creati ta t cha e da Instan orce databas in MapF ML and X gration te ision in StyleV t creation r L for repo g for ET I treamin IPAA ED Data s DIS & H TA PA rt for IA WSDL Suppo against lidation va SOAP

1: ion 201

Drag-and-drop data conversion with instant transformation & code gen Support for mapping XML, DBs, EDI, Excel2007+, XBRL, at les & Web services XMLSpy XML editor and Web services tool XML editor with strong database integration Web services tool, JSON <> XML converter DatabaseSpy multi-database query, design, comparison tool Support for all major relational databases and translation between DB types SQL editor, graphical database design & content editor

Download a 30 day free trial!


Try before you buy with a free, fully functional, trial from www.altova.com

Database Application Developer | PL/SQL

Pl/SQl 101 by Steven FeuerStein

65

Working with Strings

OracLe DatabaSe

Part 3 in a series of articles on understanding and using PL/SQL

very application needs data. That seems rather obvious, doesnt it? An application is almost always built on top of database tables. Those tables are full of different kinds of data. And the programs you writewhether they are in PL/SQL or another languagemanipulate that data. It is, therefore, extremely important for you to be aware of the different datatypes supported by PL/SQL and how you can work with those datatypes. As you might expect, there is an awful lot to learn about datatypes, and not all of that knowledge can fit into a single article. So I will start with one of the most common types of data: strings. Very few database tables and programs do not contain stringsstrings such as a company name, address information, descriptive text, and so on. As a result, you quite often need to do the following: Declare string variables and constants Manipulate the contents of a string (remove characters, join together multiple strings, and so on) Move string data between PL/SQL programs and database tables This article gives you the information you need to begin working with strings in your PL/SQL programs.

Variable-length strings. A maximum length for the string is specified (and it must be no greater than 32,767), but no padding takes place. Character large objects (CLOBs). CLOBs are variable-length strings that can be up to 128 terabytes. Strings can be literals or variables. A string literal begins and ends with a single quotation mark:
'This is a string literal'

must provide the maximum length of that string. The following code declares a variable, using the VARCHAR2 datatype, that will hold a company name, which cannot (in this declaration) have more than 100 characters:
DECLARE l_company_name VARCHAR2(100);

You must provide the maximum length; if you leave it out, Oracle Database raises a compile error, as shown below:
SQL> DECLARE 2 3 4 l_company_name BEGIN l_company_name := END; / VARCHAR2; * ERROR at line 2: ORA-06550: line 2, column 21: PLS-00215: String length constraints must be in range (1 .. 32767) VARCHAR2;

If you need to embed a single quote inside a string literal, you can type in two single quotes right next to one another, as in:
'This isn''t a date'

'Oracle Corporation'; 5 6

You can also use the q character to indicate an alternative terminating character for the literal:
q'[This isn't a date]'

l_company_name

A string variable is an identifier declared with a string datatype and then assigned a value (which could be a literal or an expression). DeCLarIng strIng VarIaBLes To work with strings in your PL/SQL programs, you declare variables to hold the string values. To declare a string variable, you must select from one of the many string datatypes Oracle Database offers, including CHAR, NCHAR, VARCHAR2, NVARCHAR2, CLOB, and NCLOB. The datatypes that are prefixed with an N are national character set datatypes, which means they are used to store Unicode character data. (Unicode is a universal encoded character set that can store information in any language using a single character set.) To declare a variable-length string, you

To declare a fixed-length string, use the CHAR datatype:


DECLARE l_yes_or_no CHAR(1) := 'Y';

What Is a strIng? A string, also referred to as character data, is a sequence of selected symbols from a particular set of characters. In other words, the symbols in a string might consist of English letters, such as A or B. They might also consist of Chinese characters, such as . There are three kinds of strings in PL/SQL: Fixed-length strings. The string is rightpadded with spaces to the length specified in the declaration. (See the next section, Declaring String Variables, to see padding in action.)

With CHAR (unlike with VARCHAR2) you do not have to specify a maximum length for a fixed-length variable. If you leave off the length constraint, Oracle Database automatically uses a maximum length of 1. In other words, the two declarations below are identical:
DECLARE l_yes_or_no1 CHAR(1) := 'Y'; l_yes_or_no2 CHAR := 'Y';

i-Hua cHen

orAcle mAgAzine SePtember/OctOber 2011

66

PL/SQL 101

If you declare a CHAR variable with a length greater than 1, Oracle Database automatically pads whatever value you assign to that variable with spaces to the maximum length specified. Finally, to declare a character large object, use the CLOB datatype. You do not specify a maximum length; the length is determined automatically by Oracle Database and is based on the database block size. Here is an example:
DECLARE l_lots_of_text CLOB;

Take the challenge!


Each of my PL/SQL 101 articles offers a quiz to test your knowledge of the information provided in the article. The quiz questions are shown below and also at PL/SQL Challenge (plsqlchallenge.com), a Website that offers online quizzes for the PL/SQL language. You can read and answer the quiz here in Oracle Magazine, and then check your answers in the next issue. If, however, you take the quiz at PL/SQL Challenge, you will be entered into a raffle to win your choice of an e-book from OReilly Media (oreilly.com). Question 1 What will be displayed after executing this block?
BEGIN sys.DBMS_OUTPUT.put_line ( INSTR ('steven feuerstein' , 'e' , -1 , 2)); END;

column, or parameter. Once you have declared a variable, you can assign it a value, change its value, and perform operations on the string contained in that variable using string functions and operators. For the rest of this article, I focus on the VARCHAR2 datatype. Using BUilt-in FUnctions with strings Once you assign a string to a variable, you most likely need to analyze the contents of that string, change its value in some way, or combine it with other strings. Oracle Database offers a wide array of built-in functions to help you with all such requirements. Lets take a look at the most commonly used of these functions. concatenate multiple strings. One of the most basic and frequently needed operations on strings is to combine or concatenate them together. PL/SQL offers two ways to do this: The CONCAT built-in function The || (concatenation) operator The CONCAT function accepts two strings as its arguments and returns those two strings stuck together. The concatenation operator also concatenates together two strings, but it is easier to use when combining more than two strings, as you can see in this example:
DECLARE l_first l_last VARCHAR2 (10) := 'Steven'; VARCHAR2 (20) := 'Feuerstein'; BEGIN /* Use the CONCAT function */ DBMS_OUTPUT.put_line ( CONCAT ('Steven', 'Feuerstein')); l_middle VARCHAR2 (5) := 'Eric';

So, how do you determine which datatype to use in your programs? Here are some guidelines: If your string might contain more than 32,767 characters, use the CLOB (or NCLOB) datatype. If the value assigned to a string always has a fixed length (such as a U.S. Social Security number, which always has the same format and length, NNN-NN-NNNN), use CHAR (or NCHAR). Otherwise (and, therefore, most of the time), use the VARCHAR2 datatype (or NVACHAR2, when working with Unicode data). Using the CHAR datatype for anything but strings that always have a fixed number of characters can lead to unexpected and undesirable results. Consider the following block, which mixes variable and fixedlength strings:
DECLARE l_variable VARCHAR2 (10) := 'Logic'; l_fixed BEGIN IF l_variable = l_fixed THEN DBMS_OUTPUT.put_line ('Equal'); ELSE DBMS_OUTPUT.put_line ('Not Equal'); END IF; END; CHAR (10) := 'Logic';

Question 2 True or false: When assigning a literal value to a string, that value may not contain within it any single quotes. Question 3 What will be displayed after executing this block?
BEGIN DBMS_OUTPUT.put_line ( 'REPLACE=' || REPLACE ('steven feuerstein' , 'e' , NULL)); DBMS_OUTPUT.put_line ( 'TRANSLATE=' || TRANSLATE ('steven feuerstein' , 'e' , NULL)); END;

10 with spaces. Consider the padding demonstrated in the following block; you would expect the block to display Not Equal:
BEGIN IF 'Logic' = 'Logic THEN DBMS_OUTPUT.put_line ('Equal'); ELSE DBMS_OUTPUT.put_line ('Not Equal'); END IF; END; '

/* Use the || operator */ DBMS_OUTPUT.put_line ( l_first || ' ' || l_middle || ' ' || l_last); END; /

At first glance, you would expect that the word Equal would be displayed after execution. That is not the case. Instead, Not Equal is displayed, because the value of l_fixed has been padded to a length of

You should, as a result, be very careful about the use of the CHAR datatype, whether as the type of a variable, database

The output from this block is:

September/OctOber 2011 OracLe.cOm/OracLemagazine

67

StevenFeuerstein Steven Eric Feuerstein

code Listing 1: examples of case-changing functions


SQL> 2 3 4 5 6 7 8 DECLARE l_company_name VARCHAR2 (25) := 'oraCLE corporatION'; BEGIN DBMS_OUTPUT.put_line (UPPER (l_company_name)); DBMS_OUTPUT.put_line (LOWER (l_company_name)); DBMS_OUTPUT.put_line (INITCAP (l_company_name)); END; /

In my experience, you rarely encounter the CONCAT function. Instead, the || operator is almost universally used by PL/SQL developers. If either of the strings passed to CONCAT or || is NULL or (a zero-length string), both the function and the operator simply return the non-NULL string. If both strings are NULL, NULL is returned. Change the case of a string. Three built-in functions change the case of characters in a string: UPPER changes all characters to uppercase. LOWER changes all characters to lowercase. INITCAP changes the first character of each word to uppercase (characters are delimited by a white space or nonalphanumeric character). Listing 1 shows some examples that use these case-changing functions. Extract part of a string. One of the most commonly utilized built-in functions for strings is SUBSTR, which is used to extract a substring from a string. When calling SUBSTR, you provide the string, the position at which the desired substring starts, and the number of characters in the substring. Listing 2 shows some examples that use the SUBSTR function. As you can see, with the SUBSTR function you can specify a negative starting position for the substring, in which case Oracle Database counts backward from the end of the string. If you do not provide a third argumentthe number of characters in the substringOracle Database automatically returns the remainder of the string from the specified position. Find a string within another string. Use the INSTR function to determine where (and if) a string appears within another string. INSTR accepts as many as four arguments: The string to be searched (required). The substring of interest (required). The starting position of the search (optional). If the value is negative, count from the end of the string. If no value is provided, Oracle Database starts at the beginning of the string; that is, the starting position is 1.

ORACLE CORPORATION oracle corporation Oracle Corporation

code Listing 2: examples of SUbStr function


DECLARE l_company_name VARCHAR2 (6) := 'Oracle'; BEGIN /* Retrieve the first character in the string */ DBMS_OUTPUT.put_line ( SUBSTR (l_company_name, 1, 1)); /* Retrieve the last character in the string */ DBMS_OUTPUT.put_line ( SUBSTR (l_company_name, -1, 1)); /* Retrieve three characters, starting from the second position. */ DBMS_OUTPUT.put_line ( SUBSTR (l_company_name, 2, 3)); /* Retrieve the remainder of the string, starting from the second position. */ DBMS_OUTPUT.put_line ( SUBSTR (l_company_name, 2)); END; / The output from this block is: O e rac racle

The Nth occurrence of the substring (optional). If no value is provided, Oracle Database looks for the first occurrence. Listing 3 shows some examples that use the INSTR function. INSTR is a very flexible and handy utility. It can easily be used to determine whether or not a substring appears at all in a string. Here is a Boolean function that does just that:
CREATE OR REPLACE FUNCTION is_in_string ( string_in ,substring_in RETURN BOOLEAN IS BEGIN IN VARCHAR2 IN VARCHAR2)

RETURN INSTR (string_in , substring_in) > 0; END is_in_string; /

Pad a string with spaces (or other characters). I warned earlier about using the CHAR datatype, because Oracle Database pads your string value with spaces to the maximum length specified in the declaration. However, there are times, primarily when generating reports, when you want to put spaces (or other characters) in front of or after the end of your string. For these situations, Oracle Database offers LPAD and RPAD.

oracLe magazine September/OctOber 2011

68

PL/SQL 101

When you call these functions, you specify the length to which you want your string padded and with what character or characters. If you do not specify any pad characters, Oracle Database defaults to padding with spaces. Listing 4 shows some examples that use these LPAD and RPAD padding functions. Replace characters in a string. Oracle Database provides a number of functions that allow you to selectively change one or more characters in a string. You might need, for example, to replace all spaces in a string with the HTML equivalent (&nbsp;) so the text is displayed properly in a browser. Two functions take care of such needs for you: REPLACE replaces a set or pattern of characters with another set. TRANSLATE translates or replaces individual characters. Listing 5 shows some examples of these two character-replacement built-in functions. Notice that when you are replacing a single character, the effect of REPLACE and INSTR is the same. When replacing

multiple characters, REPLACE and INSTR act differently. The call to REPLACE asked that appearances of abc be replaced with 123. If, however, any of the individual characters (a, b, or c) appeared in the string outside of this pattern (abc), they would not be replaced. The call to TRANSLATE, however, specified that any occurrence of each of the individual characters be replaced with the character in the third argument in the same position. Generally, you should use REPLACE whenever you need to replace a pattern of characters, while TRANSLATE is best applied to situations in which you need to replace or substitute individual characters in the string. Remove characters from a string. What LPAD and RPAD giveth, TRIM, LTRIM, and RTRIM taketh away. Use these trim functions to remove characters from either the beginning (left) or end (right) of the string. Listing 6 shows an example of both RTRIM and LTRIM. RTRIM removed all the periods, because the second argument specifies the character

(or characters) to trim, in this case, a period. The call to LTRIM demonstrates that you can specify multiple characters to trim. In this case, I asked that all letters and spaces be trimmed from the beginning of string b, and I got what I asked for. The default behavior of both RTRIM and LTRIM is to trim spaces from the beginning or end of the string. Specifying RTRIM(a) is the same as asking for RTRIM(a, ). The same goes for LTRIM(a) and LTRIM(a, ). The other trimming function is just plain TRIM. TRIM works a bit differently from LTRIM and RTRIM, as you can see in this block:
DECLARE x BEGIN DBMS_OUTPUT.put_line ( TRIM (LEADING '.' FROM x)); DBMS_OUTPUT.put_line ( TRIM (TRAILING '.' FROM x)); DBMS_OUTPUT.put_line ( TRIM (BOTH '.' FROM x)); VARCHAR2 (30) := '.....Hi there!.....';

code Listing 3: examples of INStr function


--The default is to trim
BEGIN /* Find the location of the first "e" */ DBMS_OUTPUT.put_line ( INSTR ('steven feuerstein', 'e')); /* Find the location of the first "e" starting from position 6 */ DBMS_OUTPUT.put_line ( INSTR ('steven feuerstein' , 'e' , 6)); /* Find the location of the first "e" starting from the 6th position from the end of string and counting to the left. */ DBMS_OUTPUT.put_line ( INSTR ('steven feuerstein' , 'e' , -6)); /* Find the location of the 3rd "e" starting from the 6th position from the end of string. */ DBMS_OUTPUT.put_line ( INSTR ('steven feuerstein' , 'e' , -6 , 3)); END; / The output from this block is: 3 9 11 5

--from both sides DBMS_OUTPUT.put_line ( TRIM ('.' FROM x)); --The default trim character --is the space: DBMS_OUTPUT.put_line (TRIM (x)); END;

The output from this block is:


Hi there!..... .....Hi there! Hi there! Hi there! .....Hi there!.....

With TRIM, you can trim from either side or from both sides. However, you can specify only a single character to remove. You cannot, for example, write the following:
TRIM(BOTH ',.;' FROM x)

If you need to remove more than one character from the front and back of a string, you

September/OctOber 2011 OracLe.cOm/OracLemagazine

69

code Listing 4: examples of padding functions


DECLARE l_first VARCHAR2 (10) := 'Steven'; l_last VARCHAR2 (20) := 'Feuerstein'; l_phone VARCHAR2 (20) := '773-426-9093'; BEGIN /* Indent the subheader by 3 characters */ DBMS_OUTPUT.put_line ('Header'); DBMS_OUTPUT.put_line ( LPAD ('Sub-header', 13, '.')); /* Add "123" to the end of the string, until the 20 character is reached.*/ DBMS_OUTPUT.put_line ( RPAD ('abc', 20, '123')); /* Display headers and then values to fit within the columns. */ DBMS_OUTPUT.put_line ( /*1234567890x12345678901234567890x*/ 'First Name Last Name Phone'); DBMS_OUTPUT.put_line ( RPAD (l_first, 10) || ' ' || RPAD (l_last, 20) || ' ' || l_phone); END; / The output from this block is: Header ...Sub-header abc12312312312312312 First Name Last Name Steven Feuerstein

need to use RTRIM and LTRIM:


RTRIM(LTRIM(x,',.;'),',.;')

You can also use TRANSLATE to remove characters from a string by replacing them with (or translating them into) NULL. You must, however, take care with how you specify this replacement. Suppose I want to remove all digits (0 through 9) from a string. My first attempt yields the following block:
BEGIN /* Remove all digits (0-9) from the string. */ DBMS_OUTPUT.put_line ( TRANSLATE ('S1t2e3v4e56n' , '1234567890' , '')); END; /

Phone 773-426-9093

code Listing 5: examples of character replacement functions


DECLARE l_name VARCHAR2 (50) := 'Steven Feuerstein'; BEGIN /* Replace all e's with the number 2. Since you are replacing a single character, you can use either REPLACE or TRANSLATE. */ DBMS_OUTPUT.put_line ( REPLACE (l_name, 'e', '2')); DBMS_OUTPUT.put_line ( TRANSLATE (l_name, 'e', '2')); /* Replace all instances of "abc" with "123" */ DBMS_OUTPUT.put_line ( REPLACE ('abc-a-b-c-abc' , 'abc' , '123')); /* Replace "a" with "1", "b" with "2", "c" with "3". */ DBMS_OUTPUT.put_line ( TRANSLATE ('abc-a-b-c-abc' , 'abc' , '123')); END; / The output from this block is: St2v2n F2u2rst2in St2v2n F2u2rst2in 123-a-b-c-123 123-1-2-3-123

When I execute this block, however, nothing (well, a NULL string) is displayed. This happens because if any of the arguments passed to TRANSLATE are NULL (or a zero-length string), the function returns a NULL value. So all three arguments must be nonNULL, which means that you need to put at the start of the second and third arguments a character that will simply be replaced with itself, as in the following:
BEGIN /* Remove all digits (0-9) from the string. */ DBMS_OUTPUT.put_line ( TRANSLATE ('S1t2e3v4e56n' , 'A1234567890' , 'A')); END; /

Now, A is replaced with A and the remaining characters in the string are replaced with NULL, so the string Steven is then displayed. Good to Know Beyond awareness of the basic properties of strings in PL/SQL and built-in functions, you can benefit by keeping the following

oracLe magazine September/OctOber 2011

70

PL/SQL 101

points about long strings and maximum string sizes in mind. When the string is too long. You must specify a maximum length when you declare a variable based on the VARCHAR2 type. What happens, then, when you try to assign a value to that variable whose length is greater than the maximum? Oracle Database raises the ORA-06502 error, which is also defined in PL/SQL as the VALUE_ERROR exception. Here is an example of the exception being raised and propagated out of the block unhandled:
SQL> DECLARE 2 3 4 5 6 * ERROR at line 1: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 4 / l_name VARCHAR2(3); BEGIN l_name := 'Steven'; END;

code Listing 6: examples of LtrIm and rtrIm functions


DECLARE a VARCHAR2 (40) := 'This sentence has too many periods....'; b VARCHAR2 (40) := 'The number 1'; BEGIN DBMS_OUTPUT.put_line ( RTRIM (a, '.')); DBMS_OUTPUT.put_line ( LTRIM ( b , 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ' || 'abcdefghijklmnopqrstuvwxyz')); END; The output from this block is: This sentence has too many periods 1

Table created. SQL> BEGIN 2 3 4 5 * ERROR at line 1: ORA-12899: value too large for column "HR"."SMALL_VARCHAR2"."STRING_VALUE" (actual: 3, maximum: 2) ORA-06512: at line 2 END; / INSERT INTO small_varchar2 VALUES ('abc');

128 terabytes, while in SQL the maximum is just (4 GB 1) * DB_BLOCK_SIZE. Theres More To DaTa Than sTrings Character data plays a very large role in PL/SQL applications, but those same applications undoubtedly also rely on data of other types, especially numbers and dates. I will cover these datatypes in the next PL/SQL 101 article.

DECLARE

BEGIN

Here is a rewrite of the same block that traps the VALUE_ERROR exception:
SQL> DECLARE 2 3 4 5 6 7 8 9 10 11 END; / l_name BEGIN l_name := 'Steven'; EXCEPTION WHEN VALUE_ERROR THEN DBMS_OUTPUT.put_line ( 'Value too large!'); VARCHAR2 (3);

Steven Feuerstein
(steven.feuerstein@ quest.com) is Quest Softwares pL/SQL evangelist. He has published 10 books on Oracle pL/SQL (Oreilly media) and is an Oracle Ace director. more information is available at stevenfeuerstein.com.

Value too large!

Interestingly, if you try to insert or update a value in a VARCHAR2 column of a database table, Oracle Database raises a different error, which you can see below:
SQL> CREATE TABLE small_varchar2 2 3 4 ) ( string_value VARCHAR2 (2)

Different maximum sizes. There are a number of differences between SQL and PL/SQL for the maximum sizes for string datatypes. In PL/SQL, the maximum size for VARCHAR2 is 32,767 bytes, while in SQL the maximum is 4,000 bytes. In PL/SQL, the maximum size for CHAR is 32,767 bytes, while in SQL the maximum is 2,000 bytes. Therefore, if you need to save a value from a VARCHAR2 variable in the column of a table, you might encounter the ORA-12899 error. If this happens, you have two choices: Use SUBSTR to extract no more than 4,000 bytes from the larger string, and save that substring to the table. This option clearly has a drawback: you lose some of your data. Change the datatype of the column from VARCHAR2 to CLOB. This way, you can save all your data. In PL/SQL, the maximum size for CLOB is

nexT STePS
Learn more about PL/SQL datatypes bit.ly/nrpGAw differences between cHar and VarcHar2 bit.ly/pigccv built-in functions bit.ly/nIdZ8o DOWnLOaD Oracle Database 11g oracle.com/software/products/database TeST your PL/SQL knowledge plsqlchallenge.com reaD PL/SQL 101, Parts 1 and 2 bit.ly/fc0uoJ

September/OctOber 2011 OracLe.cOm/OracLemagazine

DBA

Support By Tamzin OscrOfT

71

troubleshooting internal errors

Oracle DaTaBase

a guide to assessing and resolving Ora-600 and Ora-7445 errors

f youre an Oracle DBA, youre likely to have come across an error message in your Oracle Database alert.log files prefixed by either ORA-600 or ORA-7445, such as
Thu Jan 20 13:35:52 2011 Errors in file /DATA/oracle/admin/ prod/udump/prod_ora_2131.trc: ORA-00600: internal error code, arguments: [ktfbtgex-7], [1015817], [1024], [1015816], [], [], [], []

Because these internal error messages include no attached explanation in the way that external error messages do (for example, ORA-00942: table or view does not exist), it is difficult to assess the seriousness of the error and whether it is cause for concern. This column explains what you can do to assess some ORA-600 or ORA-7445 errors and identify solutions. ORA-600 OR ORA-7445: WhAt Is the DIffeRence? ORA-600 is a catchall message that indicates an error internal to the database code. The key point to note about an ORA-600 error is that it is signaled when a code check fails within the database. At points throughout the code, Oracle Database performs checks to confirm that the information being used in internal processing is healthy, that the variables being used are within a valid range, that changes are being made to a consistent structure, and that a change wont put a structure into an unstable state. If a check fails, Oracle Database signals an ORA-600 error and, if necessary, terminates the operation to protect the health of the database. The first argument to the ORA-600 error message indicates the location in the code where the check is performed; in the

example above, that is ktfbtgex-7 (which indicates that the error occurred at a particular point during tablespace handling). The subsequent arguments have different meanings, depending on the particular check. An ORA-7445 error, on the other hand, traps a notification the operating system has sent to a process and returns that notification to the user. Unlike the ORA-600 error, the ORA-7445 error is an unexpected failure rather than a handled failure. The Oracle function in which that notification signal is received is usually, from Oracle Database 10g onward, contained in the ORA-7445 error message itself. For example, in the error message
ORA-07445: exception encountered: core dump [kocgor()+96] [SIGSEGV] [ADDR:0xF000000104] [PC:0x861B7EC] [Address not mapped to object] []

the failing function is kocgor, which is associated with the handling of user-defined

objects. The trapped signal is SIGSEGV (signal 11, segmentation violation), which is an attempt to write to an illegal area of memory. Another common signal is SIGBUS (signal 10, bus error), and there are other signals that occur less frequently, with causes that range from invalid pointers to insufficient OS resources. Both ORA-600 and ORA-7445 errors will Write the error message to the alert.log, along with details about the location of a trace containing further information Write detailed information to a trace file in the location indicated in the alert.log In Oracle Database 11g Release 1 onward, create an incident and place the relevant files in the incident directory in the location defined by the diagnostic_dest initialization file parameter Write the error message to the user interface if the server process is not terminated or signal ORA-3113 if it is Often you will see multiple errors reported within the space of a few minutes,

code listing 1: Query plan accessing three tables and two indexes
|Id |Operation |Name |Rows |Bytes |Cost |Time | |0 |SELECT STATEMENT | | | |883K | | |1 | WINDOW NOSORT | |2506K | 318M |883K |04:31:56| |2 | SORT GROUP BY | |2506K | 318M |883K |04:31:56| |3 | HASH JOIN RIGHT OUTER | |2506K | 318M |837K |03:20:05| |4 | VIEW |index$_join$_006| 8777 | 257K | 35 |00:00:01| |5 | HASH JOIN | | | | | | |6 | INDEX FAST FULL SCAN |XC179S1 | 8777 | 257K | 18 |00:00:01| |7 | INDEX FAST FULL SCAN |XC179P0 | 8777 | 257K | 25 |00:00:01| |8 | VIEW | |2506K | 245M |837K |03:20:04| |9 | HASH JOIN OUTER | |2506K | 296M |837K |03:20:04| |10 | HASH JOIN | |2506K | 184M |454K |02:49:32| |11 | TABLE ACCESS FULL |TESTTAB1 |2484K | 102M |361K |01:26:13| |12 | TABLE ACCESS FULL |TESTTAB2 | 21M | 688M | 49K |00:12:37| |13 | TABLE ACCESS FULL |TESTTAB3 | 94M |4326M |146K |00:35:51|

orAcle mAgAzine sepTemBer/OcTOBer 2011

72

Support

typically starting with an ORA-600. It is usually, but not always, the case that the first is the significant error and the others are side effects. Can I RESolvE ThESE ERRoRS MySElf? For some ORA-600 and ORA-7445 errors, you can either identify the cause and resolve the error on your own or find ways to avoid the error. The information provided in this section will help you resolve or work around some of the more common errors. oRa-600 [729]. The first argument to this ORA-600 error message, 729, indicates a memory-handling issue. The error message text will always include the words space leak, but the number after 729 will vary:
ORA-00600: internal error code, arguments: [729], [800], [space leak], [], [],

code listing 2: Find the index


SELECT owner, segment_name, segment_type, partition_name FROM DBA_SEGMENTS WHERE header_file = (SELECT file# FROM v$datafile WHERE rfile# = dbms_utility.data_block_address_file(to_ number('&rdba','XXXXXXXX')) AND ts#= &tsn) AND header_block = dbms_utility.data_block_address_block(to_ number('&rdba','XXXXXXXX'));

A space leak occurs when some code does not completely release the memory it used while executing. In this example, when that process disconnected from the database, it discovered that some memory was not cleaned up at some point during its life and reported ORA-600 [729]. The number in the second set of brackets (800) is the number of bytes of memory discovered. You cannot determine the cause of the space leak by checking your application code, because the error is internal to Oracle Database. You can, however, safely avoid the error by setting an event in the initialization file for your database in this form:
event="10262 trace name context forever, level xxxx"

example above, you could set the number to 1000, in which case the event instructs the database to ignore all user space leaks that are smaller than 1000 bytes. oRa-600 [kddummy_blkchk]. The kddummy_blkchk argument indicates that checks on the physical structure of a block have failed. This error is reported with three additional arguments: the file number, the block number, and an internal code indicating the type of issue with that block. The following is an alert.log excerpt for an ORA-600 [kddummy_blkchk] error:
Errors in file/u01/oracle/admin/ PROD/bdump/prod_ora_11345.trc: ORA-600: internal error code, arguments: [kddummy_blkchk], [2], [21940], [6110], [], [], [], []

SQL>analyze index <indexname> validate structure;

If there is definitely a corruption in the object, the error returned will be


ORA 1498 "block check failure see trace file"

The ORA-600 [kddummy_blkchk] error message usually reports a corruption, so to identify the object involved, first use the file number (&afn) and the block number (&bn) reported in the error message in the SQL query:
select * from dba_extents where file_id=&afn and &bn between block_id and block_id + blocks 1;

The best way to resolve the corruption is to restore a copy of the affected datafile from before the error and to recover the database so these changes are applied to the restored datafile and brought forward to the current time. This action is possible only if the archivelog feature for your database is enabled. (Enabling this feature ensures that all changes to the database are saved in archived redo logs.) oRa-600 [6033]. This error is reported with no additional arguments, as shown in the following alert.log file excerpt:
Errors in file/u01/oracle/admin/PROD/ bdump/prod_ora_2367574.trc: ORA-600: internal error code, arguments: [6033], [], [], [], [], [], [], []

or by executing the following:


SQL>alter system set events '10262 trace name context forever, level xxxx' scope=spfile;

&afn is the first additional argument (2 in this example); &bn is the second additional argument (21940 in this example). If the query returns a table, confirm the corruption by executing
SQL>analyze table <tablename> validate structure;

You will also need to shut the database down and restart it to enable the event to take effect. Replace xxxx with a number greater than the value in the second set of brackets in the ORA-600 [729] error message. In the

If the query returns an index, confirm the corruption by executing

The ORA-600 [6033] error often indicates an index corruption. To identify the affected index, youll need to look at the trace file whose name is provided in the alert.log file, just above the error message. In this alert.log excerpt, the trace file you need to look at is called prod_ora_2367574.trc and is located in /u01/oracle/admin/PROD/bdump. There are two possible ways to identify the table on which the affected index is built: 1. Look for the SQL statement that was executing at the time of the error. This statement should appear at the top of the trace file, under the heading Current SQL Statement. The affected index will

September/OctOber 2011 oracle.com/oraclemagazine

73

belong to one of the tables accessed by that statement. 2. Search within the trace file for the words Plan Table. This search will return the tables and indexes the Oracle Database optimizer is using to access the data that will satisfy the query being executed. For example, the query using the plan in Listing 1 is accessing the testtab1, testtab2, and testtab3 tables and the XC179S1 and XC179PO indexes. For each of the tables used by the SQL statement that was executing at the time of the error, execute the following statement:
SQL>analyze table <tablename> validate structure cascade;

Figure 1: ora-600/ora-7445 lookup tool interface


/u01/app/oracle/admin/prod/bdump/ prod_smon_8201.trc: ORA-7445: exception encountered: core dump [ksxmcln()+0] [SIGBUS] [object specific hardware error] [6822760] [] []

Once youve identified the resource that affects the running of the statement, increase the amount of that resource available to Oracle Database. SUmmARy By following the instructions in this article, you should be able to resolve some errors that are caused by underlying physical issues such as file corruption or insufficient swap space. But because ORA-600 and ORA-7445 errors are internal, many cannot be resolved by user-led troubleshooting. For those Oracle Database users with Oracle support contracts, however, additional knowledge content is available via My Oracle Support. Most notably, the ORA-600/ORA-7445 lookup tool [Knowledge Article 153788.1], shown in Figure 1, enables you to enter the first argument to an ORA-600 or ORA-7445 error message and use that information to identify known defects, workarounds, and other knowledge targeted specifically to that error/argument combination.

This will check to ensure that every value in the index is also in the table, and vice versa. If it finds a mismatch, it will report
ORA-1499 table/Index Cross Reference Failure - see trace file

The trace file will be in the location indicated by the user_dump_dest or diagnostic_ dest initialization parameter and will contain information similar to
row not found in index tsn: 8 rdba: 0x04d01348

You can then find the index with by using the query in Listing 2. Replace the &rdba and &tsn values in Listing 2 with the appropriate values. For this example, the &rdba value is the rdba from the trace file with the 0x portion removed and &tsn is the tablespace number (tsn) from the trace file. (&rdba in this case would be 04d01348,and &tsn would be 8.) Once you have identified the index, drop and re-create it. It is important to drop and re-create the index rather than rebuilding it online, because only re-creating it will reinitialize the values in the index. ORA-7445 [xxxxxx] [SIGBUS] [OBJECT SPECIFIC HARDWARE ERROR]. This ORA7445 error can occur with many different functions (in place of xxxxxx). For example, the following alert.log excerpt shows the failing function as ksxmcln.

The important part of this error is the object specific hardware error argument, which indicates that there were insufficient operating system resources to complete the action. The most common resources involved are swap and memory. To diagnose the cause of an ORA-7445 error, you should first check the operating system error log; for example, in Linux this error log is /var/log/messages. Within the error log, look for information with the same time stamp as the ORA-7445 error (this will be in the alert.log next to the error message). You will often find an error message similar to
Jun 9 19:005:05 PRODmach1 genunix: [ID 470503 kern.warning] WARNING: Sorry, no swap space to grow stack for pid 9632

If no errors are reported in the operating system error log with the same time stamp as the ORA-7445 error, check the ORA-7445 trace file. If there is a statement in the trace file under the heading Current SQL Statement, execute that statement again to try to reproduce the error. If the error is reproduced, run the statement again while monitoring OS resources with standard UNIX monitoring tools such as sar or vmstat (contact your system administrator if you are not sure which to use).

tamzin oscroft is a senior principal support


engineer in Oracle Database Support. She has worked for Oracle Global Software Support for 16 years.

next StepS
learn more about my oracle Support support.oracle.com blogs.oracle.com/supportportal reaD more about error messages Oracle Database Error Messages 11g Release 2 bit.ly/mqNFVQ

oracle magazine September/OctOber 2011

74

Database Application Developer and DBA

On caching and evangelizing SQl

OracLe DatabaSe

Our technologist caches scalar subqueries, votes for SQL, and recommends technology and community.

ne of the talks I gave recently at the Oracle Benelux User Group (OBUG) conference in Belgium was regarding techniquessome SQL tricks, if you willyou can use when writing SQL. One of the techniques I discussed at length was scalar subqueries and how they can be used to minimize the number of times a PL/SQL function is called from SQL. This is important because the overhead of going from SQL to PL/SQL over and over again can be quite expensive, and the scalar subquery caching database feature can dramatically decrease this overhead. What exactly is a scalar subquery? It is a subquery in a SQL statement that returns exactly one column and zero rows or one row. That single column can be a complex object type, so it can consist of many attributes, but the subquery returns a single scalar value (or NULL if the subquery returns zero records). A scalar subquery can be used anywhere a literal could have been used. For example, you can obviously create the query

select dept.deptno, dept.dname, count(emp.empno) from dept left outer join emp on (dept.deptno = emp.deptno );

select project_name, deptno, (select count(*) from emp where emp.deptno = projects.deptno) from projects;

select deptno, dname, 'Hello world' from dept;

Regarding these last two queries, if your goal is to optimize your query for initial response time, you may want to use the former query, with the scalar subquery, because Oracle Database would have to get just the first row from DEPT, run the scalar subquery (select count) against EMP to get the count, and then return it. The process for returning that first row would be very fast. The latter query, which includes an outer join, would likely require two full table scans, a hash outer join, and an aggregationand require all these processes to be completed before the first row could be returned. So, now that you know what a scalar subquery is, you need to understand the scalar subquery caching feature of Oracle Database. In the above query with a scalar subquery, the database would actually extract the scalar subquery and rewrite it to use bind variables. In effect, the database would be executing
(select count(*) from emp

will have to execute the scalar subquery at least as many times as there are unique DEPTNO values in the PROJECTS table. Note that I said, at least as many times the database does not have to execute the scalar subquery for every row in the PROJECTS table if it caches some of the results and reuses them, which is what happens with scalar subquery caching. When youre using a scalar subquery, Oracle Database will set up a small inmemory hash table for the subquery and its results each time it runs the query. So, when you run the previous query, Oracle Database sets up in memory a hash table that looks like this:
Select count(*) from emp where emp.deptno = :deptno :deptno . count(*) .

You can also (since Oracle8i Database Release 8.1.5, anyway) include a scalar subquery:
select deptno, dname, (select count(*) from emp where emp.deptno = dept.deptno) from dept;

where emp.deptno = ?)

Note that the complete last query is semantically equivalent to

for each row in the DEPT table. Given that DEPTNO is unique in DEPT, the database would have to physically execute that scalar subquery for each row in DEPT. But what if you are not querying the DEPT table but, rather, another table that includes a DEPTNO column? Perhaps a PROJECTS table with records that have PROJECT_ NAME and DEPTNO columns? Then a query such as

Oracle Database will use this hash table to remember the scalar subquery and the inputs to itjust :DEPTNO in this case and the output from it. At the beginning of every query execution, this cache is empty, but suppose you run the query and the first PROJECTS row you retrieve has a DEPTNO value of 10. Oracle Database will assign the number 10 to a hash value between 1 and 255 (the size of the hash table cache in Oracle Database 10g and Oracle Database 11g currently) and will look in that hash table

September/OctOber 2011 OrAcle.cOm/OrAclemAgAzine

Ask Tom by tOm Kyte

75

slot to see if the answer exists. In this case, it will not, so Oracle Database must run the scalar subquery with the input of 10 to get the answer. If that answer (count) is 42, the hash table may look something like this:
select count(*) from emp where emp.deptno = :deptno :deptno . 10 . count(*) 42 .

code listing 1: pL/SQL function f


SQL> create or replace function f( x in varchar2 ) return number 2 as 3 begin 4 dbms_application_info.set_client_info (userenv('client_info')+1 ); 5 return length(x); 6 end; 7 / Function created.

code listing 2: Demonstrating once-per-row repetition in function f


Youll have saved the DEPTNO value of 10 and the answer (count) of 42 in some slotprobably not the first or last slot, but whatever slot the hash value 10 is assigned to. Now suppose the second row you get back from the PROJECTS table includes a DEPTNO value of 20. Oracle Database will again look in the hash table after assigning the value 20, and it will discover no result in the cache yet. So it will run the scalar subquery, get the result, and put it into the hash table cache. Now the cache may look like this:
select count(*) from emp where emp.deptno = :deptno :deptno 10 . 20 count(*) 42 . 55
SQL> begin 2 :cpu := dbms_utility.get_cpu_time; 3 dbms_application_info.set_client_info(0); 4 end; 5 / PL/SQL procedure successfully completed. SQL> select owner, f(owner) from stage; 72841 rows selected. SQL> 2 3 4 select dbms_utility.get_cpu_time-:cpu cpu_hsecs, userenv('client_info') from dual; USERENV('CLIENT_INFO') 72841

CPU_HSECS 118

Now suppose the query returns a third row and it again includes a DEPTNO value of 10. This time, Oracle Database will see DEPTNO = 10, find that it already has that value in the hash table cache, and will simply return 42 from the cache instead of executing the scalar subquery. In fact, it will never have to run that scalar subquery for the DEPTNO values of 10 or 20 again for that queryit will already have the answer. What happens if the number of unique DEPTNO values exceeds the size of the hash table? What if there are more than 255 values? Or, more generally, if more than one DEPTNO value is assigned to the same slot in the hash table, what happens in a hash collision? The answer is the same for all these questions and is rather simple: Oracle

Database will not be able to cache the second or nth value to that slot in the hash table. For example, what if the third row returned by the query contains the DEPTNO = 30 value? Further, suppose that DEPTNO = 30 is to be assigned to exactly the same hash table slot as DEPTNO = 10. The database wont be able to effectively cache DEPTNO = 30 in this casethe value will never make it into the hash table. It will, however, be partially cached. Oracle Database still has the hash table with all the previous executions, but it also keeps the last scalar subquery result it had next to the hash table. That is, if the fourth row also includes a DEPTNO = 30 value, Oracle Database will discover that the result is not in the hash table but is next to the hash table, because the last time it ran the scalar subquery, it was run with an input of 30. On the other hand, if the fourth row includes a DEPTNO = 40 value, Oracle Database will run the scalar subquery with the DEPTNO = 40 value (because it hasnt seen that

value yet during this query execution) and overwrite the DEPTNO = 30 result. The next time Oracle Database sees DEPTNO = 30 in the result set, itll have to run that scalar subquery again. So, all this discussion so far was a setupa prelude, if you willfor what I really wanted to write about: how to reduce the number of times a PL/SQL function invoked from SQL is called. Suppose you have a PL/SQL function like the one in Listing 1. This function will simply increment a counter each time it is called. The counter value will be stored in the CLIENT_INFO column of V$SESSION, and the function will then return the length of its input. If you execute a simple query like the one in Listing 2 (note that the STAGE table is simply a copy of ALL_OBJECTS), you can see that the function was called once per row even though the inputs to the function were repeated over and over again. If you use a scalar subqueryif you replace f(owner)

orAcle mAgAzine September/OctOber 2011

76

Ask Tom

with (select f(owner) from dual)you will notice a massive reduction in calls to the function, as shown in Listing 3. As you can see in Listing 3, the function went from 72,841 calls down to 66! And the CPU time dropped dramatically as well. That reduction in CPU time resulted from not calling the function (and therefore not making the context switch from SQL to PL/SQL and not invoking DBMS_ APPLICATION_INFO and LENGTH so often). Now, some of you might be thinking about the possibility of marking the function deterministic, because it is, in fact, deterministic. Wouldnt that reduce the number of function calls as well? The short answer is yes, but the longer answer is yes, but not as well as scalar subquery caching can. As you can see in the deterministic function in Listing 4, the number of calls is reduced, but only down to 8,316. The scalar subquery cache in this case was better than just marking the function as deterministic. (Note: Marking a function deterministic affects caching only in Oracle Database 10g and above; you will see no change in the number of calls in Oracle9i Database with deterministic functions). Going one step further, you might ask, But what if you used the function result cache in Oracle Database 11g? Could you get the function calls down to zero? The answer is, Yes, sort of. The function calls would go down to zero, but the context switching from SQL to PL/SQL would remain at a very high value: 72,841 times in this case. Listing 5 shows a function result cache solution. The number of function calls is 32 (because I happen to have 32 schemas in my database), and the CPU time is 0.73 secondsabout the same as that of the DETERMINISTIC function and far above the CPU time of 0.29 seconds used by the 66 calls made by the scalar subquery. Furthermore, if you were to run this query againas shown in Listing 6youd discover that it calls the function zero times, but the CPU time (0.63 seconds) is still longer than the CPU time for the scalar subquery cache example in Listing 3. This just shows that even if your function is deterministic, even if it is result-

code listing 3: reducing function calls with scalar subquery


SQL> begin 2 :cpu := dbms_utility.get_cpu_time; 3 dbms_application_info.set_client_info(0); 4 end; 5 / PL/SQL procedure successfully completed. SQL> select owner, (select f(owner) from dual) f from stage; 72841 rows selected. SQL> 2 3 4 select dbms_utility.get_cpu_time-:cpu cpu_hsecs, userenv('client_info') from dual; USERENV('CLIENT_INFO') 66

CPU_HSECS 29

code listing 4: Deterministic function variation


SQL> create or replace function f( x in varchar2 ) return number 2 DETERMINISTIC 3 as 4 begin 5 dbms_application_info.set_client_info (userenv('client_info')+1 ); 6 return length(x); 7 end; 8 / Function created. SQL> begin 2 :cpu := dbms_utility.get_cpu_time; 3 dbms_application_info.set_client_info(0); 4 end; 5 / PL/SQL procedure successfully completed. SQL> select owner, f(owner) from stage; 72841 rows selected. SQL> 2 3 4 select dbms_utility.get_cpu_time-:cpu cpu_hsecs, userenv('client_info') from dual; USERENV('CLIENT_INFO') 8316

CPU_HSECS 69

cached, there is a good reason to always wrap your function call in a SELECT FROM DUAL. Ive gotten into the habit over the years of never coding
select * from t where column = plsql_function(..);

but rather including a simple scalar subquery


select * from t where column = (select plsql_function() from dual);

September/OctOber 2011 orAcle.com/orAclemAgAzine

77

code listing 5: Function result cache solution


SQL> create or replace function f( x in varchar2 ) return number 2 RESULT_CACHE 3 as 4 begin 5 dbms_application_info.set_client_info (userenv('client_info')+1 ); 6 return length(x); 7 end; 8 / Function created. SQL> begin 2 :cpu := dbms_utility.get_cpu_time; 3 dbms_application_info.set_client_info(0); 4 end; 5 / PL/SQL procedure successfully completed. SQL> select owner, f(owner) from stage; 72841 rows selected. SQL> 2 3 4 select dbms_utility.get_cpu_time-:cpu cpu_hsecs, userenv('client_info') from dual; USERENV('CLIENT_INFO') 32

settings. Could you explain CACHE and NOCACHE with an example? Sure. In short, if you use NOCACHE, every time you call sequence.nextval, you will cause a table named SYS.SEQ$ to be updated and committed. Every single time. If, on the other hand, you use the default value, CACHE 20, you will cause SYS.SEQ$ to be updated and committed every 20th time you call sequence.nextval. It is a performance thing. If you dont cache the next couple of sequence values in the system global area (SGA), you will be doing an UPDATE and COMMIT every single time you call nextval. You can evaluate the performance impact this might have on your applicationespecially with large data loadsif the cache value is set too low. For example, lets create three sequences
SQL> create sequence nocache_seq NOCACHE; Sequence created. SQL> create sequence default_cache_seq; Sequence created.

CPU_HSECS 73

to get the performance benefit of the scalar subquery cache. Is the Cursor DyIng? With subquery factoring, MODEL, PIVOT, MERGE with DELETE, Materialize and other hints, global temporary tables, DML (data manipulation language) error logging, and so many other powerful new SQL features, when is it necessary to use cursors (apart from using ref cursors for reports). Is the cursor dying? Well, the simple UPDATE statement
update t set x = 5;

requires a cursor. In fact, every SELECT you execute, every DELETE you performpretty much everythingrequires a cursor. So it is doubtful that cursors are dying. However, I think you may mean, Is the need to procedurally process the output of a cursor dying? Many times (many, many, many times), a ton of procedural code can be replaced with a single SQL statement. That has been true for a long time and is

truer today than ever with features such as DML error logging. So, yes, we should all be striving to erase as much procedural code as possible and go set-based. Does it mean the death of cursors? No, not at all. It means the reduction of procedural codemore code = more bugs; less code = fewer bugs. But it also means that people have to read the documentation, understand the benefits, learn the full SQL language, and start using it. I was once asked in a question-andanswer session what I thought was the most underutilized Oracle Database feature. I responded almost immediately with the answer SQL. The questioner then asked me, But what do you mean everyone uses SQL all the time. My response was that everyone uses very, very simple SQL and avoids 99 percent of its actual capabilities. sequenCe CaChIng I read about sequence caching, but I still do not understand the CACHE and NOCACHE

SQL> create sequence big_cache_seq cache 100000; Sequence created.

and a table to test with


SQL> create table t ( x int ); Table created.

Now lets execute the following block of code with SQL trace enabled for each of the three sequencesreplace &1 with the actual sequence name (nocache_seq, default_cache_seq, or big_cache_seq) as you run them:
SQL> truncate table t; Table truncated. SQL> insert into t (x) 2 3 4 5 6 with data(x) as (select 1 x from dual union all

orAcle mAgAzine September/OctOber 2011

78

Ask Tom

code listing 6: rerunning the function result cache solution


SQL> begin 2 :cpu := dbms_utility.get_cpu_time; 3 dbms_application_info.set_client_info(0); 4 end; 5 / PL/SQL procedure successfully completed. SQL> select owner, f(owner) from stage; 72841 rows selected. SQL> 2 3 4 select dbms_utility.get_cpu_time-:cpu cpu_hsecs, userenv('client_info') from dual; USERENV('CLIENT_INFO') 0

was around 2.1 seconds, according to the TKPROF report. Something i dont uSually do If youve been looking for an excuse to learn Oracle Application Express and you wanted a book for working through it, Expert Oracle Application Express (Apress, 2011) is for you. I know most of the authors personally and can attest to their technical knowledge of Oracle Application Express. The technical content of the book is good, and I also really appreciate what the authors are doing with the royalties. They are contributing 100 percent of the royalties received to the families of two Oracle Application Express developers who have passed away. You can read about the book and the royalty donations at bit.ly/jSLd4q.

CPU_HSECS 63

7 8 9 10 11 12

select x+1 from data where x <= 100000) select &1.nextval from data /

the TKPROF report for all the statements executed (not shown) was 54 seconds, and most of that time was spent maintaining the sequence. Using the default cache sequence (default_cache_seq), you see very different numbers:
call count 1 5001 0 5002 cpu 0.00 1.60 0.00 1.60 elapsed 0.00 1.89 0.00 1.89

Tom kyte is a database


evangelist in Oracles Server technologies division and has worked for Oracle since 1993. He is the author of Expert Oracle Database Architecture (Apress, 2005, 2010) and Effective Oracle by Design (Oracle press, 2003), among other books.

100001 rows created.

The resulting TKPROF reports are pretty telling. For the NOCACHE sequence (nocache_seq), you see
update seq$ set where obj#=:1 call Parse Fetch total count 1 0 100002 cpu 0.00 33.22 0.00 33.22 elapsed 0.00 40.23 0.00 40.23

Parse Execute Fetch total

nexT sTeps
Ask Tom tom Kyte answers your most difficult technology questions. Highlights from that forum appear in this column. asktom.oracle.com reAD more Tom Oracle Database Concepts 11g Release 2 (11.2) bit.ly/aonqpp Expert Oracle Database Architecture: Oracle Database 9i, 10g, and 11g Programming Techniques and Solutions, Second Edition amzn.to/ckGXar Effective Oracle By Design amzn.to/p8c5bu The Tom Kyte Blog tkyte.blogspot.com DiscUss oracle Database, express edition bit.ly/njntq5 FolloW oracle Database on Twitter twitter.com/oracledatabase on Facebook facebook.com/oracledatabase

Execute 100001

You are down to about 2 seconds of runtime for the sequence operation, and the total runtime (not shown) for all the statements executed was about 4.5 seconds (yes, 4.5 seconds). Using the big cache sequence (big_ cache_seq), you see
call count 1 2 0 3 cpu 0.00 0.00 0.00 0.00 elapsed 0.00 0.00 0.00 0.00

It took 40 seconds to update the SYS .SEQ$ table! Every time you needed a new sequence, you had to do an UPDATE and COMMIT. The total elapsed time in DoWnloAD oracle Database 11g release 2 bit.ly/epbiUG oracle Database, express edition 11g (Beta) bit.ly/epbiUG

Parse Execute Fetch total

You basically spent no time maintaining the SYS.SEQ$ table, and the total runtime (not shown) for all the statements executed

September/OctOber 2011 orAcle.com/orAclemAgAzine

Database Application Developer and DBA

SQL 101 By Melanie Caffrey

79

get Your information in order


part 1 in a series on the basics of the relational database and SQl

OraCle dataBaSe

sk most seasoned professionals working with Oracle Database instances today what their chief complaint regarding performance issues is, and 9 times out of 10, they will answer with responses along the lines of lack of SQL expertise, poorly written SQL statements, or poorly trained database programmers. As relational databases have become a necessary part of everyday business life, knowledge of structured query language (SQL) has become paramount. Paradoxically, however, learning good SQL programming techniques has taken a backseat to creating, for example, user-friendly, attractive interfaces written in database-agnostic programming languages such as Java. Programmers may spend a great deal of time learning their chosen or assigned interface language and very little to no time learning SQL. This series of SQL 101 articles is for those new to or not yet completely familiar with relational database concepts and SQL coding constructs. It is for anyone learning SQL, tasked with teaching SQL to others within a workgroup, or managing programmers who write database access code. This first article in the series begins with information about the basic building blocks that all programmers (or DBAs/designers/ managers) should know when writing their first set of SQL statements.

A relational database stores data in a twodimensional matrix known as a table, and tables generally consist of multiple columns and rows. (I say generally here because it is possible to have a table with just one column and no rows, although it is not common. I will cover that exception in later articles in this series.) Relational databases employ relational database management system (RDBMS) software to help manage the task of giving a user the ability to read and manipulate data without knowing the exact file and/or drive storage device location where a particular piece of information can be found. (Oracle Database is, among other things, an RDBMS.) Users need only know which tables contain the information they seek. The RDBMS relies on SQL constructs and keywords, provided by users, to access the tables and the data contained within the tables columns and rows. How Is DAtA representeD In A relAtIonAl DAtAbAse? Each table in a relational database usually contains information about a single type of data and has a unique name, distinct from all other tables in that schema. A schema is typically a grouping of objects (such as tables) that serve a similar business function. For example, three tables that contain data about employees, departments, and payroll details, respectively, may exist together inside a schema named HR. There can be only one table named EMPLOYEE inside the

How Is DAtA orgAnIzeD In A relAtIonAl DAtAbAse? Being able to visualize how data is organized in a database is key to retrieving that data quickly and easily. Whenever you withdraw money from an ATM, you are reading and manipulating data. Whenever you purchase anything online, you are changing data. Whether you are banking, shopping, or performing one of many business activities, you are likely interacting with a relational database.

HR schema (for the purposes of this introductory explanation, discussions regarding features that support the coexistence of tables with the same name, such as Oracle Database 11gs editions and Edition-Based Redefinition, are beyond the scope of this article). Now suppose the information in an EMPLOYEE table includes the structure and content shown in Figure 1. A table consists of at least one column, and a column is a set of values of a particular type of data. Like a tables name within a schema, a columns name is unique within a table and should clearly identify the type of data it contains. For example, the EMPLOYEE table has columns for the employees first name (FIRST_NAME), last name (LAST_NAME), hire date (HIRE_DATE), and manager (MANAGER) in this initial, scaled-down representation. In Figure 1, the employee LAST_NAME Newton represents a single data element within the table. And the HIRE_DATE 14-SEP-2005 represents another single data element. Further, each row in a table represents a single set of data. For example, the row of the EMPLOYEE table with the FIRST_NAME Frances and LAST_NAME Newton represents a unique set of data. Each intersection of a column and a row represents a value. However, note that some values are not present. In Figure 1, not every row/column combination for MANAGER contains a value. In this case, such values are said to be NULL. A null value is not a blank, a space, or a zero. It is the absence of a value.

First_name frances donald

Last_name newton newton

Hire_Date 14-Sep-2005 24-Sep-2006

manager

roW
28

lindy GrOeninG

coLUmn Figure 1: The emPLoYee table

orAcLe mAgAzine SepteMBer/OCtOBer 2011

80

SQL 101

The Key To Good RelaTions For a row to be able to uniquely represent a particular set of data, it must be unique for the entire set of row/column value intersections within the table. If the company using the EMPLOYEE table were to hire another employee named Frances Newton on September 14, 2005, and Frances Newton had no MANAGER value associated with her row in the EMPLOYEE table yet, the original entry for Frances Newton would no longer be unique. This coincidence of identical data is referred to as a duplicate. Duplicate entries should not be allowed in tables (more in subsequent articles on why this is so). Therefore, the EMPLOYEE table requires a column that will ensure uniqueness for every row, even if the company hires several employees with the same names and employment details. Enter the primary key. The primary key is a column that ensures uniqueness for every row in a table. When a primary key is added to the EMPLOYEE table, the two Frances Newtons are no longer alike, because one now has an EMPLOYEE_ID value of 37 and the other has an EMPLOYEE_ID value of 73. Figure 2 illustrates the addition of the EMPLOYEE_ID primary key to the EMPLOYEE table. Note that the EMPLOYEE_ID value appears to have nothing specifically to do with the rest of the column/row combination values that follow it within each row. In other words, it has nothing to do with the employee data per se. This type of key is often a system-generated sequential number, and because it has nothing to do with the rest of the data elements in the table, it is referred to as a synthetic or surrogate key. Using such a key is advantageous in maintaining the uniqueness of each row, because the key is not subject to updates and is therefore immutable. It is best to avoid primary key values that are subject to changes, because they result in complexity that is almost impossible to manage. A table can have only one primary key, comprising one or several columns. A key comprising more than one column is referred to as a composite or concatenated key. In some cases, a primary key may not be necessary or even appropriate. In most cases, however, it is strongly recommended that every table have a primary key. (Oracle

employee_iD 37 73 1234

First_name Frances Frances Donald

Last_name Newton Newton Newton

Hire_Date 14-Sep-2005 14-Sep-2005 24-Sep-2006

manager

28

PrimarY KeY Figure 2: The emPLOYee_iD primary key emPLOYee


employee_iD 37 1234 First_name Frances Donald Last_name Newton Newton Hire_Date 14-Sep-2005 24-Sep-2006 28 manager Department iD 10 10

FOreign KeY DeParTmenT


Department iD 10 20 name Accounting payroll

PrimarY KeY Figure 3: emPLOYee and DeParTmenT tables with a foreign key relationship

employee_ iD 37 1234

First_ name Frances Donald

Last_ name Newton Newton

Hire_Date 14-Sep2005 24-Sep2006

manager

Dept iD 10

Office_1 New York New York

Office_2 colorado Springs San Francisco

Office_3 San Francisco

28

10

Figure 4: emPLOYee table with office location columnsfirst normal form violation

Database does not require every table to have a primary key, however.) CaReful ConsideRaTion of foReiGn RelaTions Up to now, this discussion has focused on how data is organized in a single table. But a relational database also connects (relates) tables and organizes information across multiple tables. An important connector in a relational database is the foreign key, which identifies a column or set of columns in one table that refers to a column or set of columns in another table. In addition to connecting information, the use of foreign key relations between tables helps keep information organized. For example, if you store the department name of each employee alongside each employees details in the EMPLOYEE table,

you may very well see the same department name repeated across multiple employee listings. And any change to a department name would require that name to subsequently be updated in every row for every employee in that department. If, however, you split the data into two tables, EMPLOYEE and DEPARTMENT, as shown in Figure 3, you will be simultaneously establishing a relationship between the tables by using a foreign key and organizing the data to minimize updates and provide the best-possible data consistency. Consider the resultant data split shown in Figure 3. In Figure 3, DEPARTMENT_ID is a foreign key column in the EMPLOYEE tableit links the EMPLOYEE and DEPARTMENT tables together. You can find all employee details for every employee in a particular department by looking at that DEPARTMENT_ID

September/OctOber 2011 OracLe.cOm/OracLemagazine

81

column in the EMPLOYEE table. The DEPARTMENT_ID value corresponds to one row in the DEPARTMENT table that provides department-specific information. Less Is More, or Less Is the NorM Key to understanding relational databases is knowledge of data normalization and table relationships. The objective of normalization is to eliminate redundancy and thereby avoid future problems with data manipulation. The rules that govern how a database designer should go about minimizing the duplication of data have been formulated into various normal forms. The design of tables, columns, and primary and foreign keys follows these normalization rules, and the process is called normalization. There are many normalization rules. The most commonly accepted are the five normal forms and the Boyce-Codd normal form. In my experience, many programmers, analysts, and designers do not normalize beyond the third normal form, although experienced database designers may. First and foremost. For a table to be in first normal form, all repeating groups must be moved to a new table. Consider the example in Figure 4, in which several office location columns have been added to the EMPLOYEE table. The table has multiple columns containing office location values for those employees who travel frequently for work and are required to physically work in multiple office locations. Office location values are listed in three columns: OFFICE_1, OFFICE_2, and OFFICE_3. What will happen when one of these employees is required to work in an additional location? To avoid problems or having to add yet another column, OFFICE_4, the database designer moves the office location data to a separate table named EMPLOYEE_OFFICE_ LOCATION, as shown in Figure 5. second normal form and composite keys. Second normal form is a special-case normal form that has to do with tables that have composite primary keys. A composite primary key includes two or more columns. In second normal form, all nonkey columns must depend on the entire primary key. In other words, any nonkey columns added to a

emPLoYee
employee_iD 37 1234 First_name Frances Donald Last_name Newton Newton Hire_Date 14-Sep-2005 24-Sep-2006 28 manager Department iD 10 10

emPLoYee oFFice LocaTion


employee_iD 37 37 37 1234 1234 office San Francisco New York colorado Springs New York San Francisco

Figure 5: The emPLoYee and emPLoYee_oFFice_LocaTion tables in first normal form emPLoYee oFFice LocaTion
employee_iD 37 37 37 1234 1234 office San Francisco New York colorado Springs New York San Francisco office_Phone_number 415-595-2122 212-489-0024 719-591-0078 212-489-0024 415-595-2122

comPoSiTe PrimarY KeY Figure 6: Second normal form violation

employee_iD 37 1234

First_name Frances Donald

Last_name Newton Newton

Hire_Date 14-Sep2005 24-Sep2006

manager

Dept_iD 10

Dept_name Accounting Accounting

28

10

Figure 7: Third normal form violation

table with a composite primary key cannot be dependent on only part of the primary key. Figure 6 illustrates the EMPLOYEE_ OFFICE_LOCATION table, and in this table the primary key is a combination of the EMPLOYEE_ID and OFFICE columns, so any columns added to this table must be dependent on both primary key columns. The OFFICE_PHONE_NUMBER column is dependent solely on the OFFICE column, however; it has nothing to do with the EMPLOYEE_ID column. The EMPLOYEE_OFFICE_LOCATION table in Figure 6 is in violation of second normal form. For this table to comply with second normal form, another table must be created and the OFFICE_PHONE_NUMBER data must be moved to the new table.

the key and nothing but the key. Third normal form expands on second normal form. It dictates that every nonkey column must be a detail or a fact about the primary key. Figure 7 illustrates a third normal form violation. The addition of the DEPT_NAME column in this EMPLOYEE table violates third normal form in that DEPT_NAME is dependent on the DEPT_ID value, not the EMPLOYEE_ID value. Complying with the rules of third normal form necessitates creating another table and moving the department name values into this new table, with a foreign key reference from the EMPLOYEE table to the new table. (The solution in Figure 3 demonstrates third normal form: DEPARTMENT_ID is a foreign key column in the EMPLOYEE table.)

oracLe magazine September/OctOber 2011

82

SQL 101

WHERE DOES SQL FIT IN? With SQL you create new data, delete old data, modify existing data, and retrieve data from a relational database. The following statement, for example, creates a new EMPLOYEE table:
CREATE TABLE employee (employee_id first_name last_name hire_date salary manager NUMBER, VARCHAR2(30), VARCHAR2(30), DATE, NUMBER(9,2), NUMBER);

creates a table column (data attribute) called EMPLOYEE_ID with a datatype of NUMBER. This EMPLOYEE_ID column is therefore defined to contain only numeric data The SQL SELECT statement enables you to retrieve, or query, data. For example, the following SQL statement retrieves all FIRST_NAME, LAST_NAME, and HIRE_ DATE column values from this articles EMPLOYEE table:
SELECT first_name, last_name, hire_date FROM employee;

a relational database. The next article in this SQL 101 series will continue the discussion of data normalization and introduce the SQL execution environment. t

Melanie Caffrey is a senior development manager at Oracle. Caffrey is a coauthor of Expert PL/SQL Practices for Oracle Developers and DBAs (Apress, 2011). NEXT STEPS
READ more about relational database design and concepts Oracle Database Concepts 11g Release 2 (11.2) bit.ly/aonqPP Oracle Database SQL Language Reference 11g Release 1 (11.1) bit.ly/jYXQZn

Note that this statement creates a table with the names of each column (aka data attribute) and each columns respective datatype and length. For example, this line of the CREATE TABLE statement:
employee_id NUMBER

As you can see, the syntax is fairly straightforward. CONCLUSION This article introduced the organization and structure of a relational database. It described tables, columns, and rows and presented examples of data and how it is represented in

THE RIGHT PARTNER MAKES


WHEN yOu NEED TO IMPROvE DATA CENTER PERFORMANCE AND EFFICIENCy, WHILE REDuCING OvERHEAD, THERES ONLy ONE PLACE TO GO.
Dimension Systems is a proven leader in complete enterprise infrastructure and management, with global experience and the expertise to provide scalable, reliable solutions that enhance productivity, while finding new ways to lower operational expenses.

A WORLD OF DIFFERENCE
DIMENSION SySTEMS AND ORACLE DELIvER POWERFuL yET COST-EFFECTIvE SOLuTIONS TO yOuR IT MANAGEMENT NEEDS. DIMENSION SySTEMS WILL HELP yOu:
Boost speed and performance of multi-threaded applications with Oracles SPARC T3 servers. Cut transaction times by half, while reducing power and space requirements with Oracles nimble Sun Storage F5100 Flash Array. Optimize storage and simplify management of multiple data centers with Oracles Sun ZFS Storage Appliance.

IF yOuRE LOOKING FOR A DATA CENTER SOLuTION THAT IS A WORLD APART, CONTACT DIMENSION SySTEMS TODAy. vISIT

www.dimensionsystems-advantage.com

2011 Dimension Systems. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. All company logos and product names mentioned herein may be trademarks and/or registered trademarks of their respective companies.

SEPTEMBER/OCTOBER 2011 ORACLE.COM/ORACLEMAGAZINE

Print. Digital. Mobile.

Read Your Favorite Technology Magazines on Your Favorite Device.

3G

9:41 AM

Download the most recent issue FREE on Apple iTunes. Or get your FREE print or digital subscription. Go to: oracle.com/us/corporate/publishing/subscribe

84

in the Field by mike riley

education insurance

Stay current, and stay employed: five easy ways for technologists to update their skill sets.

lthough some technologists feel that the best way to take care of business is to keep their heads down and their noses to the grindstone, they are likely not doing themselves any favors with this attitude. With the rate of change in technology and tools, technologists would be wise to enhance their skill sets. Over the past few years, the annual Oracle Development Tools User Group (ODTUG) tools survey has shown a shift in technology away from some traditional development tools. For example, although core SQL and PL/SQL technologies still play a huge part in a majority of development shops today, tools such as Oracle Forms, Oracle Reports, and Oracle Designer are not as in demand as they once were. So technologists who choose to keep their heads down and focus on tools that are playing a diminishing role in an organization rather than learn new technologies may be limiting their value to their current employer, and may also limit their marketability to other potential employers. One way to enhance your current technology skill set is to attend your local community college or university. Education in this structured environment allows you to learn about the latest in Oracle technologywithout traveling far from home. Additionally, you can benefit from the camaraderie and networking of learning with other like-minded individuals. Another way to learn about current technology is available to you right now from your desktop: Oracle allows you to download its software for use in a development environment. And supporting resources available on Oracle Technology Network (at oracle.com/ technetwork) include Oracle By Example tutorials, sample code, demos, and much more. In fact, one of the most powerful tools available is Oracle VM VirtualBox. This virtual machine environment allows you to load and run several prebuilt developer

One of the most powerful tools available is Oracle Vm VirtualBox.


appliances, including Java Development VM, Database App Development VM, SOA & BPM Development VM, Oracle WebLogic Server Hands-on VM, Oracle WebCenter Portal Framework 11g Hands-on VM, Enterprise PHP Development VM, and several Oracle Solaris VMs. Running Microsoft Windows Vista Home Premium and want to try your hand at one of these environments? Just download the Oracle VM VirtualBox software, download a prebuilt appliance, and away you go. Not satisfied with these options? Consider attending one of the many courses that Oracle University offers. These courses are available in many countries and come in several flavors. Instructor-led training lets you choose the topic and the location and then attend and learn with many other students. Live virtual classes save you travel and accommodation costs. Self-study CD-ROMs provide an even more economical learning option. Private events (available upon request) are advantageous for companies looking to educate several employees at the same time. For more information on the various options that Oracle University offers, visit education.oracle.com. Another way to continue your education is through self-study. Several great Oracle technology books have come out recently, including Achieving Extreme Performance with Oracle Exadata (Oracle Press, 2011), Look Smarter Than You Are with Hyperion Planning: An Administrators Guide (lulu .com, 2010), and Expert Oracle Application Express (Apress, 2011). However, the technology education option that I feel gives you the most for your money

is attending a user group event. Although I am partial to ODTUG (odtug.com) and Kscope (kscope11.com), there are certainly numerous events out there for you to choose from. From local user group meetings to regional, national, and international events, you have many choices. For events like Kscope, you have the opportunity to spend several days learning from the best of the bestthe independent technologists who are often the speakers at these events. With several tracks, each covering a different subject area, you can choose the topics that interest you. In addition, the networking opportunities allow you to build relationships that can further enhance your value as an employee. For technologists, education choices are many. The only wrong choice you can make, in my opinion, is to ignore the value that continuing your education and expanding your skill set can bring to your career. In this day and age, a little extra education insurance can keep you happily employed.

mike riley (mriley@


hortica-insurance.com) is the president of ODtUG and an Oracle Ace. riley is a project manager/DbA for Hortica insurance & employee benefits in edwardsville, illinois, where he has developed applications using Oracle Database and Oracle tools for more than 20 years.

next StepS
learn more about Oracle Vm VirtualBox bit.ly/mkJ6bu prebuilt developer Vms bit.ly/iiraln OdtUg odtug.com

September/OctOber 2011 Oracle.cOm/Oraclemagazine

Exadata
Replaces Teradata
36 Teradata Racks 3 Exadata Racks

Consumed 10x Energy

8x Faster

At Teradatas Largest Asian Customer

Save The Planet, Dump Your Teradata


For more information visit oracle.com/savetheplanet

Вам также может понравиться