Académique Documents
Professionnel Documents
Culture Documents
SpringBoard 7.0 is a powerful gateway that lets you build Project Management solutions exactly the way you want. Take control of scheduling, estimating, BIM and morefully supported and in one location. How much can you accomplish? Let your imagination and ROI run wild.
Get your Project Management software securely deployed and implementedyour wayin days. SpringBoard d lets you manage and share software, data and ideas globally on any device, including handheld devices via LoadSpringMobile . And our new SpringBoard Connect onnect feature lets you view and update data from multiple applications, all from a single web dashboard. Go aheadhave your way with the Cloud. SpringBoard 7.0 lets you conquer Project Management challenges fast, easy and now. Just the way you like it.
Take charge. Scan the code for your virtual SpringBoard tour.
www.loadspring.com
Follow us on Facebook
JULY/AUGUST 2013
The Shine of Open Source MySQL puts the M and the power in LAMP / 16 Cloud Builders Unite Bloggers, tweeters, and user groups form cloud builder communities / 22 Build Your Own Build and deploy Oracle ADF declarative components, and gain the benets of reuse / 39 Pivotal Access to Your Data: Analytic Functions, Concluded Part 12 in a series on the basics of the relational database and SQL / 45 On Randomness, Syntax, and Mutation Our technologist gets deterministic, delimited, and the opposite of trigger-happy / 51
CONTENTS
BLAZING PERFORMANCE
Oracle unveiled two new SPARC microprocessors, SPARC T5 and SPARC M5; introduced a portfolio of systems based on these chips; and reported that the new SPARC T5based systems have set 17 world records. Read how the revolutionary SPARC microprocessor design is moving software into silicon to power the worlds fastest database, Java, and middleware servers. Diana Reichardt
/ 24
/ 32
Up Front / 5
FROM THE EDITOR / 5
Location, Location, Location Tom Haunert
Community / 18
PARTNER NEWS / 18 BOOK BEAT / 18 ARCHITECT / 21
The CX Factor
Wooing and wowing customers in the digital age Bob Rhubart
Technology / 39
Comment / 56
TIME CAPSULE / 56
Flashbacks: Culture. Industry. Oracle. Oracle Magazine. Rich Schwerin
MASHUP / 6
News, views, trends, and tools
ORACLE ADF / 39
Build Your Own
Build and deploy Oracle ADF declarative components, and gain the benefits of reuse. Frank Nimphius
At Oracle / 8
EVENTS / 8
Find out about upcoming technology and industry events.
UP CLOSE / 22
SQL 101 / 45
RESOURCES / 11
Your guide to Oracle Webcasts, podcasts, white papers, and more
PEER-TO-PEER / 23
Finding Help
Peers get career boosts from the cloud, My Oracle Support, and Oracle University. Blair Campbell
BRIEFS / 13
The latest product news
ASK TOM / 51
INTERVIEW / 16
Editorial Editor in ChiefTom Haunerttom.haunert@oracle.com Managing EditorJan Rogersjan.rogers@oracle.com Senior EditorCaroline Kvitkacaroline.kvitka@oracle.com Associate Editor Patty Waddington Contributing Editor and Writer Blair Campbell Technology Advisor Tom Kyte Contributors Marta Bright, Jeff Erickson, Fred Sandsmark, Rich Schwerin, Leslie Steere DESIGN Senior Creative Director Francisco G Delgadillo Senior Design Director Suemi Lam Design Director Richard Merchn Contributing Designers Jaime Ferrand, Nicholas Pavkovic Production Designers Sheila Brennan, Kathy Cygnarowicz Publishing Vice PresidentJeff Spicerjeff.spicer@oracle.com PublisherJennifer Hamiltonjennifer.hamilton@oracle.com+1.650.506.3794 Audience Development and Operations DirectorKarin Kinnearkarin.kinnear@oracle.com+1.650.506.1985 Advertising sales Associate PublisherKyle Walkenhorstkyle@sprocketmedia.com+1.323.340.8585 Northwest and Central USTom Cometathomas.cometa@sbcglobal.net+1.510.339.2403 Southwest US and LADShaun Mehrshaun@sprocketmedia.com+1.949.923.1660 Northeast US and EMEA/APACMark Makinneymark.makinney@sprocketmedia.com+1.805.709.4745 Advertising Sales AssistantCindy Elhajcindy@sprocketmedia.com+1.626.396.9400, x201 Mailing-List Rentals Contact your sales representative. 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 form found 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.
Resources Oracle Products +1.800.367.8674 (US/Canada) Oracle Services +1.888.283.0591 Oracle Press Books oraclepressbooks.com
Copyright 2013, 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 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.
Next Steps
LEARN more about Oracle Database Appliance bit.ly/185gVXy Oracles SPARC servers oracle.com/sparc
he evolution of mainframe, minicomputer, and commodity server hardware based on RISC and x86 processors has helped to reinvent business processes. When you worked in a client/server or Web-based application on the latest terminal, work station, desktop, notebook, tablet, or smartphone device through the years, however, you likely didnt know the physical location of the servers and systems you were connecting to. And in most cases, you probably didnt know about the systems internals and the geography of the processor, memory, storage, and networking. You still dont need to know where your back-end systems are located and how their internals are designed and assembled to complete your daily tasks, but the people who purchase or architect these systems and deploy them know that system architecture and integrationincluding internal design and chassis placementare like real estate. Whats important is location, location, location. This issue of Oracle Magazine demonstrates that where your servers, storage, networking, and processing are located can make all the difference for national regulatory requirements, system integration and administration, and application performance. Consolidation and Movement In Grow Up, Branch Out (page 32) organizations are setting up Oracle Database Appliance as a convenient local or departmental solution and as part of an international solution, where national regulations require systems to be located in a specific country. Deploying the pay-as-you-grow Oracle Database Appliance supports international operations by addressing national
twitter.com/oraclemagazine linkd.in/orclmag
requirements and also provides room for international businesses to grow. Oracle Database Appliance also consolidates processing, database, storage, and networking in one prebuilt engineered system, delivering solution-in-a-box power and convenience. And no team of system, database, storage, and networking specialists is required to install and maintain the solution. Blazing Performance (page 24) introduces Oracles SPARC T5 and SPARC M5 processors. The processors are located in SPARC servers, of course, and those servers have set 17 performance records. In addition to recordsetting performance, the SPARC T5 processor offers additional on-chip resources, including PCI Express I/O support and coherence link interfaces to allow communication between up to 8 SPARC T5 chips in a system without an external hub chip. But its not the location of the SPARC processor in the server, additional interfaces, or where the SPARC servers are located thats the most important part of the SPARC processor location equation. In his presentation on March 26, 2013, Oracle CEO Larry Ellison referred to the SPARC processors moving software into silicon as the ultimate optimization. Current SPARC processors move encryption processing, for example, to special on-chip accelerators, and plans call for adding database and Java accelerators to future SPARC processors. SPARCs current and future silicon-located accelerators will make applications running standard encryption ciphers, database processes, and Java run faster. Thats a lot of applications running in a lot of places. Tom Haunert, Editor in Chief tom.haunert@oracle.com
CONNECT:
bit.ly/aVgo69
bit.ly/orclmagfb
MashUp
AUDIO APPS
Many smartphones have surprisingly good built-in microphones, so a growing number of apps are taking advantage of the mics capabilities.
AudioTool
This multifunction audio app includes an audio spectrum analyzer, audio signal generator, speaker polarity checker, and more. Note that the iOS version is called iAudioTool. US$6.99US$7.49 (Android, iPhone, iPad). bit.ly/17RfRUy
THX tune-up
Adjust the sound (and picture) on your home theater, and then play THX trailers to show off your tuned system. Requires Apple TV or an AV adapter on your device. US$1.99 (iPhone, iPad). bit.ly/188sTOH
This sound pressure level meter app uses your phone mic to measure noise volume in decibels and shows a reference. It has been calibrated for many specific device models. US$0.99 (Android). bit.ly/159Ym44
Awareness
Awareness uses your devices mic to sample ambient sound as you listen to music, and then feeds important noises (such as car horns) to your headphones for safety. US$6.99 (iPhone, iPad). essency.co.uk
Ever tried to manage a camera, binoculars, and a video recorder during a concert or bird-watching expedition? Sony lets you stop juggling by combining these devices into one. Its DEV-50 binoculars feature 0.8 to 25 times variable optical zoom, image stabilization, autofocus, and splash and dust resistance. But the real surprise comes from the built-in HD camcorder and 20.4 megapixel still camera, which capture both 2-D and 3-D images, while you view them through the binoculars. You can send those images and videos (which are geotagged) to your computer or TV, or view them through the binoculars. The binoculars operate for about two hours on one battery charge. US$2,000. sony.com
If you know what youre looking for, youre more apt to find it. Thats as true for finding insights as it is for tracking down a lost pair of socks.
Charles Kiefer and Malcolm Constable, coauthors of The Art of Insight: How to Have More Aha! Moments (BerrettKoehler Publishers, 2013)
YOUR TURN
A. Telecommuting is supported, without limits. B. Telecommuting is supported, with limits. C. Telecommuting is allowed on an occasional basis. D. Telecommuting is not supported. E. Other
facebook.com/OracleMagazine
65
Percentage of North American CIOs, IT directors, and IT managers surveyed who say they do not have the time, practices, or tools to collect information on the utilization of their IT investments.
Telecommutings Toll
Yes 77% No 23%
Working at home is a hot topic these days. A recent study found that telecommuting is an important option for workers, but is also limiting. More than 300 global executives were asked their opinions about telecommuting.
Is telecommuting an important option for working parents? Do you believe telecommuting can limit career upward mobility?
Source: The Korn/Ferry Institute, bit.ly/179AMV7 60% 40%
6%
Do you ever misplace your phone, your keys, your bag, and/or your kid? The hipKey is a tough, stylish aluminum fob that communicates via Bluetooth with your iPhone, iPad, or iPod Touch. When the hipKey and the i-device get too far apartyou decide how farone or both makes a 90-decibel shriek. Put the hipKey on your key ring or in your childs pocket, or attach it to anything else you want to keep track of, such as your luggage while traveling. The device also has a find-me feature that alerts your i-device to make the hipKey alarm sound, and vice versa. US$89.95. hippih.com
Dont Lose It
rEGiStEr noW
Register at oracle.com/openworld
Copyright 2013, 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.
Events
Technology Events
bit.ly/10IlbF8
ukoug.org
July 2225, Shanghai, China Oracle OpenWorld Shanghai keynotes, technical sessions, hands-on labs, and demos deliver information on critical technology topics such as cloud, business analytics, customer experience, and engineered systems. Oracle and its partners and customers present information to help you address todays challenges and plan for the future. bit.ly/Z5VWOI
sacjug.org
ukoug.org
client-side solutions using JavaFX, building mobile and embedded Java applications for smart devices, and building and deploying applications in the cloud.
bit.ly/ZJWkOT
bit.ly/XzZtqo
berConf 2013
July 1619, Denver, Colorado fbit.ly/ZdPtOJ Explore the Java platform through 160 technically focused sessions, including more than 25 hands-on workshops on architecture, cloud, security, enterprise Java, languages on the Java Virtual Machine, build/test, mobility, and agility.
ukoug.org
sroaug.com
PeopleSoft RECONNECT
July 2325, Rosemont, Illinois fbit.ly/Y938GE PeopleSoft Reconnect, this year replacing Quest regional events, offers end users in-depth education on specific Oracles PeopleSoft modules plus sessions that cover enhancements, techniques, and tips.
soug.org
austinjug.org
JavaOne Shanghai
July 2225, Shanghai, China fbit.ly/10Ilr72 Four content-packed days include constructing applications using Java Platform, Standard Edition; composing Java Platform, Enterprise Editionbased enterprise solutions; creating
bit.ly/Zxgh2w
nocoug.org
Getty Images
Northern California Oracle Users Group One-Day Oracle Performance Research Seminar with Craig Shallahamer
Configurable interface:
Best-in-class UPS.
Our intelligent, interactive, energy-saving APC by Schneider Electric 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, configuration, and diagnostic information; 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 why you should insist on the more intelligent, more intuitive APC by Schneider Electric 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 to 97 percent or higher, reducing heat loss and utility costs.
Download our FREE Server Room Efficiency Kit and enter to win a Google Nexus 10 tablet!
Visit www.apc.com/promo Key Code a693u Call 888-289-2722 x6545
2013 Schneider Electric. All Rights Reserved. Schneider Electric, APC, Smart-UPS and PowerChute are trademarks owned by Schneider Electric Industries SAS or its affiliated companies. All other trademarks are property of their respective owners. www.schneider-electric.com 998-1177097_GMA-US_Nexus
10
Events
XChange 2013
The three-day USENIX Security Symposium, taking place August 14 to 16 in Washington DC, brings together researchers, practitioners, systems administrators and programmers, and other professionals interested in the security of computer systems and networks.
August 1822, Washington DC August 2629, San Francisco, California fbit.ly/17h2zjR XChange is a two-day event for representatives from 250 United States and Canadian IT solution providers who meet with technology vendors and industry experts to explore opportunities, deepen their understanding of IT trends, and share best practices with peers.
ITExpo
August 2729, Las Vegas, Nevada fitexpo.tmcnet.com/west13 More than 7,000 attendees representing companies of all sizes and sectors of the IP communications industry are expected at ITExpo for education and networking.
SHARE in Boston
August 1116, Boston, Massachusetts fbit.ly/XzYIxH Subject-matter experts and practitioners discuss issues facing enterprise IT professionals. Technical education and peer-to-peer networking opportunities are available for IT managers, IT architects, systems analysts, systems programmers, and IT support personnel.
REGister for these upcoming Oracle events Oracle OpenWorld 2013 September 2226 oracle.com/openworld JavaOne September 2226 oracle.com/javaone MySQL Connect September 2123 oracle.com/mysqlconnect
MobileHCI
August 2730, Munich, Germany fmobilehci2013.org MobileHCI covers the field of human-computer interaction (HCI), specifically as it relates to portable and personal devices and the services those devices access. This is a multidisciplinary forum for academics, developers, designers, and practitioners.
Events locator
Oracle Events oracle.com/events Locate User Groups oracle.com/technetwork/community
Getty Images
Resources
11
century finance organization by getting the basics right, being more strategic, and inspiring change.
White Papers
The Total Economic Impact of Oracle Business Intelligence Applications fbit.ly/YETC46 Forrester Consulting examines the potential return on investment of Oracle Business Intelligence Applications. Building Large-Scale E-Commerce Platforms with Oracle fbit.ly/17M5Mcz Discover the ecosystem of applications, middleware, and core technology that Oracle delivers to support a complete e-commerce strategy. From Customer Orders Through Fulfillment: Manufacturing, High-Tech, and Retail fbit.ly/YJABr5 Get the results of a survey of 600 supply chain executives for insight into how well companies are meeting their order fulfillment challenges. Oracle Hyperion Project Financial Planning: Aligning Financial and Project Plans fbit.ly/10RpcJQ Find out how to align long-term plans with proposed and ongoing projects to make the best use of corporate resources. Oracles x86 Systems: The Best x86 Platform for Oracle Solaris fbit.ly/XfUdaj Discover the benefits of running Oracle Solaris on Oracle x86 systems, such as more-advanced fault diagnosis, automatic service requests, easier serviceability, and simplified installation. Oracle VMEnabling Rapid Migration to Private Cloud fbit.ly/XV9sRZ Find out how to use Oracle VM templates to virtualize your applications 7 to 10 times faster than with traditional virtualization technologies.
Taking Control of the Order-to-Cash Cycle fbit.ly/XmzySX Insights from experts at FSN, Deloitte, and Oracle show you how to accelerate collections, avert write-offs, and tune up your order-tocash process. Middleware as a Service using Oracle Enterprise Manager 12c Cookbook fbit.ly/12cyejC Get step-by-step instructions for provisioning an Oracle WebLogic Server domain using Oracle Enterprise Manager 12c.
Webcasts
Announcing New SPARC Servers with the Worlds Fastest Microprocessor fbit.ly/10ntm9K Oracle executives introduce the new standard for extreme performance with the latest portfolio of Oracles SPARC servers. Introducing Oracle Database Appliance X3-2 fbit.ly/13RxghI Watch Oracle executives launch the latest Oracle Database Appliance and hear customers discuss how it has revolutionized the way they deploy, manage, and support a database platform. Building a Private Cloud Infrastructure with Oracles SPARC Servers fbit.ly/XhdQzR Deploy a cloud infrastructure faster while lowering TCO and improving system performance with Oracle Optimized Solution for Enterprise Cloud Infrastructure. Consolidation Best Practices for Enterprise Applications fbit.ly/X1SrZa Learn how to consolidate your application and database infrastructure, reduce IT cost and complexity, and improve performance and availability.
E-Books
Oracles SPARC T-Series Servers fbit.ly/Xhf5z0 Read about Oracles new SPARC T5 servers, which offer 2 times throughput performance, 1.3 times single-thread performance, 2.3 times the L3 cache, 2 times the I/O bandwidth, and 2 times the scale of previous-generation SPARC T4 servers. Twenty-First-Century Finance: Maximize Potential, Deliver Results fbit.ly/127bmpm Explore how CFOs can develop a twenty-first-
12
Resources
overHEARD
We set out to design the worlds fastest database machine, the worlds fastest Java machine, and the worlds fastest middleware. We also ended up with the worlds fastest processor and the ability to execute an enormous range of applications with technical performance leadership, as well as cost leadership.
John Fowler, Executive Vice President of Systems at Oracle, in Announcing New SPARC Servers with the Worlds Fastest Microprocessor (bit.ly/10ntm9K)
Oracle University Blog fbit.ly/10zBhjd Stay informed on the latest training courses and certifications, get tips and tutorials from expert instructors and course developers, and read analyst commentary.
Oracle University
Oracle Virtualization Training fbit.ly/XOxUc2 Learn how server, desktop, and network virtualization training can help reduce infrastructure cost, improve resource utilization, and simplify data center management. Oracle Java Training fbit.ly/10rRzNC Get the latest training on Java Platform, Enterprise Edition.
Data Center Storage Trends for 2013 fbit.ly/1103B1J Oracles Ravi Pendekanti and guest speaker Laura DuBois from IDC discuss the top data center storage trends. InnoDB in MySQL 5.6: 230 Percent Performance Improvement fbit.ly/11OfQNV Get an expert overview of the benefits and uses of new InnoDB features in MySQL 5.6. Techcast Series: Architecting Business Continuity Essentials for Enterprise Applications fbit.ly/16mxz1k Oracle experts discuss how to maximize availability by incorporating redundancy, high availability, backup and recovery, and disaster recovery processes into your data center.
Check out the latest generation of faster, more efficient server and storage systems as well as offers for system refresh, trade-ins, and discounts.
Podcasts
RedPatch Explained fbit.ly/14wmhK2 Listen to an expert Ksplice developer discuss what RedPatch can do for your Linux environment. Podcast Series: Making the Right Storage Choices fbit.ly/Yt93uV This 10-part podcast series examines the most important elements to consider when making storage purchasing and deployment decisions. Podcast Center: Oracle WebCenter Caf fbit.ly/XcZVdV Listen to the latest updates about Oracle WebCenter from customers, partners, and experts. Podcast Center: Oracle Virtualization fbit.ly/12dKpN6 Listen to Oracle VM product managers discuss Oracle VM deployment use cases that include Oracle applications and private cloud computing environments.
Calculators
Oracle Value Calculator for SPARC Servers fbit.ly/10ZIaOy Find out how Oracles SPARC servers and integrated technology stack can help you achieve unprecedented scale and simplicity in your data center and reduce costs.
web locator
Oracle Blog Center oracle.com/blogs Oracle Consulting oracle.com/consulting Oracle Events and Webcasts oracle.com/events Oracle Newsletters oracle.com/newsletters Oracle Podcast Center oracle.com/podcasts Oracle University bit.ly/ouoramag Oracle on Facebook facebook.com/oracle Oracle on Google+ bit.ly/LdGiM0 Oracle on LinkedIn linkedin.com/company/oracle Oracle on Twitter twitter.com/oracle Oracle Support oracle.com/support My Oracle Support myoraclesupport.com My Oracle Support Communities communities.oracle.com
Resource Centers
Migration Made Easy: SUSE Linux to Oracle Linux fbit.ly/10RseOi Get the resources you need to migrate, including guides for system administrators, Webcast replays, and customer case studies. Oracle Storage Expert Center: Engineered Systems Backup fbit.ly/10knHjz Learn about using Oracles Sun ZFS Backup Appliance to reduce the cost and effort of backup and recovery by more than 50 percent compared to competitive solutions. Turn Your Aging Data Center into an Enterprise Data Powerhouse fbit.ly/164JCi1
Social Media
Oracle Learning Library on Facebook fon.fb.me/YF9kcv Access free Oracle Learning LIbrary content produced by Oracle product development and curriculum teams. Oracle Value Chain on Twitter fbit.ly/14wnEZ8 Connect with Oracle Value Chain thought leaders and evangelists.
Product Resources
BRIEFS
13
TUTORIALS/DEMOS
Oracle Social Relationship Management Series
This series contains 10 videos, including an introductory video about Oracle Social Relationship Management, a platform for the socially enabled enterprise, and two subseries that highlight the publish, engage, and listen tools of Oracle Social Marketing Cloud Service and Oracle Social Engagement and Monitoring Cloud Service. bit.ly/130P7zH
This course starts with an introduction to PL/SQL and proceeds to explore the benefits of this powerful programming language. Participants learn how to create PL/SQL blocks of application code that can be shared by multiple forms, reports, and data management applications as well as how to create anonymous PL/SQL blocks. bit.ly/12X1ps1
I-HUA CHEN
This tutorial shows you how to create and deploy an application that leverages the open source PrimeFaces JavaServer Faces (JSF) component suite library to add functionality beyond the core JSF libraries. It also covers how to create, deploy, and test applications that use the component suite directly with a local Oracle WebLogic Server instance and remotely with Oracle Cloud. bit.ly/ZAjYT2
14
Briefs
I-Hua Chen
15
I-HUA CHEN
16
ySQL is the worlds most popular open source database, and Oracle recently announced the release of MySQL 5.6. Oracle Magazine Editor in Chief Tom Haunert sat down with Tomas Ulin, vice president of MySQL engineering, to discuss the past, present, and future of MySQL. Oracle Magazine: How is MySQL technology being used today? Ulin: MySQL is the number one open source database, with 15 million installations worldwide and tens of thousands of new downloads every day. MySQL is widely used on the Web and powers 9 out of the 10 most highly trafficked Websites in the world. MySQL is the M in the LAMP stacktogether with L for Linux; A for Apache; and P for PHP, Perl, or Pythonwhich is the most popular Web development stack. MySQL is also used by enterprise and governmental organizations for Web apps as well as custom enterprise apps, such as data marts. These are very complementary use cases to Oracle Database that are typical in ERP [enterprise resource planning] and other applications. Oracle Magazine: Oracle recently announced the release of MySQL 5.6. As an open source database, whats involved in the development and release process of MySQL in general, and MySQL 5.6 in particular? Ulin: MySQL has a huge user base of both community users and customers, and we work closely with all constituents to ensure that MySQL continues to meet the needs of both existing applications and the requirements of emerging markets. We have a number of mechanisms for working with the community, including forums, mailing lists, the bug database, industry conferences, and code repositories such as Launchpad. Because MySQL is an open source database, we regularly publish development milestone releases [DMRs] to preview new features, which cumulatively add up to formal GA [general availability] in the end.
These DMRs enable the community to get early access to code for evaluation and feedback. In the case of MySQL 5.6, we published five DMRs and one release candidate prior to GA in February of this year. New features can be developed both by my engineering team at Oracle and by the community users, who submit code under an Oracle Contributor Agreement. Whether new features come from inside or outside Oracle, they all undergo the rigorous QA process we have in place to ensure the stability and reliability of MySQL. Oracle Magazine: What are the key new and updated features in MySQL 5.6? Ulin: There is a very long list of new features in MySQL 5.6. In terms of features and in terms of lines of codes added, I would say that MySQL 5.6 is the biggest new release in the history of MySQL. The key new and updated features in MySQL 5.6 include online DDL [data definition language] for InnoDB, improved scalability and performance, improved replication, improved optimizer, improved performance schema, and a new NoSQL access layer.
MySQL 5.6 online DDL allows you to flexibly evolve your schema without loss of service, as opposed to having your data read-only while altering a table. If youd like to add, for example, an index or a column to one of your tables, you can now do this fully online if youre using InnoDB, which is the most popular storage engine for MySQL. Scalability and performance features in MySQL 5.6 allow you to scale on the latest generations of commodity hardware and achieve linear scalability on mixed, readwrite, and read-only workloads up to 48 CPU threads. Some optimizer improvements in MySQL 5.6 include subquery execution, index condition push down, file sort optimization, and batch key access, delivering a range of about 4 times to up to 300 times faster execution, depending on the data and the query. Replication is one of the most popular features in MySQL, enabling users to scale out their databases across distributed farms of commodity servers, while also providing a foundation for high availability. We have introduced a lot of replication improvements in MySQL 5.6, and the most prominent are multithreading on the slave side and binary log group commit on the master side, which provide, overall, better performance and scalability of MySQL replication. Benchmarks demonstrate about five times improvement on both masters and slaves. MySQL 5.6 also includes global transaction identifiers, which is a significant addition to replication to enable self-healing replication setups. Performance schema was one of the most popular additions to MySQL 5.5, and MySQL 5.6 builds and improves on it with many more instrumentation points and less overhead. It delivers developers and DBAs much more visibility into their databases to tune and optimize performance. Last but not least, MySQL 5.6 introduces a new NoSQL direct access API, and its one of the features that has received the most
17
attention. It allows you to directly access InnoDB datait bypasses the SQL layer to achieve lower latency and scalability for key/ value-based queries. It delivers up to nine times better performance in some cases. With the addition of the NoSQL API, you can now use SQL when thats your best option, and you can use NoSQL when thats your best option. Youre accessing the same data and youre maintaining the ACID [atomicity, consistency, isolation, durability] properties that youre used to in a database. MySQL 5.6 combines the best of the SQL and NoSQL worlds. Oracle Magazine: MySQL is available in different editions. What are the different editions, and what are they designed for? Ulin: MySQL Community Edition is free to use under the Open Source GPL License, version 2.0. The commercial editions are available under a simple subscription or a more traditional license-plus-support model, and they provide features that are
designed to simplify development and reduce total cost of ownership. They include, for example, 24/7 Oracle Premier Support as well as a number of database management, security, and monitoring features. There are three different commercial editions: MySQL Standard Edition, MySQL Enterprise Edition, and MySQL Cluster Carrier Grade Edition. Each edition provides access to more features. If you move, for example, from MySQL Standard Edition to MySQL Enterprise Edition, you will add monitoring, backup, security, auditing, scalability, and high-availability features. And moving from MySQL Enterprise Edition to MySQL Cluster Carrier Grade Edition will add additional features related to real-time performance, scalability, and high availability. Oracle Magazine: In recent years, there have been questions about Oracles commitment to MySQL. How does MySQL 5.6 address these questions?
Ulin: Oracle acquired MySQL more than three years ago; since then, both MySQL 5.5 and 5.6 have been released with higher quality than ever before and with more new features than ever before. The MySQL engineering team is much bigger than ever before. Substantial engineering resources have been invested into making sure that MySQL now integrates with almost every product in the Oracle product family. All of this testifies to Oracles commitment to MySQL. Ubiquity, availability, and ease of use are what make MySQL the worlds most popular open source database, and we intend to keep it that way.
NExT STEpS
LEARN more about MySQL mysql.com LISTEN to the interview oracle.com/magcasts
18
Book Beat
Oracle Business Intelligence Applications
By Simon Miller and William Hutchinson
Oracle Press oraclepressbooks.com
Oracle Business Intelligence Applications shows you how to deliver intuitive, role-based intelligence for everyone in an organization. The authors master principal sales consultants at Oracle who specialize in Oracle Business Intelligence Applicationsprovide complete coverage of implementing and operating Oracle Business Intelligence Applications. They also explain how to enable better decision-making and optimize business processes based on accurate information. The book includes case studies and advanced scenarios based on real-world experiences from Oracles presales team. functions accessible to mobile devices; how to customize the look and feel of your applications; and how to respond to gestures such as swiping and pointing. The book also shows you how to enhance mobile applications through the use of plug-ins and how to deploy applications into the Apple and Android stores.
I-HUA CHEN
PARTNER NEWS
19
eVerge Group Achieves Oracle PartnerNetwork Specialization for the Financial Services Industry
eVerge Group, an Oracle Platinum Partner, has achieved Oracle PartnerNetwork Specialized status in the Financial Services Industry category. This is eVerge Groups 13th Oracle PartnerNetwork specialization overall, and its 6th industry specialization. Oracle and eVerge Group have jointly developed a hosted customer relationship management solution designed to address the unique needs of financial institutions. eVerge Groups preconfigured solution helps financial institutions increase customer acquisition, improve customer service, develop and manage marketing programs, enhance sales productivity, and improve management insight. evergegroup.com
Two SimpliCTI Cloud Connectors Achieve Oracle Validated Integration with Oracle RightNow Cloud Service
SimpliCTI Software Solutions, an Oracle Gold Partner, achieved Oracle Validated Integration with Oracle RightNow Cloud Service for SimpliCTI Cloud Connector for Avaya Application Enablement Services version 3.0 and SimpliCTI Cloud Connector for Cisco Unified Contact Center Enterprise version 3.0. The SimpliCTI adapters provide unified access to multichannel capabilities including voice, e-mail, Web chat, and short message service. bit.ly/1391ecC
Four Oracle Partner Solutions Achieve Oracle Exadata, Oracle Exalogic, and Oracle SPARC SuperCluster Ready Statuses
Four Oracle Partners have announced that their applications have earned Oracle Exadata Ready, Oracle Exalogic Ready, and Oracle SPARC SuperCluster Ready statuses. BroadVision, an Oracle Gold Partner, announced that BroadVision K2 version 8.2 solutions have achieved Oracle Exadata, Oracle Exalogic, and Oracle SPARC SuperCluster Ready statuses. BroadVision K2 solutions are comprehensive, scalable e-business platforms. ERI Bancaire, an Oracle Gold Partner, achieved Oracle Exadata, Oracle Exalogic, and Oracle SPARC SuperCluster Ready statuses for its OLYMPIC Banking System version A. The system spans private wealth management, retail banking, corporate banking, and central bank operations. Spatial Business Systems, an Oracle Platinum Partner, has achieved Oracle Exadata, Oracle Exalogic, and Oracle SPARC SuperCluster Ready statuses for its Automated Vehicle Location version 4 solution. The solution uses data from GPS devices and external datasources to enable efficient management of vehicle fleets. Xplore Software Consulting, an Oracle Gold Partner, announced that Xplore e-Project Management v1.0, its Web-based project management application, earned Oracle Exadata, Oracle Exalogic, and Oracle SPARC SuperCluster Ready statuses. The solution helps users manage projects, tasks, and resources. broadvision.com www.eri.ch spatialbiz.com xplore-software.com/project_management
I-HUA CHEN
20
PARTNER NEWS
TTI Performance Systems Pre-Hire Assessments Earn Oracle Validated Integration with Oracle Taleo Enterprise Cloud Service
TTI Performance Systems, an Oracle Gold Partner, has achieved Oracle Validated Integration of its Success Insights Pre-Hire Assessments offering with Oracle Taleo Enterprise Cloud Service. The integration provides seamless inclusion of TTIs validated, legally compliant pre-employment assessments that leverage quantitative data analysis and cognitive neuroscience with Oracle Taleo Recruiting Cloud Service. The combination of Oracle Taleo and TTIs assessment offering helps human resource teams hire superior performers and maximize employee performance and satisfaction. In addition to its assessment-based talent management solutions, TTI provides research-based, validated coaching tools. ttiassessments.com
Polar Bears International is a trusted voice focused on funding scientific research for the survival of this magnificent animal. Polar Bears International also funds educational programs that are inspiring people to reduce their carbon emissions.
www.polarbearsinternational.org
21
The CX Factor
T
here was a time when customer experience was limited to what happened to you when you walked into a store, restaurant, or other place of business or when you called a business on the telephone. But that was back when you could still smoke on airplanes. These days your customer experience, or CX, isnt limited to the physical world or the telephone. In fact, CX is far more likely to happen via a Web browser or mobile application. And that online experience is just as likely to happen on Facebook or Twitter as it is on a companys Website. Chances are that youve combined a physical customer experience with a virtual customer experience by looking up product reviews while standing in a retail store contemplating a purchase. So its no wonder that CX has become a significant factor in enterprise IT as companies enter the latest phase in the ongoing battle for customer attention and loyalty. In many industries, products and services in and of themselves are now less of a differentiating factor for consumers, says John Brunswick, an enterprise architect with the Oracle WebCenter team and a prolific blogger (johnbrunswick.com) on the technical aspects of CX. Ensuring consistent, high-quality engagement across all channels and various stages of an individuals journey with a brand allows organizations to distinguish themselves. But wooing and wowing customers with a distinctive customer experience isnt getting any easier. From an enterprise IT standpoint, the consumerization of technology has greatly increased customer expectations, says Brunswick. This elevation can create a series of challenges. One of those challenges is presenting a unified face to the customer, especially when the company behind that visage is a collection of separate marketing, sales, support, and other customer-facing operating units.
CONNECT: bit.ly/otnarchblog
That shift in focus to the individual customer is not lost on sharp architects. In his work helping clients design and develop health insurance exchange solutions, Oracle enterprise architect Eric Stephens reports that CX is very much on the radar. Its important that the CX is meaningful, engaging, and aligned, Stephens says, and that the underlying application, information, and technology components are aligned with the CX needs. The architecture of the human experience in the twenty-first century is increasingly defined by the overlap of the physical and virtual worlds. The challenge for businesses and for architectsis to create a customer experience that, ironically, is made a bit more human by virtue of technological innovation. In a software-intensive world, explains Stephens, performance characteristics and features may be equal, but the Zen of CX is what will draw folks to a particular product or platform.
Bob Rhubart
(bob.rhubart@oracle.com) is manager of the architect community on Oracle Technology Network, the host of the Oracle Technology Network Arch2Arch podcast series, and the author of the ArchBeat blog (blogs.oracle.com/archbeat).
Next Steps
LISTEN to The CX Factor and Oracle WebCenter bit.ly/15zIdiZ all ArchBeat podcasts bit.ly/otnarchpod READ Customer Experience Reference Architecture, an Oracle white paper bit.ly/VLr3js
on.fb.me/otnarchfb
22
Bloggers, tweeters, and user groups work to form a cloud builder community.
epending on which survey you read, 70 to 90 percent of Oracle customers are considering, testing, or implementing private clouds. That means a lot of technologists are looking for information on how to do it. Oracles Anand Akela wants to help these cloud builders help each other. After getting to know many of them on Twitter and Facebook and on their blogs, he attended COLLABORATE 13 to meet them face-to-face. Akela is a longtime technologist in systems management, servers, data center efficiency, and enterprise software who now finds himself a principal product marketing director at Oracle. The role fits his social nature, and hes determined to use his position to help the cloud builder community grow. Akelas goal at COLLABORATE 13, where he was a keynote speaker for the Oracle Cloud general session, was to listen, learn, and connect people. The independent community is going to do its own thing, but I can let them know that Oracle is eager to hear their critiquesand can find product experts when they ask, he says. I also wanted to introduce the enthusiastic people Ive known online to the IOUG [Independent Oracle Users Group] cloud builder community where they can find more opportunities to share and learn. His time at COLLABORATE could not have been more rewarding, Akela says. WORKING COLLABORATE 13 At COLLABORATE, two places to find cloud community members were the IOUG Cloud Computing Special Interest Group (SIG) and IOUG Oracle Enterprise Manager SIG events. There were hundreds of people at the Oracle Enterprise Manager SIG meeting. There was a lot of excitement and people wanting to contribute, says Akela, who had helped to bring a few Oracle product experts to the meeting. We also had a Twitterbased chat going so people who werent at
Arshad, whose cloud technology blogs he admires. We will continue to interact online, but now weve all met each other, and that enhances the relationship, he adds. It will help us work together to build this community. To underscore his point about the importance of community, Akela showed me a tweet. IOUG had asked participants on Twitter why COLLABORATE is important to them. One 131-character reply told the story: I will tell you why, in five minutes at the IOUG party last night I got a question answered that was nowhere to be found on Google. That tweet tells precisely why we need to keep building this community, says Akela. If youre building a private cloud, these IOUG SIGs and bloggers are community resources you should tap into. I will do what I can from my position to help them thrive. t
the event could participate online. We took questions and answers from the room and also from the Twitter feed. Akela was amazed by the number of SIG members who were interested in volunteering with the cloud builder community including many who signed up for ongoing volunteer roles on the spot. [Voluntarism] is imperative for any community to thrive. SIG members picked up tasks such as running discussion groups, writing for blogs, setting up the Webcasts, and running monthly meetings, he says. MEET THE BLOGGERS A key part of ongoing dialogue between cloud builders is the work of popular cloud technology bloggers, several of whom Akela met at COLLABORATE. I have had conversations with many of these people on a weekly and sometimes daily basis, but I hadnt met them and they had never met each other, Akela explains. So he met with the likes of Kellyn PotVin, Leighton Nelson, and Fuad
Jeff Erickson
(jeffrey.x.erickson@ oracle.com) is a senior editor with Oracle Publishing.
NEXT STEPS
FOLLOW Akela the Oracle Enterprise Manager blog blogs.oracle.com/oem FOLLOW cloud technology bloggers Kellyn PotVin dbakevlar.com Leighton Nelson blogs.griddba.com Fuad Arshad fuadarshad.com LEARN more about the IOUG Cloud Computing SIG bit.ly/YTzg6J the IOUG Oracle Enterprise Manager SIG bit.ly/ZL5pIT
BOB ADLER
23
Peers get career boosts from the cloud, My Oracle Support, and Oracle University.
Finding Help
Cameron Lackpour
Diego Aguirre
Michael Abbey
Company: CL Solve, an enterprise performance management consulting company Job title/description: President and consultant, handling all company operations Location: Philadelphia, Pennsylvania Length of time using Oracle products: 19 years
Company: Telecom Argentina S.A., a telecommunications company Job title/description: Senior technical support specialist, responsible for administration and configuration of Oracle Solaris platforms Location: Buenos Aires, Argentina Length of time using Oracle products: More than 10 years Whats your favorite technique on the job? Investigating problems in the servers running Oracle Solaris and then documenting how Ive solved them, step by step, in my blog, Apuntes de Solaris [Solaris Notes, at solaris4ever.blogspot.com]. I do this to try to help the sys admin communityand to help myself, because I have a bad memory. What technology has most changed your life? The newer releases of Oracle Solaris have had a big impactfor example, Oracle Solaris 10 and its Oracle Solaris Containers feature [Oracle Solaris Zones as of Oracle Solaris 11]. These new releases brought radical changesincluding the creation of zones; the new Service Management Facility, which left inetd [the Internet Services Daemon] behind; and the new way of patching using zones. Youve taken Oracle University [OU] classes in the past. What led you to do this? I started my IT career in 1992, when I got a job performing OS tasks in a factory. I eventually became a UNIX administrator and began to take OU courses focused on Oracles Sun solutions. Since then Ive taken nearly a dozen courses. These courses have helped tremendously to upgrade my skills.
Company: Pythian, a data and data infrastructure management consulting firm Job title/description: Oracle team lead, participating in the management of service delivery for clients and intervening in technical triage as required Location: Ottawa, Ontario, Canada Length of time using Oracle products: 26 years Which features in Oracle Database are you currently finding most valuable? I really appreciate the enhancements and new capabilities of Oracle Recovery Manager, especially in areas tailored to backing up massive amounts of data. Native compression arrived in Oracle Database 10g, and new enhancements to speed up backups and recovery exercises emerge with every new release of the database. What advice do you have about how to get into database administration? Start with the basics, and ensure that you have access to a suite of virtual machines to leverage your newfound skills as you acquire them. Dont study technical documentation without trying things out as you goand do not believe everything you read as a result of your search engine hits. Whats your go-to Oracle reference? My Oracle Support is where I spend all my timeonce one hones the skills required to work effectively with this organization, its assistance is second to none. Theres nothing like an Oracle Support team armed with the latest information and with such a massive knowledgebase at their fingertips.
Which new features of Oracle Applications are you currently finding most valuable? For migrating artifacts between EPM applications, servers, and environments, Ive become a tremendous fan of the Lifecycle Management feature of the Oracle Hyperion enterprise performance management [EPM] system. How are you using cloud computing in your work? I think I might be the poster child for cloud computing. It allows a company like mine to get access to large chunks of computing power without a large outlay, expertise, or space. Its been an absolute lifesaver for development, new-release testing, and education. Any particular cloud-related projects youd like to mention? Oracle ACE John Booth and I conceived the idea of the user group ODTUG running the labs and training sessions it holds at every Kscope conference in the cloud. Each student can be in control of his or her own virtual server, and from ODTUGs perspective, the servers come up for a very short amount of time, get used, and then all get destroyed just in time for the next lab. It was my idea to go to the cloud, but the hard technical and infrastructure work was all Johns.
Learn more about the Oracle ACE program at oracle.com/technetwork/community/oracle-ace. oracle magazine July/august 2013
BLAZING
New SPARC microprocessors power the worlds fastest database, Java, and middleware servers.
BY DIANA REICHARDT
PERFORMANCE
O
racle unveiled two new SPARC microprocessors, SPARC T5 and SPARC M5, and introduced a portfolio of systems based on these chips at a live event in Redwood Shores, California, on March 26. Oracle CEO Larry Ellison introduced the SPARC T5, calling it the worlds fastest microprocessor, and reported that the new SPARC T5based systems have set 17 world records.1 Specifically, the SPARC T5-8 server achieved more than 8 million transactions per minute on the TPC-C benchmark,2 Oracle Executive Vice President of Systems John Fowler told the audience. Its simply an astonishing level of capability at a cost and performance point that no one has ever seen before, and its a huge step for us, Fowler said.
1 All world record claims can be found at oracle.com/benchmarks and blogs.oracle.com/bestperf. 2 Oracles SPARC Server Benchmarks, bit.ly/YLfhay
26
Targeted at midrange computing, the new SPARC T5 servers provide high throughput and computing density along with built-in virtualization and extreme scalability. These highly efficient platforms are designed for large-scale, mission-critical applications and are well suited for multitier enterprise applications with Web, database, and application components. Its fascinating, Ellison said. [The T5-8 server] is not very big, but theres been no single server thats ever run the [Oracle] database faster than this on an official benchmark. Whats more, he said, the SPARC T5-8 is also the fastest Java server and middleware server in the world. The superior performance of SPARC T5 servers begins with the extreme speed of the SPARC T5 microprocessor. This will come as a big shock to a lot of people, but these machines offer better integer performance than the IBM Power series, Ellison announced. The [SPARC] T5 microprocessor itself delivers better integer performance than IBM Power [CPU]. SPARC M5 CHIP AND SERVERS Ellison and Fowler also introduced the SPARC M5-32, a high-end server that offers huge performance gains over the previous generation. It uses the new SPARC M5 six-core processor running at 3.6 GHz and delivers roughly 10 times performance improvement over the
SPARC Enterprise M9000 server that it replaces. Oracles goal with the SPARC M5-32 and the entire SPARC M5 line of systems is to change the economics of high-end servers, Fowler said. We wanted to actually step the high end up, to allow you to tackle a different class of applications and a different level of capability, but do that in a cost-performance point that still makes the high end a very attractive enterprise platform, he said. These new vertically scalable servers contain large pools of resources that can support dozens of workloads of various sizes and
Oracle customers, industry analysts, and members of the technology press gathered at Oracle headquarters for the SPARC T5 and SPARC M5 launch event on March 26, 2013.
RON SELLERS
27
types to simplify consolidation and application deployment. New applications can be added, eliminating the need to install a server for each new application, and existing applications can grow by taking advantage of the extra headroom available. Using virtualization technologies such as Dynamic Domains, Oracle VM Server for SPARC, and Oracle Solaris Zones, customers can
consolidate many applications on high-end SPARC M5-32 servers to increase server utilization and business flexibility. Moving Software to Silicon Ellison said that to maintain and increase its leadership position in processors and the systems that use them, Oracle needs to continue to double performance every year and move more software features into hardware, a process that he referred to as the ultimate optimization. Plans include putting database and Java accelerators right on the chips as well, he noted, emphasizing that Oracle has done this kind of thing before. For example, Oracle has already moved encryption into silicon. The SPARC T5 processor accelerates all the most common bulk encryption ciphers so that applications can offload the encryption processing to improve performance. A Different Way of Designing In the past, Fowler noted, systems design focused primarily on connecting networking with storage and the operating system to build a productwith an arms-length approach to applications. Oracle is able to achieve so many new world records because the database team, the Java team, and the middleware team work together and influence every aspect of the system design, he said. Its a lifestyle here. The teams do intensive microbenchmarks and simulations in the design phase to create these systems. The new SPARC T5 and SPARC M5 systems leapfrog the competition with up to 10 times the performance improvement over the previous generation, Fowler said, offering an unbeatable value for midrange and high-end enterprise computing. We set out to design the worlds fastest database machine, the worlds fastest Java machine, and the worlds fastest Java middleware machine, Fowler said. We also ended up with the worlds fastest processor, and the ability to execute an enormous range of applications with technical performance leadership as well as cost leadership.
Oracle CEO Larry Ellison introduced the SPARC T5, the worlds fastest microprocessor, and systems based on it.
WATCH the SPARC T5 and SPARC M5 launch Webcast bit.ly/12yHnnT LEARN more about SPARC servers bit.ly/10z5MW1 Oracle benchmarks bit.ly/12eyspR Oracle Solaris oracle.com/solaris the Oracle Solaris Guarantee Program bit.ly/10z5Vc0 read SPARC T5 Deep Dive: An Interview with Oracles Rick Hetherington bit.ly/15QQq8c
ADVERTISING SUPPLEMENT
In
the era of big data and tight IT budgets, its more important than ever for IT leaders to be strategic when investing in their enterprises to ensure optimum business value. With the advent of cloud computing
WORLD-CLASS ENTERPRISE PERFORMANCE WITH EXTREME RESPONSE TIME Fujitsu M10 servers featuring the 16-core SPARC64 X processor provide superlative performance for the largest workloads. Employing proven Fujitsu supercomputer technology for highly parallel computing and an innovative cooling technology to achieve low latency access time between memory and CPU, the Fujitsu M10 can process large amounts of data in a short period of time. These technologies provide superior performance for enterprise workloads such as online transaction processing (OLTP), enterprise resource planning (ERP), business intelligence and data warehousing (BIDW), supply chain management (SCM), and customer relationship management (CRM). PAY AS YOU GROW DYNAMIC SCALABILITY The modern enterprise needs a exible platform that provides superior performance and availability for the current applications environment, and the ability to scale to future growth and technological needs. Fujitsu M10 servers feature unique dynamic scaling to grow as the business grows. Their modular building-block architecture can scale easily and economically, combining up to 16 building blocks for a total of 64 processors and 1,024 cores. With
the CPU Activation feature, customers can activate CPUs on a CPU core basis and pay for only the processor cores that are needed, enabling rapid and cost-effective adding of resources. This capacityon-demand feature is valuable for customers such as NTT DATA who want their IT environment to grow in alignment with the business. We at NTT DATA have evaluated and conrmed the high performance of Fujitsu M10 that stems from Fujitsus high-performance supercomputer technology, says Hiroshi Endo, senior vice president of NTT DATA Corporation. We look forward to further accelerating the adoption of Fujitsu M10 into our IT infrastructure to match the big data era with high performance processing capacity. NTT DATA will use the exciting new technologies in Fujitsu M10 to drive the development of new IT solutions that in turn directly advance our customers business.
Advertising supplement
forms. The Fujitsu M10-4S server supports up to 16 physical partitions, and as many as 256 Oracle VM Server for SPARC domains can be deployed in each physical partition, enabling massive server consolidation and virtualization. To reduce the number of resources that IT needs to manage, it is vital to consolidate workloads, applications, databases, operating system instances, and servers. Consolidation yields a number of benets: improved system utilization rates, innOvative sOFtware On cost savings, improved security, more predictable chip technOlOgy service levels, and increased exibility in appliFujitsu M10 servers feature Software on Chip cation deployment. For successful consolidation (SWoC) technology, which implements common projects, IT needs a server platform that can scale software code sequences directly into the hardto support any number of application instances, ware, offering multiplicative enhancements in perin a highly available mission-critical environment. formance. Oracle and Fujitsu are collaborating on The platform also needs resource management future advances in software and hardware optimiand virtualization capabilities to simplify managing zations, including shifting cryptographic operations numerous applications, and the tools to manage from software to the processor. This new SWoC that consolidated environment. The Fujitsu M10-4S hardware technology is expected to be exploited server delivers on all these requirements, where IT in new releases of Oracle software. managers can create pools of Fujitsu is the only server processor development company based compute in Japan. We are proud of our long history and technology skills. resources that can be Takumi Maruyama, Assistant Vice President, Processor Development Division, Fujitsu rapidly and dynamically allocated to meet new and changing workloads. high-eFFiciency cOOling technOlOgy Fujitsus hybrid cooling technology, Liquid Loop nO. 1 unix Os Oracle sOlaris Cooling, combines the strengths of liquid and air Fujitsu M10 servers support Oracle Solaris 11 and cooling to resolve the typical problems that exist in Oracle Solaris 10. In addition, Oracle offers the server cooling systems. Liquid Loop Cooling allows Oracle Solaris Application Guarantee Program, high efciency cooling and reduces the CPU/memory offering guaranteed binary and source-code board size. The coolant circulates efciently using compatibility for applications dating back to 1997 multiple redundant pumps, removing the processor or earlier. Oracle Solaris 9 is also available to use heat via a small heat exchanger/radiator on each in Oracle Solaris Legacy Containers. In fact, one board that is air-cooled. The system reduces the size customer was able to operate Oracle Solaris 9, 10 of the heat sink and fans, leading to space-saving and and 11 on one server to run multiple applications. less noise. It also dramatically improves the internal In addition, both Oracle VM Server for SPARC design of the server, allowing CPUs and memory and the Oracle Solaris Zones feature of Oracle to be packed closer together, reducing memory Solaris are included in all Fujitsu M10 servers at latency. Furthermore, controlled CPU temperature no cost. will improve the parts life cycle. This efcient cooling system can lead to signicant cost savings for three MOdels tO Meet Business needs businesses. Fujitsu M10 servers are available in three models to meet the specic needs of many types of businesses. advanced virtualizatiOn Every Fujitsu M10 server is based on the 16-core and cOnsOlidatiOn SPARC64 X processor with SPARC V-9 processor SPARC-processor-based servers are among the architecture, built-in security, a maximum of 600 worlds best consolidation and virtualization plat-
MainFraMe-class ras Fujitsu M10 servers use proven, highly reliable technologies in all of their components. Their mainframe-class RAS capabilities ensure high availability for mission-critical applications. In addition, comprehensive and exhaustive data protection and redundancy assures system uptime 24 hours a day, 365 days a year.
gigabytes drive size, and SAS drive protocol. All Fujitsu M10 servers come with the Oracle Solaris 11 operating system pre-installed. In addition, each model offers a different conguration: The Fujitsu M10-1 server features 2.8 gigahertz processor speed, one maximum processor with up to 16 cores and 32 threads per system. The system memory is up to 512 gigabytes in one rack unit (RU) height chassis. The Fujitsu M10-4 server features 2.8 gigahertz processor speed and four maximum processors with 64 maximum cores and 128 maximum threads per system. The system memory is up to 2 terabytes in a four RU chassis. The Fujitsu M10-4S server features four 3.0 gigahertz processors in a four RU chassis that can be combined with other M10-4S servers using Fujitsu cross-bar technology to form a 16-unit conguration offering up to 64 processors, with 1,024 cores and 2,048 threads. The system memory can scale up to 32 terabytes enclosed in two datacenter racks with integrated cross-bars. To increase protability and remain competitive in todays fast-paced business environment, businesses are focused on speeding up application processing and improving their overall IT efciency, says Bill King, executive vice president of Platform Products Group at Fujitsu America. The Fujitsu M10 servers help our customers realize these objectives while providing a direct return on investment by delivering tremendous price performance advantage with advanced features for optimized database and application performance, mainframe RAS, scalability and a high- performance infrastructure that businesses expect from Fujitsu. Oracle and Fujitsu: a strOng alliance Over the years, Oracle and Fujitsu have built a strong alliance that is focused on delivering meaningful value to customers. The Fujitsu M10 servers are a direct result of their joint collaborative efforts. Oracle welcomes the all new Fujitsu M10 servers to the SPARC family, says Oracle Chief Corporate Architect Edward Screven. Oracle and Fujitsus strong collaboration exemplies Oracles commitment to achieve extreme performance by engineering hardware and software together to benet customers.
Fujitsus Diamond-Level and Oracle Specialized Partner Status Yields Big Benets for Customers
Fujitsu is proud to be an Oracle PartnerNetwork
Diamond level partner, making it one of a handful to achieve the highest ranking available in the Oracle PartnerNetwork (OPN) program. The Diamond distinction lauds Fujitsu for its extensive expertise in Oracle solutions across the entire stackservices, software and hardware. It also recognizes Fujitsus outstanding ability to provide differentiated and innovative services to joint customers around the globe. Currently, Fujitsu has over 3,500 Oracle specialists whose deep skills have helped the company achieve six advanced specializations. This means that not only has Fujitsu met a variety of stringent requirements; it has at least 50 certied implementation specialists on staff for each of six specic product areas. By achieving Diamond-level status, the highest in OPN, Fujitsu has demonstrated its vast knowledge of Oracle technologies and its outstanding ability to offer that expertise to joint customers worldwide, says Michelle Montalvo, vice president, Global Systems Integrator Alliances, Oracle. This achievement is a signicant milestone in a longstanding relationship with Fujitsu.
Fujitsu is the only server processor development company based in Japan. We are proud of our long history and technology skills, says Takumi Maruyama, assistant vice president, Processor Development Division at Fujitsu. We look forward to delivering the Fujitsu M10, which combines Fujitsu and Oracles expertise and innovative technologies, to our customers, and providing them with real business and IT value. n
This document is for informational purposes only, and may not be incorporated into a contract or agreement.
For more information on how Fujitsu M10 servers can benet your enterprise, please visit oracle.ts.fujitsu.com/sparc.
solution in a box
single
virtualized pla
expandable
32
consolidation platform
standard configuration
expandable
engineered system
de
pa r
tm
en
integrated system
ta l
sy st e
on
e-
bu
tt on
pay as you grow
mi ds ize bu sin es s on ebu tt on pa tc h in g pa ya sy ou
simple to maintain
system
br
an
ch
de
pl oy m
en
in
st al
gr ow
pp
or
nd
ed
sy st e
su
-v e
le
ng
si
en
gi
ne
er
33
on
en
pl oy m
pa n
ag e
ch
st or
an
expandable
simple to maintain
de pa r
br
standard configuration
tm
en
ta l
sy st e
m vir tu al
ize
dp
la tf
or
m pa ya sy ou
on
ith the variety of servers, storage, and networking options available, todays IT infrastructures can be very complex and expensive to build and maintain. Thats why Oracle created Oracle Database Appliance. With Oracle Database Appliance, organizations dont need to architect high-availability systems, and they dont need to manage storageits all provided out of the box, says Sohan DeMel, vice president of product strategy and business development at Oracle. Oracle Database Appliance enables companies to
vastly simplify their IT infrastructures and increase their operational efficiencies. Oracle Database Appliance is a single, integrated package of software, server, storage, and networking, and it provides a plug-and-play way for organizations to easily deploy and manage a robust but selfcontained IT infrastructure. Oracle Database Appliance is a fully integrated 4U rack-mountable system for midsize businesses, enterprise departments, and remote/distributed deployments.
oracle magazine July/August 2013
e-
bu
gr ow
tt on
ex
de
di
ag n
si
os
is
34
Aon eSolutions offers its customers the ability to manage their own risk exposure. It also provides claims and policy administration that allows companies to manage everything from day-to-day claims entry and healthcare bill review services to paying out insurance claims. Aons applications have to be available 24/7. Our customers have people all over the world entering data and running reports, says Scott Wilson, vice president of hosting and IT operations at Aon eSolutions. Our solutions are critical to the day-to-day business operations for a large number of companies. In addition to being available, Aon eSolutions systems have to Aon: International Growth perform. Customers run reports against 30 or 40 years worth of data When it comes to cloud computing, one size may not fit allat least and expect to have the results very quickly. To make this possible, for companies that want to offer cloud-based solutions internationAon eSolutions has developed a wide range of cloud-based services ally. Take the case of Aon eSolutions. that serve the risk management industry. The companys softwareAon eSolutions is the technology solutions business of Aon, one as-a-service (SaaS) solutions have traditionally been delivered of the worlds largest risk management, insurance, and reinsurance through two data centers in the United States. brokerage providers. Aon eSolutions has more than 1,600 global Yet over the past few years, Aon has encountered a changing regucustomers, including many Fortune 100 companies and more than latory climate. We started seeing new requirements for data security 250,000 distinct users who leverage its systems. and privacy, says Wilson. Specifically in countries like Canada and in the European Union, there are stringent rules about where data can be stored. As a result, Aon needed to be able to provide a solution that could ensure that no financial data, personally identifiable information, or personal health information was stored outside of a country or union. At the same time, Aon needed to maintain the kind of perforScott Wilson, Vice President of Hosting and IT Operations, Aon eSolutions mance its customers were used to, as well as the availability that its traditional enterprise Oracle deployment provided. Because data privacy is an important concern for Aon eSolutions customers, the system solution also had to be able to encrypt data and meet regulatory requirements. After evaluating its options, Aon eSolutions selected Oracle Database Appliance as the foundation for servicing key international markets. By using Oracle Database Appliance, Aon is able to continue to sell its services and solutions in Canada and in European Union countries while staying compliant with their laws. Oracle Database Appliance fit our needs very well. Its really quick to set up, the cost of entry is low, and we have the ability to scale fast, says Wilson. It met all our performance requirements and even performed better than our existing infrastructure in some cases. So far, weve had 100 percent availability since deploying it. The solution worked so well that Aon eSolutions purchased eight Oracle Database Appliances. Its currently running seven in two data centers in Europe and one in its domestic data center. To minimize up-front costs, Aon eSolutions is running a minimum configuration with a single Oracle license per Oracle Database The compelling thing about Oracle Database Appliance is the ability to grow into it over a period of time, so were paying as we go, says Scott Wilson, Aon eSolutions vice president of hosting and IT operations. Appliance on some of its appliances.
A unique feature of Oracle Database Appliance is the solutions capacity on demand software licensing. While Oracle Database Appliance comes with 32 high-performance Intel processor cores, organizations can start out by using as few as 2 processor cores and grow to the systems full capacity as business needs dictatewith no hardware upgrades needed. Its a really great platform for customers to grow into. Organizations can limit their initial cost outlay and better align their IT spending with business growth, says DeMel.
BoB Adler
35
The compelling thing about Oracle Database Appliance is the ability to grow into it over a period of time, says Wilson, so were paying as we go with the capacity on demand. Aon eSolutions also appreciates the technical and business agility that Oracle Database Appliance provides. Our Oracle Database Appliance systems have given us a huge amount of flexibility, from an infrastructure perspective as well as a business perspective, says Wilson. Now we can meet customers in their own countries, if their data privacy regulations require that, and maintain the same level of service and cost. In addition, the Oracle Database Appliancebased solution was extremely easy and fast to deploy. It literally took us a day from the time we received Oracle Database Appliance devices to when we had them up and running, says Wilson. It didnt require a DBA, a system administrator, a SAN [storage area network] engineer, and a network engineer, the way a traditional system environment would have. In its new European data center, Aon eSolutions runs a primary production database cluster on an Oracle Database Appliance. It also has a local standby appliance and a remote disaster recovery appliance. The deployed Oracle Database Appliance systems provide high availability, local standby, and remote standby capabilities. Aon eSolutions relies on Oracle Real Application Clusters and Oracle Active Data Guard to meet its high-availability and disaster recovery requirements. The solution has been a huge success. Were realizing a 55 percent CapEx savings by using Oracle Database Appliance, says Wilson. Oracle Database Appliance also gave us a 70 percent savings in our data center footprint. From a technology stack solution perspective, this is one of the best decisions weve made in a long time, says Wilson. The cost savings from a business standpoint are very compelling. We can go into a marketplace and quickly stand up our solution while offering the same types of performance, availability, and data privacy that a traditional infrastructure build-out would have. Yodlee: Enterprise Growth With todays business cycles, it can be hard to estimate future business and IT needs. Underestimating future growth potential can Virtualization
The latest Oracle Database Appliance X3-2 release includes new virtualization capabilities that enable organizations to host application workloads right next to database workloads on the same appliance. Virtualization enables the resources of the appliance to be fully partitionedthe database runs its own operating system and its own virtual machine, while application workloads do the same. For licensing purposes, customers still pay only for what they use. The Oracle Database Appliance Virtualized Platform feature is ideally suited for companies with remote branch offices that need to consolidate applications and database assets onto a converged appliance that does not require local IT staff to manage, says Sohan DeMel, vice president of product strategy and business development at Oracle. For SaaS [software as a service] providers and application vendors, the Virtualized Platform provides a simple, standardized way to deliver a complete solution in a box.
Jeff Schulte, vice president of scalability and architecture for operations at Yodlee, says all the pieces of Oracle Database Appliance are engineered to perform well with each other. With an engineered system, you dont have to design it yourself. Youre getting the whole thing prearchitected for you.
have dramaticand negativeimpact on revenues and business opportunity. On the other hand, overbuilding IT infrastructure can waste money and hinder an organization when it needs agility to address a new business need. Thats why Yodlee turned to Oracle Database Appliance. The great thing about Oracle Database Appliance is that it allows us to have the database, database clustering for high availability, storage, and applications in one single device, says Jeff Schulte, vice president of scalability and architecture for operations at Yodlee. In addition, it allows us to use the capacity-on-demand capabilities to enable just one Oracle license to start off with, and then, as the customers in that region grow, we can enable more Oracle licenses to grow as needed. Its a great model for us. Yodlee is a 13-year-old technology company that serves the financial industry. It provides a data platform that powers services and applications for nearly 600 customers and more than 40 million end users, delivering new ways to manage and move money digitally. Yodlee customers are the worlds largest financial institutions, including 7 of the top 10 US banks, as well as hundreds of startups. Yodlees solutions integrate directly with banks and financial providers to create comprehensive and personalized financial management solutions. Yodlee has to be able to support millions of users, including international customers in 10 different countries. Historically, all Yodlee users have been operating out of the companys US-based data
Peter Stember
36
centers. Yet, over the past few years, Yodlee MediSwitch: Growth on Demand snapshots has seen growing privacy regulations and When youre processing more than 100 Aon eSolutions, the technology security concerns related to data sovereignty million electronic healthcare transactions solutions business of Aon drive requirements for data to stay within its a year, high availability and performance aon-esolutions.com home country. Since our systems all involve are critical. Thats why MediSwitch, South aon.com Location: London, England data integration with financial institutions, Africas leading electronic healthcare transEmployees: 65,000 these new regulations were starting to action servicing company, chose Oracle Revenue: US$11.5 billion in 2012 become a barrier to business, says Schulte. Database Appliance when it needed to Oracle products: Oracle Database Appliance; We essentially came to the point where we upgrade its key transaction systems. Oracle Database, Enterprise Edition; Oracle decided we needed to establish a physical MediSwitch acts as an intermediary Real Application Clusters; Oracle Active Data Guard; Oracle Advanced Security data center presence internationally. between more than 12,000 hospitals, Yodlee needed a platform and archipharmacies, doctors, dentists, and other Yodlee tecture that it could put into any country medical businesses in South Africa and the yodlee.com and that would handle the intense secumore than 60 medical schemes that pay Location: Redwood City, California rity requirements for financial data. The out claims. Effectively, MediSwitch takes Employees: 700 Oracle products: Oracle Database Appliance; company evaluated more than 15 poselectronic medical claims and validates all Oracle Database, Enterprise Edition 11.2.0.3.4; sible solutions before it decided on Oracle the information before it is submitted to Oracle Real Application Clusters 11.2.0.3.4 Database Appliance. The need to support payment providers. international requirements really drove the Our aim is to provide improved efficienMediSwitch selection of Oracle Database Appliance, cies for both sides of our value chain, says mediswitch.co.za Location: Johannesburg, South Africa says Schulte. Wayne Botha, IT manager at MediSwitch. Employees: 105 Yodlees selection requirements for supWe improve efficiencies for healthcare Oracle products: Oracle Database Appliance; porting international deployments boiled providers by tracking and providing feedback Oracle Database, Enterprise Edition 11.2.0.3.0; down to four considerations: cost, perforon their claims, and we improve efficiencies Oracle GoldenGate 11.2.1.0.1, Oracle Enterprise mance and scalability, ease of management, for medical schemes by allowing them to cut Manager and security. Oracle Database Appliance won down on manual intervention and reduce out across all four categories. paper claims. From a cost standpoint, we really found no other solution out MediSwitch processes more than 100 million transactions per there that could deploy an infrastructure, software, hardware, datayearand it needs to do so with very high levels of availability and base, and storage that was less expensive, says Schulte. It also performance. For example, because of its processing work with scales really well. You can start out with a small implementation, pharmacies, MediSwitch is very limited in the amount of downtime which for us would be 100,000 users or fewer, and can scale all the its allowed to have, with service-level agreements (SLAs) ensuring way to a large implementation, which for us would be 1 million users. uptime as high as 99.95 percent. At the same time, the performance was great. MediSwitch has two active data centers, with claim processing For Yodlee, another big benefit is Oracle Database Appliances split between the two. The companys existing hardware was ease of management and the fact that all the key components are reaching its end of life, so MediSwitch explored upgrade options. preintegrated, including high-availability capabilities. It performs We really needed a solution that would deliver excellent uptime, really well. Its an engineered systemall the pieces are engineered availability, and disaster recovery, says Botha. to perform well with each other, says Schulte. With an engineered After an extensive investigation, MediSwitch determined that system, you dont have to design it yourself. Youre getting the whole Oracle Database Appliance was the right fit for its business. The thing prearchitected for you. company chose Oracle Database Appliance for two main reasons: the Our experience has been that Oracle Database Appliance is a solution was the perfect size for MediSwitch and was the right value really easy system to implement, says Schulte. We havent had to for the money. do anything to tune the system to make it perform well. In fact, weve Oracle Database Appliance cuts down on OpEx because its an never tuned it. What we have deployed right now in our international engineered system, from the applications down to the disk, where data center is Oracle Database Appliance out of the box. Im expecting we have one vendor to speak to instead of three or four, says Botha. that a single Oracle Database Appliance system for us will scale to well From an ongoing maintenance perspective, its certainly a lot easier over 1 million users without us having to add additional hardware. for our infrastructure team to manage an Oracle Database Appliance The savings Yodlee has obtained from using Oracle Database instead of a custom system. Appliance has been impressive. We achieved a 50 percent reducMediSwitch also deployed Oracle Enterprise Manager to monitor tion in CapEx by choosing Oracle Database Appliance, says Schulte. and manage its Oracle Database Appliance systems. Oracle In addition, our out-of-the-box performance was 10 percent faster Enterprise Manager provides us one portal where we can go and than our existing SAN-based infrastructure. manage the complete stack from one place, instead of using the mul-
37
Were able to run all our databases on the Oracle Database Appliances, so its really a one-stop shop for managing the server.
Wayne Botha, IT Manager, MediSwitch impressed with the performance of the Oracle Database Appliances. Routine monthly billing processes were reduced from four hours to less than 45 minutes. Its superfast. The general responsiveness of the Oracle Database Appliance system is much, much better than our previous system. MediSwitch is also realizing benefits from an operational perspective. Instead of running four or five servers for development and testing, MediSwitch has moved development and testing onto its two Oracle Database Appliance systems. Were able to run all our databases on the Oracle Database Appliances, so its really a onestop shop for managing the server. Its a much simpler and cleaner infrastructure, says Botha. Simplified Consolidation and Growth Todays organizations have to walk a tightrope: they have to plan for growth while at the same time limiting capital expenditures and ongoing costs. This can be especially tricky when it comes to IT investments, and even more so when existing servers or platforms have to be upgraded. New solutions such as the Oracle Database Appliance engineered system are changing the game. With its integrated and consolidated stack of server, storage, networking, and virtualization, Oracle Database Appliance provides new ways for midsize organizations and departments to simplify IT operations, consolidate IT assets, and grow their IT capabilities and cost structures with their businesses. Oracle Database Appliance is a disruptive technology that eliminates the traditional requirement to integrate separate server, storage, and networking components, says Oracles DeMel. Deploying, managing, consolidating, and scaling business-critical systems is now possible without armies of IT staff or expensive consultants.
Wayne Botha, IT manager at MediSwitch, was impressed with the performance of the Oracle Database Appliance. Routine monthly billing processes were reduced from four hours to less than 45 minutes. Its superfast, he says.
tiple systems we had to use with our custom solution, says Botha. One of the big advantages that MediSwitch sees with Oracle Database Appliance is its built-in upgrade path. With Oracle Database Appliance, all the future CPUs that we need are already in the server room, says Botha. We can simply register the number of CPUs needed with Oracle and later turn on additional CPUs as business demands dictate. MediSwitch uses Oracle GoldenGate to replicate data in real time between its two data centers. MediSwitch implemented Oracle GoldenGate in a real-time bidirectional replication, so that even if the network links between the two sites are cut, they will still continue to run independently and resync when theyre reconnected. The use of Oracle GoldenGate also simplifies MediSwitchs disaster recovery plan: because it has active hardware at both data centers, it doesnt have to do ongoing disaster recovery testing. MediSwitch also used Oracle GoldenGate to do a zero-downtime migration to the Oracle Database Appliances. Our business users were surprised at the speed of the new Oracle Database Appliancebased system, says Botha. We were very, very
David A. Kelly (davidakelly.com) is a business, technology, and travel writer who lives in West Newton, Massachusetts. Next Steps
READ more about Oracle Database Appliance bit.ly/11VCF6Q WATCH the Oracle Database Appliance X3-2 launch Webcast bit.ly/11969N3
oracle Business intelligence applications: Deliver value through rapid implementations Simon Miller, William Hutchinson Provide actionable business intelligence across the enterprise using this this complete package of BI solutions.
advanced tuning for JD edwards enterpriseone implementations Michael Jacot, Allen Jacot, Frank Jordan, Gurbinder Bali, Patrick Scott, Kyle Kinder Achieve peak performance from your ERP platform while minimizing downtime and lowering TCO.
MysQl Workbench: Data Modeling & Development Michael McLaughlin Build and maintain world-class MySQL databases, execute effective queries, and gain superior visibility into your enterprise data.
Java Developer
39
Build and deploy Oracle ADF declarative components, and gain the benefits of reuse.
eclarative components in Oracle Application Development Framework (Oracle ADF) enable application developers to build custom JavaServer Faces (JSF) components from existing Oracle ADF Faces components (Oracle ADF Faces is a feature of Oracle ADF) and deploy them as reusable Oracle ADF libraries. Developers who want extra functionality with existing Oracle ADF Faces components or who are building a composite component such as an address field can use the declarative component feature to ensure layout consistency as they reuse components throughout Oracle ADF applications. This article provides an overview of declarative components in Oracle ADF and provides a hands-on guide that walks through the declarative build process. About Oracle ADF Declarative Components Oracle ADF declarative components are standard JSF components that expose their state and behavior through attributes. The attributes exposed by a component define a public API that developers use to enable bidirectional communication with the declarative component. Note that declarative components dont have their own Oracle ADF PageDef files and therefore cannot have their own bindings defined. Oracle ADF provides two types of declarative components: Tag-library-based declarative components are used to build new JSF components out of one or many existing Oracle ADF Faces components. This component type exposes value attributes and method attributes and can be deployed in Oracle ADF libraries for reuse across application boundaries. Dynamic declarative components (DDCs) are reusable layout fragments that are defined in and for a specific view layer
project. DDCs are used to simplify the creation of recurring complex layouts such as custom panel tabs. This type of declarative component supports value attributes but does not support method attributes (as discussed below). Declarative Component Attributes Declarative components provide two types of attributes that collectively define their public application interface. Developers can create and edit these attributes, using Oracle JDevelopers Property Inspector feature. Value attributes are comparable to JavaBeans properties and can be used to pass data into or read it from a declarative component. In the latter case, developers use expression language (EL) to reference a managed bean or an Oracle ADF binding property. Method attributes are used by the declarative component to dispatch Oracle ADF Faces and JSF events to be handled by the consuming Oracle ADF application. To create a declarative component that can raise events, developers create a named method attribute at design time with a signature that defines the method return type (usually void) and the method parameter type (such as javax.faces.event .ValueChangeEvent)to notify the consuming application about a value change. Declarative Component Facets In JSF, facets are named areas within a component that application developers can use to add JSF child components such as toolbars and context menus. In the same way, declarative components can also include facet definitions to enable application developers to add JSF child components. The facet location within a declarative component is defined by another Oracle ADF Faces component called the facet reference.
JSPX Versus Facelets The view declaration language (VDL) in JSF defines the technology that acts as a container for JSF component markup tags. Through JSF Release 1.2, JavaServer Pages (JSP) was the default VDL for JSF applications, and it is still supported in JSF 2.x. However, Facelets is a new VDL that has become the new default and recommended container in JSF 2.x, because of its better alignment with the JSF request lifecycle. Because JSPX documents are different from Facelets, developers must build Oracle ADF declarative components for a specific VDL, so its important to know the target VDL for which a component needs to be built. In Oracle JDeveloper 11 g Release 1, the VDL is always JSPX, but in Oracle JDeveloper 11 g Release 2 and later releases, it can be JSPX or Facelets. Geometry Management Geometry management is Oracle ADF functionality that automatically sizes Oracle ADF Faces components according to the available view size. Geometry management works in cases when the surrounding JSF layout component is able to stretch its child components. Although dynamic declarative components do participate in Oracle ADF geometry management, declarative components dont. To size declarative components, developers need to expose and implement custom width and height attributes. Using Separate Workspaces Because declarative components are reusable artifacts in Oracle ADF and not built specifically for a single application, it is best to develop them in their own Oracle JDeveloper workspace. At the very least, declarative components should be developed in a separate project. This approach simplifies deployment and also helps main-
I-Hua Chen
40
Oracle ADF
tain reusable code that is independent from application-specific code. Hands-on Overview: A Simple Data Export Application Oracle ADF Faces provides a behavior tag af:exportCollectionActionListenerthat declaratively enables a command button or a command link for exporting data from a collection component such as a table or a tree. However, the export functionality is limited to data rows currently displayed in the table, and it outputs only to the Microsoft Excel HTML document format. To support other data export formats such as PDF and regular HTML or to print notyet-queried data to the client , developers can build a declarative component. The instructions in this article show how to build, deploy, and test a declarative component that exports Oracle ADF table data to an HTML file download, as shown in Figure 1. The declarative component described in the following example performs a simple HTML file export of data, making it easier to avoid having to use third-party packages such as Apache POI for Excel. Some parts of the declarative component and the Oracle ADF sample application have been prebuilt for you, so you can focus on building declarative components. Because the application is partially built, it is especially important to follow the hands-on instructions closely. Getting Ready Before following the steps in this article, download and install the Studio edition of Oracle JDeveloper 11 g Release 2. It is available as a free download on Oracle Technology Network at bit.ly/KDqHjz. You also need access to an Oracle Database instance with an unlocked HR schema. Next download the o43adf-1940728.zip sample application at bit.ly/YhDuEV and unzip the file. This sample application includes two Oracle ADF workspaces. The first workspace represents the Oracle ADF application that consumes the declarative component for testing. The second workspace holds the declarative component itself. The workspace for the test application has been prebuilt. The only change needed is to
change the database connection used by the Model project of the Oracle ADF Business Components feature of Oracle ADF to point to your HR database schema. To do so, follow the instructions below: 1. Launch Oracle JDeveloper 11 g Release 2. From the Oracle JDeveloper menu bar, select File -> Open and navigate to the directory containing the unpacked sample application. 2. Open the Oramag070813/sample folder, and select the oramag070813.jws file. Click Open to load the workspace. 3. Select View -> Database -> Database Navigator, and expand the oramag070813 node to display the hrconn node. 4. Right-click hrconn, and select Properties from the menu. Edit the database connection information to work with your setup. Test the changes, and click OK. Next, start the Oracle WebLogic Server instance integrated with Oracle JDeveloper. To start Oracle WebLogic Server, select Run -> Start Server Instance. If this is the first time youve run the integrated Oracle WebLogic Server, a Create Default Domain dialog box will open. Create a password for the default Oracle WebLogic Server domain, and select an address from those listed for Listen Address. For example, choose localhost rather than leaving the address empty. Click OK to save the changes and to create and configure the default domain for Oracle ADF.
Creating an Oracle JDeveloper Workspace and Project The next step is to create a new Oracle JDeveloper workspace for the declarative component. 5. Switch to the Oracle JDeveloper Application Navigator by clicking the Application Navigator tab in the integrated development environment (IDE). 6. Choose File -> New from the Oracle JDeveloper menu to create a new application. In the New Gallery, select General -> Applications. 7. Choose the Custom Application entry, and click OK. 8. Click Browse next to the Directory field to locate the Oramag070813 folder in the directory in which you unzipped the sample files. Then click Select. 9. Set the Application Name field value to OramagCom. 10. Set the Application Package Prefix field value to oramag.sample.julaug .thirteen, and click Next to navigate to the second wizard dialog box. 11. Set the Project Name field value to OramagPanelCollection. 12. Hold down the Ctrl key while selecting ADF Faces and ADF Page Flow from the Available list of project features, and click the selection button (the right-arrow icon). 13. Click Next, and change the Default Package field value to oramag.sample .julaug.thirteen.comp. 14. Click Finish. 15. In the Application Navigator, right-click
41
the OramagPanelCollection node and choose Project Properties from the menu that appears. 16. Select the Libraries and Classpath node, and click Add Library. 17. In the Add Library dialog box, select ADF Model Generic Runtime and click OK twice. At this point, you have created the Oracle JDeveloper workspace and project in which the Oracle ADF declarative component will be built. You have also configured the project to access the Oracle ADF binding runtime classes that are needed to export table data. Declarative Component: Definition The next step is to define the declarative component. 18. Right-click the OramagPanelCollection node, and choose New from the menu. 19. Under Categories, select the Web Tier -> JSF/Facelets node and ADF Declarative Component. Click OK. 20. In the Create ADF Declarative Component dialog box, set the Declarative Component Name field value to HtmlExportPanelCollection. 21. Keep the default values for File Name, Directory, and Declarative Component Package, and click Add Tag Library. 22. In the Create Declarative Component Tag Library dialog box, define the value for the Tag Library Name field as HtmlExportPanelCollection. 23. Set the Tag Library URI field value to /htmlexport/collection. This field defines a namespace for the custom component so it can be uniquely addressed on a JSF page. 24. Set the Tag Library Prefix field value to oramag. In the way Oracle ADF Faces components are prefixed with af:, this custom component will be prefixed with oramag: when referenced on an application page. 25. Click OK. 26. Leave the Use Custom Component Class checkboxwhich enables you to render a Java class you can use to override JSF implementation details such as component encoding and decodingunchecked.
27. Ensure that the Document Type selection is set to Facelets. This setting is required because the precreated Oracle ADF sample application used for testing the component also uses Facelets. 28. With the Facet Definition tab selected, click the green plus (+) icon. 29. Define the Facet Name field value as tableArea, and enter Drop target for ADF Faces table components for Description. 30. Select the Attributes tab, and click the green plus (+) icon to create a component attribute with the following values:
Name Type Default Value Required
exportTitle java.lang.String Oramag Export
31. Again, click the green plus icon (+) to create a second attribute, with the following values:
Name Type Default Value Required
exportRows java.lang.Integer -1
32. Click OK to create the component definition. At this point, your new workspace contains an empty declarative component, configured with a single facet to hold an Oracle ADF bound table as a child component. It contains two attributes that developers will use to define a title for the exported HTML data and the number of rows to export. The declarative component should appear in the visual editor in Oracle JDeveloper. Note: The runtime logic you add later to the declarative component will throw an exception if the child component is not an Oracle ADF bound table. Declarative Component: Implementation The next step is to add the declarative component implementation, which is the code for exporting child component data to HTML. 33. Choose View -> Component Palette from the Oracle JDeveloper menu to select the Component Palette.
34. In the Component Palette, expand the Layout accordion, select the Panel Collection component (the sixth component in the Layout accordion), and drag it into the visual page editor that shows the HtmlExportPanelCollection.jsf file. Note: The Panel Collection component in Oracle ADF Faces is used to decorate the Oracle ADF Faces table, tree, and treeTable components with menus for showing, hiding, and sorting attributes. This handson guide creates a declarative component that adds HTML export functionality to this component. 35. Stay in the Layout accordion in the Component Palette. Find and select the Facet Definition component in the Core Structure subsection, and drag it into the center of the Panel Collection component. 36. In the Insert Facet Definition dialog box that appears, select tableArea for Facet Name and click OK. Note: The Facet Definition tag adds metadata that defines where in the component application developers can declaratively add UI components later. 37. Save your work. 38. Next, choose View -> Structure from the Oracle JDeveloper menu to open the Structure window. 39. In the Structure window, expand the af:panelCollection - dc_pc1 entry and right-click the f:facet toolbar entry. 40. Select Insert Inside f:facet toolbar -> Toolbar to add a new toolbar component. 41. Still in the Structure window, right-click af:toolbar and choose Insert Inside af:toolbar -> Toolbar Button. 42. Select View -> Property Inspector from the Oracle JDeveloper menu to open Property Inspector. 43. Ensure that the af:commandToolbarButton component is selected in the Structure window, and change the Text property value to export to HTML, using Property Inspector. 44. Switch back to the Component Palette by clicking the Component Palette tab, and expand the Operations accordion. 45. Select the File Download Action Listener component in the Listeners subhead area. While pressing the left mouse
42
Oracle ADF
button, drag the File Download Action Listener component into the toolbar button component in the visual editor of the Structure window. 46. Ensure that the af:fileDownloadActionListener entry is selected in the Structure window, and open Property Inspector. 47. Set the Content Type property to text/ html and the File Name property to exportedData.html. 48. Click the down-arrow icon next to the Method property, and choose Edit from the menu to create a new managed bean method to handle the data export. 49. In the Edit Property: Method dialog box, click New (next to the Managed Bean field). 50. Edit the dialog box fields as follows:
Bean Name Class Name Package Extends Scope Registration Generate Class If It Does Not Exist
CustomPanelCollectionBean CustomPanelCollectionBean oramag.sample.julaug. thirteen.comp java.lang.Object backingBean Configuration File
<<Select.>>
the clipboard contents by using Ctrl-A and Ctrl-V. 58. Switch to the visual page editor, by clicking the HtmlExportPanelCollection .jsf tab header. 59. In the Oracle JDeveloper Structure window, select the af:componentDef -> af:panelCollection - dc_pc1 component node, and open Property Inspector. 60. Navigate to the Binding property in the Advanced section, click the down-arrow icon, and choose Edit from the menu. 61. In the Edit Property: Binding dialog box, select CustomPanelCollectionBean for Managed Bean and customPanelCollection for Property. 62. Click OK. 63. Save your work, and close the code editor. At this point, you have created a declarative component that expects an Oracle ADF bound table as a child component and uses a managed bean in the backing bean scope to access the table binding to export row data to HTML. The backing bean scope of the managed bean ensures that multiple instances of the declarative component can be added to a single Oracle ADF Faces page. Deploying the Component into an Oracle ADF Library To reuse the declarative component in an Oracle ADF project, it must first be deployed into an Oracle ADF library. 64. Right-click the OramagPanelCollection node in the Application Navigator, and choose Project Properties from the menu. 65. Select the Deployment node, and click New. 66. In the dialog box that appears, ensure that Profile Type is ADF Library JAR File and set Deployment Profile Name to oramag070813. Then click OK three times in sequence to confirm these selections. 67. Save your work again. Then right-click the OramagPanelCollection node. Choose Deploy -> oramag070813 from the menu, and click Next followed by Finish. At this point, you have created an Oracle ADF library file (oramag070813.jar) and saved it in the Oramag070813\ OramagComp\OramagPanelCollection\ deploy directory in the file system.
Using the Resource Palette The next step is to create an Oracle JDeveloper Resource Palette reference to this library, to allow reuse in Oracle ADF applications. 68. Choose View -> Resource Palette from the Oracle JDeveloper menu to open the Resource Palette window. 69. Click the folder icon at the top, and choose New Connection -> File System. 70. In the dialog box that appears, define Connection Name as htmlExportPanelCollection. 71. Click Browse to navigate to and select the Oramag070813\ OramagComp\ OramagPanelCollection\deploy folder, and click Select. Note: Make sure you select the deploy folder and not the JAR file within. 72. Click OK. Testing the Component To test the declarative component, switch workspaces in Oracle JDeveloper to the provided sample application and import the Oracle ADF library from the Resource Palette. 73. In the Application Navigator, select the oramag070813 workspace from the list of open workspaces and select the ViewController project. 74. In the Resource Palette, expand the IDE Connections accordion, select the File System -> htmlExportPanelCollection node, and select the oramag070813 .jar file. 75. Right-click the oramag070813.jar file, and choose Add to Project. 76. In the Confirm Add ADF Library dialog box, click Add Library to add the JAR file to the ViewController project list of library dependencies. 77. Expand the ViewController -> Web Content node, and double-click the SamplePage.jsf file. 78. With the SamplePage.jsf file open in the visual editor, open the Component Palette and choose the HtmlExportPanelCollection entry from the list. 79. Select the HtmlExportPanelCollection component, and drag it from the Component Palette into the page displayed in the visual page editor. 80. Expand the Application Navigator
51. Click OK. 52. Back in the Edit Property: Method dialog box, click New (next to the Method field). 53. Set the Method Name field value as handleFileDownload, and click OK twice. 54. In the Application Navigator, expand the OramagPanelCollection -> Application Sources -> oramag.sample.julaug -> thirteen -> comp package, and doubleclick the CustomPanelCollectionBean .java file. 55. Return to the operating system. Use any file browser to navigate to the directory containing the unpacked sample application, and open the template folder. 56. Open the contained CustomPanelCollectionBean.txt file in a text editor, and use Ctrl-A and Ctrl-C to copy its full contents to the clipboard. 57. Return to Oracle JDeveloper. Place the cursor inside the Java code editor, which shows the CustomPanelCollectionBean .java file, and replace its contents with
43
Data Controls accordion, drag the AppModuleDataControl -> allHrEmployees collection into the visual page editor, and drop it as a Table -> ADF Read-only table into the table area facet of the declarative component. 81. Click OK in the Edit Table Columns dialog box, accepting all the default settings. 82. In the Structure window, select the f:view -> af:document -> af:form -> af:pageTemplate -> f:facet-center -> oramag:HtmlExportPanelCollection component, and open Property Inspector. 83. Optionally, change the ExportTitle attribute value string to a custom label and the ExportRows attribute to a positive integer. These are the two attributes exposed on the custom component. 84. Run the SamplePage.jsf page, by rightclicking it in the Application Navigator and choosing Run. 85. In the browser application, click export
to HTML to download an HTML file containing exported table data. Conclusion This article walked through a simple example of how to declaratively build JSF components from existing Oracle ADF Faces components. To learn more about the declarative component functionality, spend some time playing with the sample application (for example, by using EL to provide values to the exposed component attributes). You can also try extending the sample application to export data to other file formats.
Next Steps
DOWNLOAD Oracle JDeveloper 11g Release 2 bit.ly/KDqHjz the sample application for this article bit.ly/YhDuEV READ more about Oracle ADF bit.ly/105QWMd dynamic declarative components bit.ly/ZtahlM Oracle ADF Faces export collection listener bit.ly/12xSkTP READ more Nimphius Oracle ADF Code Corner bit.ly/ZFLRcm Oracle Technology Network forum Harvest blog bit.ly/138PZkQ Oracle Technology Network Oracle JDeveloper forum bit.ly/YjTmEK Oracle ADF Insider bit.ly/10a8n9S
Join Us.
OracleMagazine
Oracle Magazine
@OracleMagazine
Copyright 2013, Oracle and/or its afliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its afliates. Other names may be trademarks of their respective owners.
3G
9:41 AM
Reach More than 700,000 Oracle Customers with Oracle Publishing Group
Connect with the Audience that Matters Most to Your Business
Oracle Magazine
The Largest IT Publication in the World Circulation: 550,000 Audience: IT Managers, DBAs, Programmers, and Developers
Prot
Business Insight for Enterprise-Class Business Leaders to Help Them Build a Better Business Using Oracle Technology Circulation: 100,000 Audience: Top Executives and Line of Business Managers
Java Magazine
The Essential Source on Java Technology, the Java Programming Language, and Java-Based Applications Circulation: 125,000 and Growing Steady Audience: Corporate and Independent Java Developers, Programmers, and Architects
For more information or to sign up for a FREE subscription: Scan the QR code to visit Oracle Publishing online.
Copyright 2012, Oracle and/or its afliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its afliates. Other names may be trademarks of their respective owners. 113940
45
oracle database
art 11 in this series, Leading Ranks and Lagging Percentages: Analytic Functions, Continued (Oracle Magazine, May/June 2013), continued the discussion of analytic functions that began in Part 10. It demonstrated analytic functions that enable you to obtain results for top-N queries, evaluate data comparisons, and calculate percentages within a group, among other actions. This article wraps up the series coverage of analytic functions by showing How you can get a new perspective on your results with pivot queries that convert column data into row data or row data into column data How to employ an inline view to use an analytic function in a WHERE clause To try out the examples in this series, you need access to an Oracle Database instance. If necessary, download and install an Oracle Database edition for your operating system from bit.ly/fherki. I recommend installing Oracle Database, Express Edition 11 g Release 2. If you install the Oracle Database software, choose the installation option that enables you to create and configure a database. A new database, including sample user accounts and their associated schemas, will be created for you. (Note that SQL_101 is the user account to use for the examples in this series; its also the schema in which youll create database tables and other objects.) When the installation process prompts you to specify schema passwords, enter and confirm passwords for SYS and SYSTEM and make a note of them. Finallywhether you installed the database software from scratch or have access to an existing Oracle Database instancedown-
Code Listing 1: Obtaining a list of employees, sorted by department and employee name
SQL> SQL> SQL> 2 3 set feedback on set lines 32000 select department_id, last_name, first_name from employee order by department_id, last_name, first_name; LAST_NAME Dovichi Eckhardt Friedli James Michaels Newton leblanc peterson Jeffrey Wong Newton FIRST_NAME Lori Emily Roger Betsy Matthew Donald mark michael Thomas Theresa Frances
DEPARTMENT_ID 10 10 10 10 10 10 20 20 30 30
11 rows selected.
load, unzip, and execute the SQL script available at bit.ly/12KRYvv to create the tables for the SQL_101 schema that are required for this articles examples. (View the script in a text editor for execution instructions.) Turning Your Data on Its Side A common business reporting requirement is that data in a column be displayed horizontally rather than vertically, for better readability. For example, compare the result set in Listing 1 to the one in Listing 2. The query in Listing 1 lists all employees alongside their respective department IDs, sorted by department and employee name. The data returned in Listing 2 is the same as that returned in Listing 1, but it is displayed differently. Listing 2 uses the LISTAGG function (introduced in Oracle Database 11 g) to con-
struct a comma-delimited list of employees per department, thereby pivoting the more traditionally displayed result set in Listing 1. You can use LISTAGG as a single-group aggregate function, a multigroup aggregate function, or an analytic function. When LISTAGG is invoked as a singlegroup aggregate function, it operates on all rows that satisfy any WHERE clause condition andlike all other single-group aggregate functionsreturns a single output row. The example in Listing 2 demonstrates the use of LISTAGG as a multigroup aggregate function, returning a row for each group defined by the GROUP BY clause. The syntax for the LISTAGG function is
LISTAGG ( column | expression, delimiter ) WITHIN GROUP (ORDER BY column | expression)
I-Hua Chen
46
SQL 101
Code Listing 2: Employees, sorted by department and name, displaying one row per department
SQL> select department_id, 2 LISTAGG(first_name||' '||last_name, ', ') 3 WITHIN GROUP 4 (order by last_name, first_name) employees 5 from employee 6 group by department_id 7 order by department_id; DEPARTMENT_ID 10 20 30 EMPLOYEES Lori Dovichi, Emily Eckhardt, Roger Friedli, Betsy James, Matthew Michaels, Donald Newton mark leblanc, michael peterson Thomas Jeffrey, Theresa Wong Frances Newton
The column or expression to be aggregated, the WITHIN GROUP keywords, and the ORDER BY clause that immediately follows the WITHIN GROUP keywords (that is, the sort that takes place within the grouping) are mandatory in all three LISTAGG use cases. The query in Listing 3 uses LISTAGG as an analytic function. It obtains a list of salaries, from highest to lowest, per department. Alongside each salary value is the name, in last-name/first-name alphabetical order, of the employee who earns that salary value. In addition, every employee for the current rows listed department is returned in salary order, from highest to lowest, and in lastname/first-name alphabetical order. Twisting and Turning into Fewer and Wider A PIVOT clause enables you to turn rows into columns and present your data in a crosstabular format. The syntax of the PIVOT clause is
SELECT FROM PIVOT ( aggregatefunction column | expression ) FOR column | expression to be pivoted IN (value1, valueN) ) AS alias
4 rows selected.
10
70000
Matthew Michaels
10
60000
Roger Friedli
10
60000
Betsy James
Compare the result sets in Listings 4 and 5. The query in Listing 4 displays a summary of each departments total employee salary amount in a cross-tabular report. The query in Listing 5 returns the same departmental salary summaries as those in Listing 4 but in columnar format, which your users might consider less readable. The query in Listing 6 demonstrates that its possible to pivot on more than one column. The results from this query display the sum total of salaries per department, but only for employees who were hired in a particular year. You can also pivot on and display multiple aggregate values, as Listing 7 demonstrates. The query in Listing 7 obtains the sum of all salaries, alongside the latest date of hire for an employee, per department.
10
Lori Dovichi
20 20 30 30
michael peterson mark leblanc Thomas Jeffrey Theresa Wong Frances Newton
11 rows selected.
When you use multiple aggregate functions, its advisable to supply an alias for each of them. The resultant column headings are a concatenation of the pivot values (or pivot aliases), an underscore, and (if youve supplied them) the aliases of the aggregate functions. For example, some of Listing 7s columns are 10_SALS and 10_LATEST. Note that the columns for the
latest hire dates per department, such as 10_LATEST, are actually columns using the LATEST_HIRE alias. When you prepend the LATEST_HIRE alias with the department ID, the query should return a column that reads, for example, 10_LATEST_HIRE. However, with SQL*Plus, the column heading displayed for a column with a DATE datatype is never longer than the default
47
format for the value returned. The HIRE_DATE columns format is DD-MON-RR, so only the first nine characters of the heading are displayed. To display a full heading, such as 10_LATEST_HIRE, consider using TO_CHAR to apply a date format mask to the column. If you dont supply an alias for your aggregate functions, you might get an error message, as shown in the example in Listing 8. Because neither of the aggregate functions in Listing 8 is aliased, the PIVOT operator doesnt know to which one to apply the column heading for the pivot value (in this case, the DEPARTMENT_ID value). As a result, the PIVOT operator cant simply use its default column headings and the query fails with a column ambiguously defined error message. Avoid this error by creating an alias for each aggregate function; dont rely solely on the default column headings that result from use of the PIVOT operation. A Horizontal View of the Vertical Just as you might have a reporting need to turn rows into columns, you might also need to turn columns into rows. Youve seen one way to do this with the LISTAGG function. You can also use the UNPIVOT operator for this purpose. Note that the UNPIVOT operator does not reverse an action performed with the PIVOT operator. Rather, it works on data that is already stored as pivoted. Consider the CREATE TABLE statement in Listing 9. It creates a table with pivoted data, using a query similar to the one in Listing 7. Now you can query this data by using the UNPIVOT operator, as Listing 10 illustrates. Compare the values returned from the query in Listing 10 with the values returned from the query in Listing 7. As you can see, they are the same but are displayed differently. The results in Listing 7 are returned as one long record (row), with each HIRE_DATE and SALARY combination, pivoted by department, displayed side by side. In contrast, each of these combinations is returned as a separate and distinct row from the query in Listing 10, with the HIRE_DATE and SALARY values displayed in separate columns. Note that the query in Listing 10 unpivots and returns value pairs of different datatypes. HIRE_DATE uses the DATE datatype, and SALARY uses the NUMBER datatype, so the
1 row selected.
4 rows selected.
Code Listing 6: Displaying the sum total salaries of employees per department for a particular year
SQL> select * 2 from (select department_id, to_char(trunc(hire_date, 'YYYY'), 'YYYY') hire_date, salary 3 from employee) 4 PIVOT (SUM(salary) 5 FOR (department_id, hire_date) IN 6 ((10, '2007') AS Accounting_2007, 7 (20, '2008') AS Payroll_2008, 8 (30, '2010') AS IT_2010 9 ) 10 ); ACCOUNTING_2007 190000 1 row selected. PAYROLL_2008 90000 IT_2010 370000
alias you use for these value pairs must be enclosed in single quotation marks. If it is not, you might get an error message like the one shown in Listing 11. When and How to Predicate Analytically Other than the final ORDER BY clause, analytic functions are the last set of operations performed in a query. Because they can
appear only in the SELECT list or the ORDER BY clause, you cannot use them directly in any predicates, including in a WHERE or HAVING clause. If you need to select from a result set based on the outcome of applying an analytic function, you can use an inline view. An inline view is a SELECT statement in the FROM clause of another SELECT statement. It acts as a TABLE (otherwise known as a FROM) clause. You have already seen
48
SQL 101
examples of inline view capability in this article in Listings 4, 6, 7, 8, and 9. Suppose you want to use an analytic function to obtain the top two salary earners by department. As Listing 12 illustrates, you can place the analytic function operation in an inline view and alias it. The alias provided to the inline view in Listing 12 is D_RANK (this is named for the result of applying the DENSE_RANK analytic function). The query in the inline view (the inner query) must be resolved before it can be used by the query that encompasses it (the outer query). After the inline view completes, the outer query can use its result in a predicate. The predicate clause in the outer query for Listing 12 is
WHERE d_rank < 3
Code Listing 10: Using the UNPIVOT operator to turn rows into columns
SQL> select hire_date, salary 2 from pivoted_emp_data 3 UNPIVOT INCLUDE NULLS 4 ((hire_date, salary) 5 FOR department_id IN ( 6 (acc_latest_hire, acc_sum_sals) AS 'Accounting', 7 (pay_latest_hire, pay_sum_sals) AS 'Payroll', 8 (it_latest_hire, it_sum_sals) AS 'IT', 9 (null_latest_hire, null_sum_sals) AS 'Unassigned' 10 )) 11 order by hire_date, salary; HIRE_DATE 14-SEP-05 06-MAR-09 27-FEB-10 07-JUL-11 SALARY 75000 155000 370000 370000
Striving to Perform Well Although analytic functions help you form a more elegant and less convoluted SQL solution to a reporting requirement, they are not a replacement for writing good code. Your goal should be to constantly and consistently write good SQL thats easy to maintain and that will perform well over time. Its all too easy to abuse SQL techniques that make processes easier. Used incorrectly, any SQL technique can be written poorly and become a system inhibitor. In particular, sorting and sifting data can exhaust system resources. (The query in Listing 13, for example, includes three potential sort operations.) This shouldnt necessarily deter you from using analytic functions, but keep in mind that you can write a query that brings a system to its knees just as easily as you can write one that provides you with an efficient, elegant, and easy-to-maintain solution. With the power of analytic functions comes responsibility. Conclusion This article concludes the discussion of analytic functions introduced in Part 10 and continued in Part 11 of this series. It demonstrates how LISTAGG, PIVOT, and UNPIVOT can be used to manipulate the way your data is displayed. Youve seen how to turn columns into rows and rows into columns and how such views differ from each other.
4 rows selected.
49
Code Listing 11: Using aliases for value pairs of different datatypes
SQL> select hire_date, salary 2 from pivoted_emp_data 3 UNPIVOT INCLUDE NULLS 4 ((hire_date, salary) 5 FOR department_id IN ( 6 (acc_latest_hire, acc_sum_sals) AS Accounting, 7 (pay_latest_hire, pay_sum_sals) AS Payroll, 8 (it_latest_hire, it_sum_sals) AS IT, 9 (null_latest_hire, null_sum_sals) AS Unassigned 10 )) 11 order by hire_date, salary; (acc_latest_hire, acc_sum_sals) AS Accounting, * ERROR at line 6: ORA-56901: non-constant expression is not allowed for pivot|unpivot values
Code Listing 12: Using an inline view to enable use of an analytic function as a predicate
SQL> select * 2 from (select department_id, last_name||', '||first_name, salary, 3 dense_rank() over (partition by department_id 4 order by salary desc nulls last) d_rank 5 from employee) 6 where d_rank < 3 7 order by department_id, salary desc nulls last; DEPARTMENT_ID 10 10 20 20 30 30 LAST_NAME||','||FIRST_NAME Eckhardt, Emily Newton, Donald peterson, michael leblanc, mark Jeffrey, Thomas Wong, Theresa Newton, Frances SALARY 100000 80000 90000 65000 300000 70000 75000 D_RANK 1 2 1 2 1 2 1
Youve learned how to take individual data items and return them as delimited lists for more-readable reports. Youre also now aware of the specific caveats that apply when you use these functionalities. Last but not least, youre aware now that queries that use analytic functions canif youre not carefulconsume many, if not all, of your system resources. In all cases, analytic functions greatly reduce the need to write complicated SQL to obtain the same results. But they are tools to be wielded with equal parts of enthusiasm and caution. Review the documentation at bit.ly/yWtbz1 and bit.ly/R4cZyq for more details. This article concludes the SQL 101 series. Youve learned basic relational database concepts and many SQL coding constructs, but the series has given you only a glimpse into what Oracle SQL has to offer you. Be sure to continue to read the documentation and try existing and new Oracle Database features. Thank you for being readers of Oracle Magazine and of the SQL 101 series. As you continue writing SQL, my hope is that you enjoy it as much as I do.
7 rows selected.
Code Listing 13: Query with analytic functions that may cause system performance problems
SQL> select first_name||' '||last_name, department_id, hire_date, 2 sum(salary) over (order by department_id, first_name||' '||last_name) sum_dept_emp, 3 avg(salary) over (order by hire_date, department_id) avg_dept_hire_dt 4 from employee 5 order by department_id, hire_date, first_name||' '||last_name; FIRST_NAME||''||LAST_NAME DEPARTMENT_ID HIRE_DATE SUM_DEPT_EMP AVG_DEPT_HIRE_DT Emily Eckhardt 10 07-JUL-04 240000 100000 Donald Newton 10 24-SEP-06 140000 85000 Betsy James 10 16-MAY-07 60000 74166.6667 Matthew Michaels 10 16-MAY-07 310000 74166.6667 Roger Friedli 10 16-MAY-07 370000 74166.6667 Lori Dovichi 10 07-JUL-11 240000 97000 michael peterson 20 03-NOV-08 525000 76428.5714 mark leblanc 20 06-MAR-09 435000 75000 Thomas Jeffrey 30 27-FEB-10 895000 100000 Theresa Wong 30 27-FEB-10 595000 97000 Frances Newton 14-SEP-05 970000 87500 11 rows selected.
Melanie Caffrey is a senior development manager at Oracle. She is a coauthor of Expert PL/SQL Practices for Oracle Developers and DBAs (Apress, 2011) and Expert Oracle Practices: Oracle Database Administration from the Oak Table (Apress, 2010). Next Steps
READ SQL 101, Parts 111 bit.ly/omagsql101 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 2 (11.2) bit.ly/yWtbz1 Oracle Database Data Warehousing Guide 11g Release 2 (11.2) bit.ly/R4cZyq DOWNLOAD the sample script for this article bit.ly/12KRYvv
Database
or Puzzle Pieces?
BUY
Oracle Database Appliance
Appliance
BUILD
Microsoft Database
+ + + +
or
Copyright 2013, 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.
51
Oracle Database
have an UPDATE statement that returns two different results for the same data. I use a subquery in the UPDATE to identify the rows to be modified, and that SELECT statement first returns the row where ID = 14152967. But when I run the UPDATE, the wrong row is updated. Can you explain what is happening here? [Editors note: Listing 1 includes the questioners table setup, a subquery for the UPDATE, the UPDATE, and the UPDATE result.] The problem is that your subquery is nondeterministic. I can actually run your example and update either of the two rows in the TEST table, depending on which row I inserted first! I took your query and added a few columns to it so I could see the data values you are partitioning on and ordering by, and then I removed the WHERE clause to get rows WHERE ROW_N > 1. Listing 2 shows the results. In looking at that Listing 2 data, the reason for this anomaly should be clear: the result set is nondeterministic. It can and will return different answers randomly. You are assigning ROW_NUMBER after partitioning by HOSTID and PROD_RID and then sorting by PRI. Because your HOSTID and PROD_RID values are the sameand the PRI value is the samethere is no deterministic way to sort this data. Either of the two rows could be first and the other second. The ROW_NUMBER assignment is not guaranteed to be the same from run to run of that query. In fact, if I truncate that table and insert the data in reverse order, I might see the following result set:
ROW_N ID HOSTID PROD_RID 10013252 10013252 PRI 13 13
As you can see, the ROW_N values have been switched, simply due to a switch in the order in which the rows were inserted into the table. Do not be concerned if you cannot reproduce this exactly. It will depend on the sort work area size assigned, possibly your block size, the type of segment space allocation you are using, and many other factors. In other words, it will appear random in practice. Whenever you partition on or order by a set of attributes that are not unique when taken together, your results will be nondeterministic. The ordering of the data in a result set and the values of certain analytic windowing functions can and will vary from query execution to query execution. In this particular case, I cannot offer the final solution to your query dilemma. You will have to decide what you need to order by to make this query deterministic. For example, if the larger values of ID are the ones you want to update, youll want to add ID to the ORDER BY list, as shown in Listing 3. Assuming that ID is unique in the Listing 3 result set (and I cannot say for sure, because there are no constraints at all on this example), ordering by PRI DESC, ID ASC will assure you of identical results from query execution to query execution. I touched on this topic briefly a few years ago in On Top-n and Pagination Queries (bit.ly/Z6nxLL). This deterministic property is important whenever you are using analytic windowing functions or even just a simple ORDER BY statement. Comma-Delimited Data from Oracle SQL Developer I have to create a comma-delimited file with Oracle SQL Developer. Im using this syntax to generate the output:
select spriden_id||','|| spriden_first_name||','|| spriden_last_name from spriden where spriden_pidm = 1012; The company Im sending the file to wants a header record at the top of the file that has all the field names Im selecting. Whats the syntax for creating the header record so it looks like this: ID,First_Name,Last_Name You are going to be surprised at how easy this is. Oracle SQL Developer supports a few hints of its own design in SQL queries. (Theyre not hints in the manner that INDEX, PARALLEL, FULL, USE_NL, and the like are hints.) For this result set, a simple
select /* CSV */ spriden_id ID, spriden_first_name FIRST_NAME, spriden_last_name LAST_NAME from spriden where spriden_pidm = 1012;
will do the trick. In addition to that hint, there are others: XML tagged XML format HTML marked-up HTML table format DELIMITED same as CSV INSERT a SQL insert format LOADER a pipe-delimited format suitable for SQL*Loader (sqlldr) FIXED fixed-width fields with trailing blanks to pad them out TEXT plain-text output You can see examples of each, with more information on using them in Oracle SQL Developer, at bit.ly/10AuN46 and bit.ly/19dt2Or. The blog providing this
52
ask tom
informationThatJeffSmithis authored by Jeff Smith, the product manager for Oracle SQL Developer. Mutating Tables I have a trigger somewhat like this: create or replace trigger TR_TABLE_X_AU after update on TABLE_X for each row declare cursor cursor_select_fk is select FK_FOR_ANOTHER_TABLE from TABLE_Y Y, TABLE_Z Z where :NEW.JOINING_COL = Y.JOINING_COL and Y.JOINING_COL = Z.JOINING_COL and :NEW.FILTER_CONDITION_1 = Y.FILTER_CONDITION_1 and :NEW.FILTER_CONDITION_2 = Y.FILTER_CONDITION_2 and :NEW.SOME_DATE_COL = (select max(SOME_DATE_COL) from TABLE_X where FILTER_CONDITION_1 = :NEW.FILTER_CONDITION_1 and FILTER_CONDITION_2 = :NEW.FILTER_CONDITION_2) begin for rec in cursor_select_fk loop PCK_SOME_PACKAGE.SOME_PROC (rec.FK_FOR_ANOTHER_TABLE); end loop; end TR_TABLE_X_AU; I am using triggers because it is an enhancement and I dont want to modify the existing software. The nested query selecting the MAX date seems to be the cause of the problem. Changing the query to use SYSDATE results in no errors or exceptions. Any idea on how I can get the MAX date during the execution of the trigger for TABLE_X? A row trigger cannot read from the table it is firing on if the triggering statement might affect more than one row (and an UPDATE can affect more than one row in general). The only type of row trigger that might be able to read the table it is firing on would be an INSERT using the VALUES clause, because it affects zero rows or one row only. That said, this error message exists to save you from the fires of data integrity
Code Listing 1: The first questions sample table, subquery, UPDATE, and result information
SQL> CREATE TABLE TEST 2 ( ID varchar2(10), 3 PROD_RID varchar2(10) NULL, 4 VERSIONS_RID varchar2(10) NULL, 5 HOSTID varchar2(10) NULL, 6 HIDDEN varchar2(10) NULL 7 ); Table created. SQL> insert into TEST 2 (id,prod_rid,versions_rid,hostid,hidden) 3 values(14152967, 10013252, 29300796, 44026, 0 ); 1 row created. SQL> insert into TEST 2 (id,prod_rid,versions_rid,hostid,hidden) 3 values(14152966, 10013252, 29300796, 44026, 0); 1 row created. SQL> create table PRI 2 (PROD_RID NUMBER, 3 VERSIONS_RID NUMBER, 4 PRI NUMBER 5 ); Table created. SQL> INSERT INTO PRI VALUES (10013252,29300796,13); 1 row created. SQL> SELECT id 2 FROM (SELECT row_number() over 3 (PARTITION BY hostid, prod_rid 4 order by pri DESC) row_n, 5 ID 6 FROM (SELECT prod.ID, 7 prod.HOSTID, 8 prod.PROD_RID, 9 mv.PRI 10 FROM TEST prod 11 JOIN PRI mv 12 ON (mv.VERSIONS_RID = prod.VERSIONS_RID 13 AND mv.PROD_RID = prod.PROD_RID) 14 WHERE HIDDEN = 0 15 ) x 16 ) y 17 WHERE y.row_n > 1; ID 14152967 SQL> 2 3 4 5 22 UPDATE TEST SET HIDDEN = 4 WHERE ID IN ( <<the 17 lines of the above SELECT id query>> );
1 row updated. SQL> select id,hidden from test; ID 14152967 14152966 HIDDEN 0 4
53
does not exist in my database anymore. And therefore it exists to save you from a grievous error in logic. If this trigger were able to workif the trigger were permitted to read TABLE_X while firingit would lead to nondeterministic outcomes from exactly the same SQL executed against exactly the same data (which is very reminiscent of the first question in this column). Ill explore why that is in a moment. But first Id like to comment on . . . I am using triggers because it is an enhancement. . . I am not a fan of that reasoning. Software exists to be changedthat is why it is called software and not hardware. Hardware is the stuff we have to live with as is. Software is malleable, changeable. Triggers are horrible for trying to automagically slide a change into production. They come with so many side effects and long-term downsides. Ive written about this before in The Trouble with Triggers (bit.ly/12og7Ip). Your attempt at a trigger is a classic example of why triggers can be so bad. If the trigger were allowed to work, it would leave your data in an inconsistent stateor even worse, in a different state in two different databases that contained exactly the same data to start with! For example, lets assume that you do an UPDATE to SOME_DATE_COL. This UPDATE affects more than one row. If this trigger worked if this trigger could read TABLE_X while the UPDATE was taking placethink about what would or could happen. In this hypothetical situation, every time a row is updated, the trigger tries to read the max value, but remember: you are updating SOME_DATE_COL, so you are reading the table in the middle of the UPDATE, while the data is being updated (hypothetically, because Oracle Database doesnt actually allow such a bad thing to happen). You will possibly read a max value that was never a max value at any point in time. You will read and process data that should never have been seen. For example, first suppose the data in the table is
...... ....... 01-JAN-2012 ...... 02-JAN-2012 ........
and also suppose that your UPDATE just happens to hit the rows in that order. Now assume the UPDATE you executed is
update table_x set some_date_col = some_date_col + 5 .......;
That will change 01-jan to 06-jan and then 02-jan into 07-jan. Now, in truth, the only max(SOME_DATE_COL) values ever in this table were 02-jan (before the UPDATE)
and 07-jan (after the UPDATE). However, what will your trigger hypothetically see? It will see 01-jan get turned into 06-jan, and it will read that result and process it as if that had been the max date at some point. But it never was. Never. And then your trigger will process 07-jan as the max date for the second row. But it will do that only if the UPDATE hits those rows in that specific order. What if the rows are processed in this order instead?
54
ask tom
....... ......
In this case, given the same exact set of data, the same data, just processed in a different order because of the way the rows existed on disk, you will get an entirely different answer! This is eerily similar to the first question in this column about the nondeterministic analytic function. The actual order of the rows on disk affects the answer! So, Oracle Database does not permit such behavior in a trigger. Oracle Database does not allow you to program such inconsistencies into your application. Oracle Database will not allow you to query a table in the middle of modifying that table. The bugsthe strange order-dependent bugs this would introduce into applications would be unbelievable. I strongly (as strongly as I can) encourage you to abandon the trigger and implement the code logic you need as a straightforward code change. Remember: software exists to be modified, and that is why we call it software (and not hardware). I hesitate to post this next link, but you could find it easily enough by searching. bit.ly/19hg5Dp shows how to postpone the processing of the modified data until an AFTER trigger, when the table is stable. In Oracle Database 11 g and above, you could use a compound trigger in place of the three triggers I demonstrated in this linked text, but the logic would be the same. But please give serious consideration to not using triggers for what should be a code change. Query Works in an Anonymous Block but Not in a Procedure My cursor query works fine in an anonymous block but fails to find any data in a PL/SQL block. The code is declare cursor c1 is select object_name from all_objects where owner='IRIS_DATA' and object_type='SEQUENCE'; v_string varchar2(2000);
begin for c2 in c1 loop v_string := 'DROP SEQUENCE IRIS_DATA.'||c2.object_name; execute immediate v_string; end loop; end; When I execute it as an anonymous block, it works fine. When I make it a stored proce-
dure, however, it executes but doesnt find any sequences to process. I coded this procedure in a CLONEDEV schema and granted the privileges below as SYS to the CLONEDEV user: GRANT DBA TO CLONEDEV; GRANT SELECT ANY TABLE TO CLONEDEV; GRANT ANALYZE ANY TO CLONEDEV; GRANT DELETE ANY TABLE TO CLONEDEV; GRANT INSERT ANY TABLE TO CLONEDEV; GRANT CREATE ANY TABLE TO CLONEDEV;
55
GRANT UPDATE ANY TABLE TO CLONEDEV; GRANT DROP ANY TABLE TO CLONEDEV; GRANT ALTER ANY TABLE TO CLONEDEV; GRANT ALTER ANY TRIGGER TO CLONEDEV; GRANT DROP ANY INDEX TO CLONEDEV; GRANT CREATE ANY INDEX TO CLONEDEV; GRANT ALTER ANY INDEX TO CLONEDEV; GRANT CREATE ANY SEQUENCE TO CLONEDEV; GRANT DROP ANY SEQUENCE TO CLONEDEV; GRANT SELECT ON ALL_TAB_COLUMNS TO CLONEDEV; GRANT SELECT ON ALL_CONSTRAINTS TO CLONEDEV; GRANT SELECT ON ALL_CONS_COLUMNS TO CLONEDEV; GRANT SELECT ON ALL_OBJECTS TO CLONEDEV; GRANT EXECUTE ON DBMS_STATS TO CLONEDEV; GRANT EXECUTE ON DBMS_FLASHBACK TO CLONEDEV; GRANT FLASHBACK ANY TABLE TO CLONEDEV; Ill refer you to bit.ly/13SzdXR, where you can see that roles are never enabled during the execution of a definers rights routine. By design, the ALL_OBJECTS view shows you things you can see with your current set of privileges. So if you disable roles, youll be able to see far fewer things in ALL_OBJECTS. For example
SQL> select count(*) from all_objects; COUNT(*) 72946 SQL> set role none; Role set. SQL> select count(*) from all_objects; COUNT(*) 56414
So that is the root cause. You are not able to see all sequences, even if you can create or drop any sequence. Now, that said, I dont like your approach, because I dont like these ANY privileges. This is, in fact, a good case for an invokers rights routine. Allow CLONEDEV to own this code, but have IRIS_DATA run the code. Then you need no special privileges at all. Consider the code in Listing 4. Do you see how very, very, very few privileges are necessary? And none of those extremely nasty ANY privileges is involved. If you are concerned about having to connect as IRIS_DATA because of passwords, that too can be solved. See the recent column On Becoming Others, Limits, and Restoration (bit.ly/10H3Yjv), for that solution. IRIS_DATA can enable clonedev to become IRIS_DATA by using clonedevs password, enabling you to accomplish your goal with very few privileges needed. Committing During an Import During import it seems that the entire table is imported and then committed, or in the event of an error, the entire table is rolled back. If I have a large table with millions of rows, can I do something in the import so that some rows are imported? Can the import commit the rows so that I have the data as well as free up the undo? Import (imp) does have a COMMIT parameter. It commits not after a fixed number of records, but rather after each array insert it performs, which you can control with the BUFFER parameter. I should point out, though, that if your table has LONG or LOB columns, the array size will be 1 in all cases. But because an INSERT generates very little undo (just a delete+rowid entry in the undo), it would be uncommon for you to need to use the COMMIT parameter. Very uncommon. Additionally, you should be using Oracle Data Pump import (impdp)not Import (imp)which will permit you to do a direct path insert. Direct path operations bypass undo generation, so there will be no undo to be concerned with. See Oracle Database Utilities 11g Release 2 (11.2), Overview of
Oracle Data Pump (bit.ly/ZTFxKZ), for details on that. In general, using COMMIT = Y for your import would be a really bad idea. If you started importing a table and committed the first batch of rows and then it failed for any reason, you would have no way to restart your import at the point of failure. You would have to truncate the table or drop it and start over. But in any case, use Oracle Data Pump import, and you wont have to worry about undo generation.
Next Steps
ASK Tom Tom Kyte answers your most difficult technology questions. Highlights from that forum appear in this column. asktom.oracle.com FOLLOW Tom on Twitter @OracleAskTom READ more Tom bit.ly/omagasktom Expert Oracle Database Architecture: Oracle Database 9i, 10g, and 11g Programming Techniques and Solutions, Second Edition amzn.to/ckGXaR READ more about deterministic queries bit.ly/Z6nxLL trigger troubles bit.ly/12og7Ip bit.ly/19hg5Dp definers and invokers rights bit.ly/13SzdXR bit.ly/10H3Yjv Oracle Data Pump bit.ly/ZTFxKZ DOWNLOAD Oracle Database 11g bit.ly/epBiUG FOLLOW Oracle Database on Twitter @oracledatabase on Facebook facebook.com/oracledatabase
56
Time Capsule
BY RICH SCHWERIN
Just a Hobby
Im doing a (free) operating system (just a hobby, wont be big and professional like gnu) for 386(486) AT clones. 21-year-old Finnish university student Linus Torvalds, in a post on the comp.os.minix Usenet group asking for feedback on his kernel. That kernel became Linux, the largest open source development project in the history of computing.
1995
2006
OpenJDK
Duke digs open source Java and gets the source code via the Open Java Development Kit (OpenJDK), a free and open source implementation of Java Platform, Standard Edition.
1991
Braveheart wins the Oscar for best film. The Rock and Roll Hall of Fame opens in Cleveland, Ohio. And in Sweden, two Swedes and a Finn release MySQL. Eighteen years and more than 100 million copies downloaded or distributed later, its the worlds most popular open source database.
1999
Four years after developing the Apache HTTP Server, a group of developers forms the nonprofit Apache Software Foundation, a community of free and open source software developers and users. Today, the foundation provides organizational, legal, and financial support for more than 140 open source software projects such as Apache Hadoop, OpenOffice, and Struts.
2000
Code Rush
Filmed during Netscape Communications
final year as an independent company, Code Rush is a PBS documentary focused on a group of Netscape engineers facing an impossible deadline to release the open source version of Netscapes internet software. Learn more and watch the film at clickmovement .org/coderush.
2006
Oracle Unbreakable Linux Support
Eight years after releasing the first commercial RDBMS for Linux, Oracle introduces the same enterprise-class support for Linux that it provides for its database, middleware, and applications products. Penguins join Oracle CEO Larry Ellison on stage at Oracle OpenWorld for the announcement.
YOUR TURN
Without communities of dedicated developers, open source is a nonstarter; code doesnt write itself. So, developers, its your turn to open your time capsule. What was the first programming language you worked with? Any COBOL or Fortran veterans out there? Visit Facebook/OracleMagazine and let us know. bit.ly/orclmagfb
JIM SUGAR/CORBIS IMAGES
Performance
IBMs Power7+ AIX
Oracles SPARC T5
Performance:
2.6x Better
10,902
Server Cost: Performance:
27,843
Server Cost:
$805,000
$299,000
SPEC and the benchmark name SPECjEnterprise are registered trademarks of the Standard Performance Evaluation Corporation. Virtualized results on spec.org as of 5/21/2013 for application and database on one 8-chip server. SPARC T5-8, 27,843.57 SPECjEnterprise2010 EjOPS, pricing on oracle.com; IBM Power 780, 10,902.30 SPECjEnterprise2010 EjOPS, pricing on ibm.com. Server cost excludes storage and software. Details: oracle.com/sparc-t5. Copyright 2013, Oracle and/or its affiliates. All rights reserved.