60
PL/SQL shouldn't be Genetics get flabbergasted... SCAN THIS PAGE WITH LAYAR APP FOR ADDED EXPERIENCE Oracle development made easy! We think Oracle development should be like taking a walk in the park. Easy development is the key to saving time and money. That’s why we created the PL/SQL Developer tool. As simple as 1, 2, 3! www.allroundautomations.com/plsqldev

oracle20140708-dl

Embed Size (px)

DESCRIPTION

Oracle Magazine july 2014

Citation preview

Page 1: oracle20140708-dl

PL/SQL shouldn't beGenetics

get flabbergasted...SCAN THIS PAGE

WITH LAYAR APP FOR

ADDED EXPERIENCE

Oracle development made easy!

We think Oracle development should be like taking a walk in the park.

Easy development is the key to saving time and money. That’s why

we created the PL/SQL Developer tool. As simple as 1, 2, 3!

www.allroundautomations.com/plsqldev

Page 2: oracle20140708-dl

JULY/AUGUST 2014

Big Data Integration Oracle NoSQL Database 3.0 gets more involved in big data strategies and deployments / 14 Building Bridges Are organizational silos thwarting IT architecture goals? / 20 Managing Expressly Manage Oracle Database 12c with Oracle Enterprise Manager Database Express / 37 The Joy of Low-Hanging Fruit Are you taking advantage of BULK COLLECT and FORALL? / 43 On Table Updates and SQL Plan Baselines Our technologist updates tables quickly via CTAS and optimizes queries for evolution / 49

SUCCESS ON SPARCThe latest SPARC chips and systems are at the center of better business processes

JA14_Cover_R1.indd 1 6/6/14 9:52 AM

Page 3: oracle20140708-dl

omg0714pCov2-p001.indd 2 6/4/14 4:31 PM

Page 5: oracle20140708-dl

JULY/AUGUST 2014 ORACLE.COM/ORACLEMAGAZINE

CONTENTS2 VOLUME XXVIII - ISSUE 4

Cover: I-Hua Chen

EVENTS / 6Find out about upcoming technology and industry events.

RESOURCES / 8Your guide to Oracle videos, webcasts, podcasts, white papers, and more

BRIEFS / 10The latest product news

INTERVIEW / 14Big Data IntegrationAs NoSQL technology evolves, Oracle NoSQL Database 3.0 gets more involved in big data strategies and deployments. —Tom Haunert

PARTNER NEWS / 16BOOK BEAT / 16COMMUNITY BULLETIN / 19Happenings in Oracle Technology Network —Roland Smart

ARCHITECT / 20Building BridgesOrganizational silos thwarting IT architecture goals? Put away the sledgehammer. —Bob Rhubart

PEER-TO-PEER / 21Close EncountersThree peers extol the virtues of in-person classes and conferences. —Blair Campbell

IN THE FIELD / 54Learning Circle, Part 1President Alyssa Johnson talks about OAUG’s evolving mission and commitment to innovation through community. —Carol Hildebrand

ANALYST / 55Deploy Applications in Different EnvironmentsOrganizations look to today’s application server platforms to run high-performance enterprise applications and services. —David Baum

TIME CAPSULE / 56Flashbacks: Culture. Industry. Oracle. Oracle Magazine. —Rich Schwerin

ORACLE ADF / 33Region Extreme: Multi-Task-Flow BindingRender an unknown number of task flows in page or dashboard regions. —Frank Nimphius

MANAGEABILITY / 37Managing ExpresslyManage Oracle Database 12c with Oracle Enterprise Manager Database Express, a built-in browser-based graphical tool. —Arup Nanda

PL/SQL / 43The Joy of Low-Hanging FruitAre you using BULK COLLECT and FORALL for bulk processing yet? —Steven Feuerstein

ASK TOM / 49On Table Updates and SQL Plan BaselinesOur technologist updates tables quickly via CTAS and optimizes queries for evolution. —Tom Kyte

At Oracle / 6

Community / 16 Technology / 33 Comment / 54

FROM THE EDITOR / 5The Cloud OS—Tom Haunert

Up Front / 5

Consolidating older and underperforming servers onto newer and more-efficient servers running a high-performance operating system and low-overhead virtualization technology adds new enterprise capacity and processing power to cost-cutting consolidation projects. Read how organizations are turning to the new generation of SPARC servers and the Oracle Solaris operating system for better business processes and a better bottom line. —Philip J. Gill / 26

SUCCESS ON SPARC

JA14_TOC.indd 2 5/29/14 10:40 AM

Page 6: oracle20140708-dl

3

oracle magazine July/August 2014

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 [email protected] 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 [email protected].

copyright © 2014, oracle and/or its affiliates. All Rights Reserved. No part of this publication may be reprinted or other wise 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 Oracle’s 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-3A, Redwood City, CA 94065-1600. Periodicals Postage Paid at Redwood City, CA, and additional mailing offices. • POSTMASTER: Send address changes to: Oracle Magazine, P.O. Box 1263, Skokie, IL 60076-8263.

Printed by Brown Printing

reSourceSoracle products +1.800.367.8674 (US/Canada)oracle Services +1.888.283.0591oracle press books oraclepressbooks.com

editorialeditor in chief Tom Haunert [email protected] editor Jan Rogers [email protected]

associate editor Patty Waddingtoncontributing editor and Writer Blair Campbell

technology advisor Tom Kytecontributors Rich Schwerin, Leslie Steere

deSignSenior creative director Francisco G Delgadillo

Senior design director Suemi Lamdesign director Richard Merchán

contributing designers Jaime Ferrand, Arianna Pucherelliproduction designers Sheila Brennan, Kathy Cygnarowicz

publiShingpublisher Jennifer Hamilton [email protected] +1.650.506.3794

associate publisher and audience development director Karin Kinnear [email protected] +1.650.506.1985

advertiSing SaleSpresident, Sprocket media Kyle Walkenhorst [email protected] +1.323.340.8585

Western and central uS, lad, and canada, Sprocket media Tom Cometa [email protected] +1.510.339.2403eastern uS and emea/apac, Sprocket media Mark Makinney [email protected] +1.805.709.4745

advertising Sales assistant, Sprocket media Cindy Elhaj [email protected] +1.626.396.9400, x201mailing-list rentals Contact your sales representative.

editorial boardIan 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

JA14_TOC.indd 3 5/29/14 10:41 AM

Page 7: oracle20140708-dl

Copyright © 2014, 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.

oracle.com/partners/goto/exastack

ISV AppsRun Betteron Exadata

Over 700 ISV Applications Are Certified on Exadata

30x Lower CPU Utilization

6x Less Storage Used

90% Linear Scalability

70:1 Compression

30x More Scalable

Page 8: oracle20140708-dl

5From The ediTor

oracle magazine July/August 2014

The Cloud OSIn cloud computing, the OS is more important than ever.

I n November 2011, Oracle introduced Oracle Solaris 11—the first cloud OS.

In April 2014, Oracle introduced Oracle Solaris 11.2, with updated cloud features. A cloud OS must do more than update fea-tures, however, and Oracle Solaris certainly does more, with new cloud features and technologies that will continue to open the cloud to high-performance mission-critical applications.

OngOIng EvOlutIOnOracle Solaris 11.2 feature updates deliver better performance for Oracle environ-ments running the cloud OS, including kernel mode acceleration, which delivers performance acceleration for Oracle Real Application Clusters; memory prediction technology, which enables lower memory utilization; and a new shared memory model and other Oracle Database co– engineered enhancements.

Perhaps one of the most overlooked ongoing features of all recent Oracle Solaris releases has been the guarantee. The Oracle Solaris Guarantee Program ensures that even as new Oracle Solaris releases support new features, binary applications and source code developed for earlier releases of Oracle Solaris will continue to run on newer releases.

OpEn REvOlutIOnOracle Solaris 11.2 includes built-in, efficient enterprise cloud virtualization. Oracle Solaris Zones, for example, have been enhanced in the new release to include support for fully independent and isolated environments, called kernel zones. Also new in the cloud OS, application-driven software-defined- networking support, from application to

storage, helps to ensure that application service-level agreements are maintained within data center and cloud environments. One new feature of the Oracle Solaris 11.2 cloud OS, however, has received the most attention: a complete OpenStack distribution.

OpenStack is an open source cloud project, and the OpenStack distribution in Oracle Solaris is a foundation for building an Oracle Solaris–based cloud. OpenStack in Oracle Solaris 11.2 provides a central loca-tion for managing compute, networking, and storage resources. With OpenStack, Oracle VM templates, and the new unified archives capability, organizations can deploy a single-system, multi-virtual-machine OpenStack environment in a matter of minutes.

New features mean new choices. For vir-tualization, Oracle Solaris 11.2 supports mul-tiple virtualization technologies, including Oracle Solaris Zones and Oracle VM Server for SPARC. In addition to the option to build Oracle Solaris–based clouds with OpenStack, Oracle Solaris 11.2 offers the choice to build clouds based on the Oracle Optimized Solution for Enterprise Cloud Infrastructure.

EstablIshEd InstItutIOnFrom OpenStack to an open invitation: The institution that is Oracle OpenWorld San Francisco runs September 28 through October 2, 2014, and registration is now open at oracle.com/openworld. Be part of the latest Oracle announcements, explore Oracle partner solutions, listen to other Oracle customers, network, and be part of the cloud computing conversation.

tom haunert, Editor in [email protected]

READ more about Oracle Solarisoracle.com/technetwork/server-storage/solaris11bit.ly/1juvxQSOracle Solaris Guarantee Programbit.ly/1mHegIUOpenStackbit.ly/1juvEMo

NExT STEPS

CONNECT: bit.ly/aVgo69 bit.ly/orclmagfb twitter.com/oraclemagazine linkd.in/orclmag

Send your opinions about what you read in Oracle Magazine, and suggestions for possible technical articles, to [email protected]. You can also follow our @oraclemagazine Twitter feed or join us on Facebook at bit.ly/orclmagfb. Letters may be edited for length and clarity and may be published in any medium. We consider any communications we receive publishable.

SEND MAil TO ThE EDiTORS

JA14_Ednote.indd 5 6/2/14 10:23 AM

Page 9: oracle20140708-dl

6

july/august 2014 Oracle.cOm/Oraclemagazine

events

Technology EventsConferences and sessions to help you stay on the cutting edge

Flash Memory SummitAugust 5–7, Santa Clara, Californiafflashmemorysummit.comThis three-day event includes tutorials, in-depth sessions, hands-on labs, and keynotes from industry experts. Tutorials cover flash tech-nology, architectures, solid-state drives, hard-ware, testing, storage, and applications.

XChange 2014August 17–19, San Antonio, Texasfbit.ly/1mYQd7dXChange 2014 features sessions and demos focused on IT topics such as cloud computing, storage optimization, networking, virtualization, security, mobility, and connectivity.

Quest INFOCUS ANZ User Group Annual ConferenceAugust 18–19, Melbourne, Australiafbit.ly/1h8Gc7vSponsored by Quest International Users Group, this conference features content related to Oracle’s JD Edwards products and Oracle Fusion Applications.

USENIX Security SymposiumAugust 20–22, San Diego, Californiafbit.ly/1qf8i1iThis symposium brings together researchers, practitioners, systems administrators, and systems programmers and includes refereed papers, panel discussions, and Birds-of-a-Feather sessions.

Midsize Enterprise Summit WestSeptember 14–16, Dallas, Texasfxchange-events.com/mesw14This conference brings together more than 220 CIOs and senior-level IT decision-makers to meet with top technology vendors and analysts to offer insight into the ever-changing midsize market.

MobileHCISeptember 23–26, Toronto, Ontario, Canadafmobilehci.acm.org/2014MobileHCI covers the field of human-computer interaction (HCI) and is the premier forum for inno-vations in mobile, portable, and personal devices and the services to which they enable access.

DEMO AfricaSeptember 25–26, Lagos, Nigeriafdemo-africa.comDEMO Africa is the initiative of the Liberating Innovation in Opportunity Nations partnership, aimed at enhancing the technology startup and innovation ecosystems of fast-growing African economies.

Oracle OpenWorldSeptember 28–October 2 San Francisco, CaliforniaOracle OpenWorld is the most important educational and networking event of the year for Oracle technolo-gists, customers, and partners. Thousands of sessions and hundreds of demos and labs help attendees dis-cover new product and technology solutions, improve their technical proficiency and knowledge, learn tips and tricks for currently installed products, and gain an understanding of where the industry is headed. Register at oracle.com/openworld

OrACLE USEr GrOUpS

Burlington ruby ConferenceAugust 2–3, Burlington, Vermontburlingtonruby.com

German Oracle Users Group regional MeetingAugust 4, Hamburg, Germanydoag.org

South African Oracle User Group Hr/HCM SIG MeetingAugust 8, Johannesburg, South Africasaoug.co.za

NoCOUG 2014 Summer ConferenceAugust 21, San Ramon, Californianocoug.org

Austin Java Users Group MeetingAugust 26, Austin, Texasaustinjug.org

Suncoast Oracle Users Group MeetingAugust 26, Tampa, Floridasoug.org

Dallas Oracle Users Group Oracle Database 12c New FeaturesAugust 28, Irving, Texasdoug.org

UKOUG Development SIG MeetingSeptember 9, Reading, Englandukoug.org

Central States Oracle Application Users Group Executive LuncheonSeptember 12, St. Louis, Missouricsoaug.com

All India Oracle Users Group Tech DaySeptember 14, Kerala, Indiaaioug.org

UKOUG Business Intelligence and reporting Tools SIG MeetingSeptember 17, London, Englandukoug.org

OAUG South Australia Meeting September 24, Adelaide, Australiaausoug.org.au

OUG Ireland HCM SIG MeetingSeptember 24, Dublin, Irelandukoug.org

JÖSH

UA B

ARNE

TT/F

LICK

R

Oracle Eventsoracle.com/eventsLocate User Groupsoracle.com/technetwork/community

EvENTS LOCATOrrEGISTEr for these upcoming Oracle eventsOracle OpenWorld 2014September 28–October 2oracle.com/openworldJavaOneSeptember 28–October 2oracle.com/javaone

JA14_Events.indd 6 5/19/14 2:31 PM

Page 10: oracle20140708-dl

Copyright © 2014, 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.

Register at oracle.com/openworld

SEpt. 28 - Oct. 2, 2014San FranciScO

rEGiStEr nOWSave $500 by July 18th

2,500 Sessions | 475 Exhibitors | 400 Demos

Page 11: oracle20140708-dl

8

JULY/AUGUST 2014 Oracle.cOm/Oraclemagazine

resOurces

What’s New at OracleThe latest videos, podcasts, blogs, and more

VideOsBetter Clouds at Lower Costs fbit.ly/1n8L5hdLearn how to build efficient clouds with Oracle’s SPARC servers running Oracle Solaris.

Simplify Your Business with Oracle Business Analyticsfbit.ly/1g90cWzLearn how to keep costs down without sacrificing performance or data quality for discovery, busi-ness intelligence, and planning applications.

Why Move Business Applications from IBM to Oraclefbit.ly/1iljLHdImprove performance and efficiency and reduce costs by moving enterprise applications from IBM Power to Oracle’s SPARC servers.

Oracle Real-World Performance Video Seriesfbit.ly/QtTs2bOracle’s Real-World Performance team shares best practices and performance methodologies to help you make the most of your Oracle Database investment.

WebcasTs“ Ricoh americas delivers on anytime,

anywhere Promise with cloud and On-Premises integration”fbit.ly/1r5GxbsDiscover the rewards of using Oracle AppAdvantage for SOA-based cloud, on- premises, and mobile integration initiatives.

“spend Testing Time More effectively”fbit.ly/OKNXVkExplore the latest trends in software testing that allow you to deploy higher-quality applications in less time.

“ Top data Warehouse Trends and Opportunities for 2014”fbit.ly/1dy5Gvq

Discover the data management issues that CIOs are most eager to solve.

WHiTe PaPeRs“ simplify the Migration of Oracle database

and Oracle applications from ibM aiX to Oracle solaris”fbit.ly/1egb5WbLearn the four steps required to migrate from AIX to Oracle Solaris, and explore an example that illustrates the effort, duration, and benefits of the migration.

“ The Top 10 Reasons to choose MysQL for Next-Generation Web applications”fbit.ly/1lhPL3eGain a better understanding of why MySQL is the best choice for modern web-, mobile-, and cloud-based applications.

POdcasTs“Oracle cloud, Featuring demand analysis”fbit.ly/1qj5etaHear Peter Mulligan, Demand Analysis cofounder and vice president of sales and marketing, discuss why his company chose Oracle Cloud for its customer intelligence solution.

“ Making the Right storage choices: Part 1—High availability“fbit.ly/1hc2cTvLearn the characteristics of highly available systems and their impact on the efficiency and performance of your storage architecture.

sOciaL MediaOracle President Mark Hurd on Linkedin influencer blogflinkd.in/1ernjibRead Oracle President Mark Hurd’s posts about enterprise IT mandates, executive leadership, customer imperatives, and innovation.

Oracle’s instantis Page on Linkedinflinkd.in/1sb0wcTJoin other project portfolio management profes-

sionals to discuss improving strategy execution, operational excellence, and financial performance.

e-bOOKsOracle Applications Together with Oracle Systems: From the Customer’s Perspectivefbit.ly/1rFN8goHear from current Oracle customers about how running Oracle Applications on Oracle systems simplifies IT and delivers speed and efficiency.

ResOuRce ceNTeRs data integration for Oracle applicationsfbit.ly/1ht6XeyAccess white papers, customer testimonials, and more that illustrate how to gain incremental value by using best-in-class data integration solutions.

ORacLe uNiVeRsiTycomplete Oracle solaris 11 curriculum fbit.ly/1i1Rdr3Quickly obtain the skills needed to manage mission-critical cloud deployments.

New Oracle WebLogic server 12c curriculumfbit.ly/1hMlzKGExplore training and certification for Oracle WebLogic Server 12c.

Oracle consultingoracle.com/consultingOracle events and Webcastsoracle.com/eventsOracle Newslettersoracle.com/newslettersOracle Podcast centeroracle.com/podcastsOracle universitybit.ly/ouoramagOracle supportoracle.com/supportMy Oracle supportmyoraclesupport.comMy Oracle support communities communities.oracle.com

Web LOcaTOR

CONNECT: oracle.com/blogs facebook.com/oracle twitter.com/oracle linkedin.com/company/oracle bit.ly/LdGiM0

JA14_Resources.indd 8 5/19/14 2:19 PM

Page 12: oracle20140708-dl

Simple: We are committed to making our solutions the easiest to

install, configure, and integrate into either existing IT systems or data

centers — or new build-outs. We ship our solution as “ready to install”

as possible (e.g., tool-less rack PDU installation and standard cable

management features). With our easy-to-configure infrastructure,

you can focus on more pressing IT concerns such as network threats.

Solution guides for quic

and easy deployment!

for any IT space!

Adaptable: Our solutions can be adapted to f t any IT conf guration

at any time — from small IT to data centers! Vendor-neutral

enclosures, for example, come in different depths, heights, and widths

so you can deploy your IT in whatever space you have available —

from small IT or non-dedicated spaces to even large data centers.

Business-wise, Future-driven.™

©2014 Schneider Electric. All Rights Reserved. Schneider Electric, APC, InfraStruxure, and Business-wise, Future-driven are trademarks owned by Schneider Electric Industries SAS or its affiliated companies. All other trademarks are the property of their respective owners. www.schneider-electric.com • 998-1155587_GMA-US_Note3

Make the most of your IT space! Download best practices and enter to win a

Samsung Galaxy Note™ 3!Visit: www.apc.com/promo Key Code: i770u

Simple. Adaptable.Manageable.

Manageable: Local and remote management are

simplif ed with “out-of-the-box” UPS outlet control,

integrated monitoring of the local environment, and

energy usage reporting. Manageability over the network

and robust reporting capabilities help you prevent

IT problems and quickly resolve them when they do

occur — from anywhere! What’s more, our life cycle

services ensure optimal operations.

Monitor and manage your

IT spaces from anywhere!

Integrated InfraStruxure™ solutions include everything for your IT physical infrastructure deployment: backup power and power distribution, cooling, enclosures, and management software. Adaptable solutions scale from the smallest IT spaces up to multi-megawatt data centers.

Easy-to-deploy IT physical infrastructureSolution guides make it easy to determine what you need to solve today’s challenges. The core

of our system, vendor-neutral enclosures and rack PDUs, makes deployment incredibly headache-

free. Easily adjustable components, integrated baying brackets, pre-installed leveling feet, and

cable management accessories with tool-less mounting facilitate simple and fast installation.

Page 13: oracle20140708-dl

10 Product Resources

JULY/AUGUST 2014 ORACLE.COM/ORACLEMAGAZINE

TUTORIALS AND VIDEOSJava SE 8 Technical VideosDive into the new features of Java SE 8 with this series of technical videos covering the Internet of Things, Java ME, Oracle Java Embedded, and Java SE.�bit.ly/1kexe6Z

How Oracle ZFS Storage Appliance Lowers Backup Risk and Cost Oracle Vice President Steve Zivanic explains how Oracle ZFS Storage Appliances including the new Oracle ZFS Storage Appliance ZS3-BA help reduce backup and recovery risks and cost.�bit.ly/1gtwTRj

How to Upgrade Oracle’s SPARC T5-4 Server Processor Watch this step-by-step animation to learn how to upgrade a SPARC T5-4 server from a one-processor to a four-processor configuration.�bit.ly/1mRX9X6

How to Upgrade Oracle’s SPARC T5-8 Server Processor Follow the steps for upgrading a SPARC T5-8 server from a four-processor to an eight-processor configuration in this ani-mation, which covers preparing the new processor modules, removing the processor filler modules, installing the new processor modules, and more.�bit.ly/1j9JoQF

DOWNLOADSOracle NoSQL Database 3.0Release 3.0 of Oracle NoSQL Database offers developers an enhanced NoSQL solution for building high-performance, next-generation applications providing increased security, simplified data mod-eling, secondary indexes, and multi-data-center performance enhancement.�bit.ly/1kmj8lv

Oracle Database Migration Assistant for Unicode 2.0 Oracle Database Migration Assistant for Unicode 2.0, released in March 2014, sup-ports the migration of Oracle Database 12c pluggable databases to Unicode. Other new features include enhanced bulk cleansing features with pattern-based replacement to resolve certain classes of data convertibility issues and improved conversion error-handling mechanisms.�bit.ly/1kez1ZT

Oracle Extends Cloud with Database and Storage Cloud Services Oracle has announced two new Oracle Cloud services, Oracle Database Backup Cloud Service and Oracle Storage Cloud Service.

Oracle Database Backup Cloud Service provides a scalable, low-cost Oracle Database cloud backup solution and is tightly integrated with Oracle Recovery Manager (Oracle RMAN), allowing cus-tomers to use familiar Oracle RMAN commands for performing backup and recovery operations between on-premises databases and Oracle Cloud. Oracle Storage Cloud Service enables organizations to securely store, access, and manage data in the cloud. Oracle Storage Cloud Service is API-compatible with OpenStack Swift and provides access to data through REST and Java APIs.

“To remain competitive in today’s highly connected business environment, organiza-tions are increasingly adopting and building new cloud-based solutions. There is also a huge push to migrate existing on-premises workloads to the public cloud and support portability between on-premises and cloud environments,” says Chris Pinkham, senior vice president of cloud product develop-ment at Oracle. “To help customers achieve these goals, Oracle has further expanded its comprehensive set of enterprise-grade infrastructure cloud services. The new services are based on open standards, integrated to work together seamlessly, and designed to support full portability between on-premises and cloud environments.”

oracle.com/cloud

Oracle Configure, Price, and Quote Cloud Advances On-the-Go Sales With the latest release of Oracle Configure, Price, and Quote Cloud (Oracle CPQ Cloud), sales professionals and partners can now access the entire Oracle CPQ suite via mobile tablets from anywhere, anytime, and stay productive while on the go.

Oracle CPQ Cloud streamlines the sales process from inquiry to order by enabling sales staff and partners to generate sales quotes, orders, and proposals quickly and accurately—from anywhere, on any device. New enhancements include formula man-

agement, enabling administrators to create complex pricing and discounting calcula-tions in a drag-and-drop interface without scripting or advanced rules.

“Oracle CPQ Cloud helps improve cus-tomer satisfaction and sales efficiency,” says Ken Volpe, senior vice president of Oracle product development. “Its integra-tion into Oracle CX Cloud enables sales teams to sell more and sell faster, from lead to order and service through renewal.”

bit.ly/1iuQiLo

Oracle Virtual Compute Appliance X4-2: Turnkey Solution for Cloud Oracle Virtual Compute Appliance X4-2, the newest release of Oracle Virtual Compute Appliance, is a “wire-once” engi-neered system that comes fully assembled and ready to run pro-duction workloads with minimal software-defined configuration.

Oracle Virtual Compute Appliance is a turnkey solution for flexible private cloud platforms that can be used with Oracle Enterprise Manager 12c to deploy cloud services

ranging from infrastructure as a service to database as a service with features such as automated provisioning, elasticity, and cloud governance.

“The Oracle Virtual Compute Appliance exemplifies Oracle’s unique ability to engineer hardware and software together, providing a superior solution that’s easy to deploy and use without requiring major infrastructure changes,” says Wim Coekaerts, senior vice president of Linux and virtualization at Oracle. “This engineered system can significantly cut provisioning time and offers investment protection by allowing customers to mix server genera-tions in the same rack.”

bit.ly/S2KlR2

JA14_Briefs.indd 10 5/21/14 2:24 PM

Page 14: oracle20140708-dl

11BRIEFS

ORACLE MAGAZINE JULY/AUGUST 2014

Oracle Marketing Cloud Adds Manufacturing Cloud Service The latest addition to Oracle Marketing Cloud, Oracle Eloqua for Manufacturing Cloud Service is a flexible and scalable cloud-based solution designed to help manufacturing organizations deliver per-sonalized experiences to customers and prospects while improving marketing out-comes and efficiency.

The new solution introduces industry-specific capabilities that enhance targeting and segmentation, increase engagement, improve measurement, and produce actionable reporting. With a full view of the buyer’s journey, insights into customer demand signals, and integrated business intelligence reporting, marketers in global manufacturing organizations are able to drive demand and improve the quality of leads that are passed to sales.

Oracle Eloqua for Manufacturing Cloud Service includes product registration capa-bilities that help deliver efficient product maintenance and subscription renewals, and it provides intuitive templates and

workflows that help marketers quickly and efficiently create and extend channel rela-tionships. Campaign tasks are automated and personalized across print, e-mail, web, and telemarketing channels.

“Manufacturing organizations want to improve engagement with customers and prospects across digital channels so that they can gain better visibility into their sales pipeline and grow their businesses,” says Steve Miranda, executive vice president for Oracle Applications development. “With capabilities developed specifically for man-ufacturers including prebuilt templates and leading business intelligence, Oracle Eloqua for Manufacturing Cloud Service helps man-ufacturers improve marketing effectiveness and drive revenue.”

bit.ly/1h7ygPZFor more about Oracle Marketing Cloud,

the modern marketing solution that inte-grates cross-channel, content, and social marketing with data management for the enterprise, visit bit.ly/1vcuRZQ.

MySQL 5.7 Available NowA new development milestone release for MySQL 5.7, available now, extends the performance, scalability, and reliability of MySQL and adds enhanced management capabilities. Available for download in the MySQL Developer Zone, the milestone release delivers improvements in replication, security, and instrumentation, resulting in significantly higher performance and improved manageability over MySQL 5.6.

“The latest MySQL 5.7 development milestone release delivers enhanced per-formance and management features to the MySQL community,” says Tomas Ulin, vice president of MySQL engineering at Oracle. “By encouraging ongoing community par-ticipation and following the ‘release early, release often’ model, we help shorten the feedback-to-delivery cycle and allow users to get faster access to improved product capabilities and quality.”

bit.ly/1mRYb5z

Oracle Identity Management 11g Release 2 Adds Advanced Security Features for Cloud and Mobile DevicesThe recently updated Oracle Identity Management 11g Release 2 includes enhancements that enable organizations to extend consistent access policies and controls beyond enterprise applications and systems to cloud-based systems and mobile devices.

Key new features and functionality in the latest release include • Oracle Mobile Security Suite. Secures cor-

porate applications and data on personal devices and delivers a consistent user experience across channels by extending identity services such as fraud detec-tion, user registration, and self-service password management to customer and employee digital interactions.

• Cloud access portal. Extends the range of enterprise single sign-on beyond Microsoft Windows desktops and enables users to have single-sign-on access to software-as-a-service applications from a simple and personalized launch pad, available on any device, tablet, or workstation.

• Oracle Mobile Authenticator. Provides

a mobile application to simplify strong authentication, replacing corporate-issued hardware tokens at a fraction of the cost.

• Expanded support for OAuth. Supports two- and three-legged OAuth as well as more-complex use cases of obtaining consent from a user before a third-party consumer application can access informa-tion on a service provider’s application site.

“With the latest release of Oracle Identity Management 11g Release 2, Oracle is providing organizations with the most advanced and comprehensive identity management platform,” says Amit Jasuja, senior vice president of identity manage-ment and security at Oracle. “As a result, organizations can realize the full poten-

tial of cloud and mobile applications while helping to ensure that valu-able company data remains secure.”

bit.ly/1pHvJVT

I-HU

A CH

EN

NetBeans IDE 8.0 Delivers Comprehensive Java 8 SupportNetBeans IDE 8.0, available now, allows developers to make efficient use of the latest features in Java Platform, Standard Edition 8 (Java SE 8) by quickly identifying and converting code to new Java language constructs, such as Lambda expressions and Java SE 8 Compact Profiles. The new release also further extends HTML5 support by adding new features for common JavaScript frameworks and introduces new tools for popular Java Platform, Enterprise Edition frameworks such as PrimeFaces.

Additional enhancements include Oracle Java SE Embedded 8 support for deploying, running, debugging, and profiling Java SE applications on an embedded device directly from the NetBeans IDE and support for the new Java Micro Edition 8 (Java ME 8) specifi-cation and Oracle Java ME Embedded 8.

“Java SE 8 represents a major advance-ment for the Java community,“ says Chris Tonas, vice president of mobility and devel-opment tools at Oracle. “NetBeans IDE 8.0 ensures that Java developers have the advanced tooling to support their adoption of this new technology.”

netbeans.org

JA14_Briefs.indd 11 5/21/14 2:24 PM

Page 15: oracle20140708-dl

12

JULY/AUGUST 2014 ORACLE.COM/ORACLEMAGAZINE

BRIEFS

Fujitsu and Oracle Enhance Fujitsu M10 Servers Fujitsu and Oracle have announced world-wide availability of enhanced Fujitsu M10-1, M10-4, and M10-4S servers equipped with the new SPARC64 X+ processor, which has 16 cores and runs at speeds up to 3.7 GHz.

The new Fujitsu M10-4S server sup-ports mixed SPARC64 X and X+ chassis in a single system, and the modular design and physical partition dynamic reconfiguration feature allow the Fujitsu M10-4S to grow by adding processors, memory, and I/O with virtually no downtime.

“The enhanced Fujitsu M10 servers offer a new option for customers seeking mission-critical computing solutions,” says Oracle Chief Corporate Architect Edward Screven. “Oracle and Fujitsu’s strong col-laboration furthers Oracle’s commitment to help customers accelerate their businesses by engineering hardware and software to achieve extreme performance.”

bit.ly/1j9KLP4

Oracle Sales Cloud Provides Anywhere, Anytime AccessBy giving sales reps a continuous and sim-plified experience on both desktop and mobile devices, even when in a discon-nected mode, the latest release of Oracle Sales Cloud offers anywhere, anytime access designed to achieve fast and wide user adoption. The latest release helps sales reps focus on the deals with the highest likeli-hood of closing and increases the predict-ability of achieving sales targets by deliv-ering real-time predictive analytics on both desktop and mobile devices.

Oracle Sales Cloud also helps customers preserve their existing IT investments and establish an easy path to the cloud by facili-

tating integration from on-premises sales force automation systems such as Oracle’s Siebel Customer Relationship Management and Oracle E-Business Suite applications.

“The enhancements to Oracle Sales Cloud reinforce Oracle’s commitment to deliver simple and smart sales automation solutions,” says Siva Sundaresan, group vice president for Oracle Sales Cloud. “With the latest release, Oracle Sales Cloud offers sales teams a simple design, more intelli-gence, and greater mobility to help optimize customer interactions, increase sales effec-tiveness and efficiency, and drive revenue.”

bit.ly/1hIJkHd

New Release of Oracle Business Intelligence Applications Improves Procure-to-Pay Processes and Talent ManagementOracle has announced Release 11.1.1.8.1 of Oracle Business Intelligence Applications, which includes prebuilt connectors between Oracle Procurement and Spend Analytics and Oracle’s JD Edwards EnterpriseOne and adds a new talent profile analytics module.

Built on Oracle Business Intelligence Foundation Suite, Oracle Business Intelligence Applications enable organi-zations to easily extend their business intelligence (BI) footprint or build custom

BI applications to meet specific analytics needs for line-of-business managers and executives.

“Oracle Business Intelligence Applications provide a critical platform for unlocking and analyzing enterprise-level and business-level insights,” says Paul Rodwick, vice president of product management at Oracle, “with the latest updates reducing the time and complexity to achieve a competi-tive advantage through data.”

bit.ly/1qnCZa1

Oracle Fusion Innovation Management Joins Oracle SCM PortfolioOracle Fusion Innovation Management, a new product value chain solution in the Oracle Supply Chain Management port-folio of applications, provides companies with a systematic approach for capturing, selecting, and investing in the right product ideas and managing their product portfolios. The new solution enables bottom-up innovation so all stakeholders can participate in the product invention and definition processes, with simulta-neous top-down financial impact analysis and strategic-fit visibility to the key port-folio owners during and post investment decision. It also enables organizations to define and manage different product development projects in the context of their overall product portfolio.

Oracle Fusion Innovation Management

integrates with Oracle’s Agile Product Lifecycle Management, helping to stream-line the process of moving concepts along to detailed design, development, and release to manufacturing while maintaining full vis-ibility into project status.

“By providing a highly usable but system-atic approach to managing product innova-tion, Oracle Fusion Innovation Management can accelerate the transformation of the best ideas into profitable products and deliver against your corporate product

innovation strategy,” says Jon Chorley, group vice president of Oracle’s supply chain management product strategy.

bit.ly/1mRXV6E

I-HU

A CH

EN

OpenStack Support for Oracle Linux and Oracle VMOracle has introduced a technology preview of an OpenStack distribution that allows Oracle Linux and Oracle VM users to work with the open source cloud software, pro-viding customers with additional choices and interoperability while taking advantage of the efficiency, performance, scalability, and security of Oracle Linux and Oracle VM. The distribution is delivered as part of the Oracle Linux and Oracle VM Premier Support offerings, at no additional cost.

“Oracle is working closely with the OpenStack community across many areas,” says Wim Coekaerts, senior vice president of Linux and virtualization at Oracle. “Oracle will continue to help deliver OpenStack capabilities to enable our customers to more efficiently deploy, manage, and support their large Oracle data center deployments.”

bit.ly/1iZVDPK

JA14_Briefs.indd 12 5/21/14 2:24 PM

Page 16: oracle20140708-dl
Page 17: oracle20140708-dl

14

July/August 2014 Oracle.cOm/Oraclemagazine

F ollowing the announcement of Oracle NoSQL Database 3.0, Oracle Magazine

sat down with Dave Segleau, director of product management at Oracle, to talk about the state of NoSQL, NoSQL use cases, and key features in Oracle NoSQL Database 3.0. Listen to the podcast at oracle.com/magcasts. Oracle Magazine: What is the role of NoSQL in the enterprise today?Segleau: NoSQL is part of the big data umbrella of technologies, and it plays a role in the architecture and deployment of big data solutions. NoSQL provides a cost-effective, high-performance, hori-zontally scalable database platform for very simple structured and semistructured data and simple operations at volume. Enterprises are adopting NoSQL databases because they offer very flexible application developer–centric data models and more-efficient operations for simple data struc-tures, which means that enterprises can increase revenue by providing new types of applications and services, as well as lower their overall IT costs. Oracle Magazine: How does NoSQL comple-ment other information technologies—including the relational database?Segleau: NoSQL was not designed as a general-purpose database engine, but rather it was designed to address a specific set of data management challenges. As such, it’s really a component within any enterprise data management solution. It complements Apache Hadoop and Hadoop’s distributed data processing by providing an equally distributed low-latency data-base platform for fast indexed data access directly from the MapReduce processes within Hadoop.

It complements relational databases by

providing a horizontally scalable high-speed database with relaxed transaction semantics specifically designed for high-volume, high-velocity distributed operations. This often results in NoSQL being used to create new applications or capture new data sets, or in some cases, to offload some of the data and operations from relational databases. NoSQL databases are never deployed in an isolated data management solution. Every one of our Oracle NoSQL Database customers deploys a combination of NoSQL, relational databases, and Hadoop together, using the technology that’s the best tool for the job at hand. Oracle Magazine: How are organizations using Oracle NoSQL Database today?Segleau: Based on the customers we’ve talked to who have adopted Oracle NoSQL Database, I can summarize the use cases into three basic types. First, we see a lot of companies using Oracle NoSQL Database for what I call web scale personalization and transactional applications. We often

see these kinds of applications in cus-tomer service and customer self-service. Industries for this kind of application include financial services, insurance, adver-tising, marketing, online catalogs, social media, and e-retail.

The second use case that we see often is Oracle NoSQL Database being used for real-time event processing, and we typi-cally see applications in fraud prevention, medical monitoring, factory automation, quality-of-service monitoring, and geo–location tracking.

And the third use case we often see is Oracle NoSQL Database being used for time-series data management. We typically see applications within financial services for managing stock and trading information as well as within utilities, oil and gas, and manufacturing for capturing sensor data.Oracle Magazine: What types of processes and what other technologies are typically involved in these use cases?Segleau: The technologies involved largely depend on the functionality that’s being implemented. In every case we’ve seen, there is definitely a relational database such as Oracle Database and a data warehouse in close proximity and, in fact, integrated with the data in the NoSQL databases. In many cases, especially with web scale personalization and time-series data management, Hadoop and MapReduce are also used to provide batch processing and simple summary statistics on the enormous amounts of data that are becoming available.

We also often see middleware technolo-gies integrated as part of a NoSQL-based solution. In particular, we see products such as Oracle Event Processing and Oracle Real-Time Decisions software used to process and manage real-time events as well as

Dave Segleau, Director of Product Management, Oracle

Big Data IntegrationAs NoSQL technology evolves, Oracle NoSQL Database 3.0 adds features and gets more involved in big data strategies and deployments.

Rex

RySt

eDt

JA14_Interview.indd 14 5/21/14 2:04 PM

Page 18: oracle20140708-dl

15

oracle magazine July/August 2014

interview By tom HAunert

caching products such as Oracle Coherence to cache both relational and nonrelational data in the same application cache grid. Oracle Magazine: Oracle recently announced a new release of Oracle NoSQL Database—Oracle NoSQL Database 3.0. Tell us about the key features of this release and how it is enabling better big data pro-cesses and results. Segleau: Oracle NoSQL Database 3.0 was released in early April 2014, and it includes some really interesting new features. The release includes a new table-based data model with support for secondary indexes, and it also includes support for secondary data centers, which we’re calling zones, as well as the first set of features around security. Oracle Magazine: Tell us more about the new table data model and secondary indexes features.Segleau: To facilitate adoption of NoSQL technology, it’s important to make it avail-able in a way that’s familiar to our customers and application developers. In that vein, Oracle NoSQL Database 3.0 adds a table-based data model, which allows developers to more easily represent their data and build applications more quickly. It’s a flexible data model implemented using JSON [JavaScript Object Notation] structures, for storage as well as for table evolution.

Along with the introduction of tables, Oracle NoSQL Database 3.0 adds secondary indexes, which can be built on any combi-nation of fields within a given record. The secondary indexes are colocated with the primary data on each shard in the Oracle NoSQL Database. The advantage of this is that reads and writes on the secondary index are very, very fast because they’re colocated with the primary record within the same shard. Additionally, the indexes are transactionally consistent and secondary index scans are automatically parallelized across the shards. This results in a highly efficient and scalable indexing scheme, which application developers can then take advantage of to meet the requirements of their high-volume, low-latency queries. Oracle Magazine: Tell us more about the new secondary data centers feature.Segleau: Oracle NoSQL Database introduced

support for data centers in Release 2.1, allowing enterprises to allocate resources, essentially storage nodes, across data centers with automatic replication and failover between the different resources. Oracle NoSQL Database 3.0 adds secondary data centers, which we’re now calling zones. Secondary zones allow enterprises to define remote data centers, which participate in global distribution via automatic asynchro-nous replication.

So not only is Oracle NoSQL Database 3.0 replicating the data, but the secondary data centers feature also enables applica-tions to define queries and workloads to be executed only on specific secondary zones. Using the feature, applications can run spe-cific workloads such as batch processing or reporting against secondary zones rather than impact the throughput and low-latency queries that are being executed within the primary zone. This combination of capabili-ties enables enterprises to ensure continuity through global disaster recovery planning and to manage query and application load balancing across and between primary and secondary zones. Oracle Magazine: Tell us more about the new security features enabled in the new Oracle NoSQL Database release.Segleau: Oracle NoSQL Database adds SSL [Secure Sockets Layer] encryption over the wire for both client/server and server-to-server communications, and it adds an operating-system-independent, cluster-wide password-based user authentication. Passwords can be stored in a secure, obfus-cated trust store or within the Oracle wallet. These two capabilities enable enterprises to provide greater protection from unauthor-ized access to sensitive data, as well as to protect from network intrusions. Oracle Magazine: How have NoSQL and Oracle NoSQL Database evolved, and what

are the business and technology challenges for NoSQL going forward?Segleau: The primary change that we’ve seen is that applications have moved from being science experiments to production deployments of mission-critical technology. This impacts the NoSQL technology industry in a couple of ways. First of all, the decision-makers have changed; it’s no longer just the application developers who are choosing which NoSQL product to use. Enterprise IT departments are becoming important influ-encers in choosing which NoSQL technology vendors to partner with.

The second change is a shift in product focus. In the early years of NoSQL, the tech-nology and feature focus was extremely developer-centric; it was all about feeds and speeds. But over the past year or so, security and system administration—especially of large, complex production deployments—has taken center stage. This evolution also affects the features that are included in Oracle NoSQL Database. This evolution in product focus emphasizes the need to provide integration with the overall existing Oracle IT technology, as well as to provide simple and automated administration capa-bilities that address the IT concerns around critical functions like disaster recovery, security, and global data integrity.

I think that the challenge for businesses is to identify technology partners, not just products, that share an integrated enterprise-centric view of how NoSQL extends their existing IT infrastructure.

LEARN more about Oracle NoSQL Databaseoracle.com/goto/nosql

LISTEN to the podcastoracle.com/magcasts

NExT STEpS

“Enterprises are adopting NoSQL databases because they offer very flexible application developer–centric data models and more-efficient operations for simple data structures.”

JA14_Interview.indd 15 5/21/14 2:05 PM

Page 19: oracle20140708-dl

16 Book Beat

JULY/AUGUST 2014 ORACLE.COM/ORACLEMAGAZINE

Partners Earn Oracle PartnerNetwork Specialized StatusTwo Oracle partners have earned Oracle PartnerNetwork Specialized status for their solutions. To achieve Oracle PartnerNetwork Specialized status, Oracle partners are required to meet a stringent set of require-ments that are based on the needs and prior-ities of the customer and partner community.

Aurionpro, an Oracle Platinum Partner, achieved Oracle PartnerNetwork Specialized status for Oracle Access Management Suite Plus 11g. Aurionpro delivers Oracle imple-

mentation services; enterprise IT services; and expertise in banking, financial services, and supply chain technology.

Black & Veatch, an Oracle Gold Partner, achieved Oracle PartnerNetworkSpecialized status for Oracle Utilities Customer Care and Billing. Black & Veatch provides technology solutions for natural gas, electric, and water utilities.

aurionpro.combv.com

Oracle PL/SQL Performance Tuning Tips & Techniques

By Michael Rosenblum and Paul DorseyOracle Pressoraclepressbooks.com

Oracle PL/SQL Performance Tuning Tips & Techniques is a hands-

on intermediate guide for developers and programmers wanting to achieve results by deploying the latest and best methods for improving overall speed, reliability, and security. Readers will learn expert performance-tuning methods that draw on decades of professional experience. A number of real-world examples are included in the book.

Predictive Analytics Using Oracle Data Miner: Develop and Use Data Mining Models in ODM, SQL, and PL/SQL

By Brendan TierneyOracle Pressoraclepressbooks.com

This essential how-to guide is written for data scientists, data miners, data analysts, Oracle

developers, and database administrators.Predictive Analytics Using Oracle Data Miner shows how to build and apply advanced data mining models and perform data mining tasks in SQL and PL/SQL. The book includes guidance on how to migrate data mining models from a test environment to a production environment.

Oracle ADF Enterprise Application Development—Made Simple, Second Edition

By Sten E. VesterliPacktpacktpub.com

Updated for the latest release, Oracle ADF Enterprise Application Development—Made

Simple, Second Edition explains how to optimize Oracle Application Development Framework 12c (Oracle ADF 12c) tech-nology. Readers will walk through a devel-opment project from proof of concept through development and deployment. The book demonstrates support tools for source control and issue tracking and explains application security. It also dives into spe-cialty topics such as skinning, customiza-tion, and internationalization.

Look for other Oracle books at bit.ly/oraclebookstore

Seven Partners Earn Oracle Exadata Optimized StatusSeven Oracle partners have achieved Oracle Exadata Optimized status for their solu-tions. Oracle Exadata Optimized status is part of the Oracle Exastack Optimized program, through which Oracle partners can develop, test, and tune their applica-tions on Oracle Exadata Database Machine, Oracle Exalogic Elastic Cloud, Oracle Exalytics In-Memory Machine, and Oracle SuperCluster engineered systems.

Flex Software Systems Closed Joint Stock Company, an Oracle Platinum Partner, achieved Oracle Exadata Optimized for its Core System FXL 2 and Va-Bank FXL 2 auto-mated banking systems.

LG CNS, an Oracle Platinum Partner, achieved the status for its Smart ENA 1.0 solution. Smart ENA 1.0 is a pattern analysis solution that provides early fraud detection.

Calypso Technology, an Oracle Gold Partner and integrated capital markets platform provider, announced that Calypso version 14 has achieved Oracle Exadata Optimized status.

JDS Uniphase, an Oracle Gold Partner, achieved Oracle Exadata Optimized status for its ariesoGEO. ariesoGEO is an enterprise geoloca-tion solution that collects, analyzes, and geolocates details from every customer call or data connection to create a store of

location intelligence.Mformation

Software Technologies, an Oracle Gold Partner, achieved the status for Mformation Service Manager. Mformation is a global provider of solutions for man-aging wirelessly con-nected devices.

Model N, an Oracle Gold Partner, announced that its Model N Revenue Management 5.5.1 and 5.6.2 earned Oracle Exadata Optimized status. Model N revenue management solu-tions are designed to enable companies to align pricing, contract development and administration, and payment of trade incen-tives and government reimbursements.

SmartSoft, a Cardtek Group company and an Oracle Gold Partner, announced that its OCEAN international payment processing system earned Oracle Exadata Optimized status. OCEAN is a solution for credit card, debit card, point-of-sale/merchant management, and ATM manage-ment for banks, financial institutions, pro-cessors, and retailers.

flexsoft.comlgcns.comcalypso.comjdsu.commformation.commodeln.comsmartsoftww.com

JA14_Partner.indd 16 5/19/14 4:41 PM

Page 20: oracle20140708-dl

17PARTNER NEWS

ORACLE MAGAZINE JULY/AUGUST 2014

Two Partners Earn Oracle Exadata Optimized and Oracle SuperCluster Optimized StatusTwo partners have earned Oracle Exadata Optimized and Oracle SuperCluster Optimized status for solutions that have been tested and tuned with those engi-neered systems.

Oracle Diamond Partner Infosys announced that its Finacle Core Banking solution, part of the Finacle-Infosys ePlatform, achieved Oracle Exadata Optimized and Oracle SuperCluster Optimized status. Finacle Core Banking is a web-based, centralized, customer-centric, fully integrated, multilingual, multi currency solution for retail, corporate, and trade finance banking.

Oracle Gold Partner Temenos UK reported that WealthManager13 achieved Oracle Exadata Optimized and Oracle SuperCluster Optimized status. WealthManager is an integrated wealth management platform.

infosys.comtemenos.com

Asseco SEE Teknoloji Earns Oracle Exadata Optimized and Oracle Exalogic Optimized StatusOracle Platinum Partner Asseco SEE Teknoloji A.S.’s InACT solution has earned Oracle Exadata Optimized and Oracle Exalogic Optimized status, demonstrating that it has been tested and tuned to run with Oracle Exadata Database Machine and Oracle Exalogic Elastic Cloud. InACT is a deterministic-scenario-based system that monitors customer and merchant transac-tions and creates fraud and anti-money-laundering alerts.

asseco-see.com.tr

cVidya Achieves Oracle SuperCluster Optimized StatusOracle Gold Partner cVidya announced that FraudView has achieved Oracle SuperCluster Optimized status. FraudView prevents, detects, and investigates current and future threats from across business lines and services.

cvidya.com

International Turnkey Systems Group Earns Oracle Exadata Ready and Oracle Exalogic Ready StatusOracle Platinum Partner International Turnkey Systems has announced that ETHIX Financial Solutions achieved Oracle Exadata Ready and Oracle Exalogic Ready status, demonstrating that these solutions are sup-ported and ready to run on Oracle Exadata

and Oracle Exalogic. ETHIX provides multi-channel corporate and retail products and services in Islamic finance and investment, including core banking, trade finance, online banking, and more.

its.ws

Cubus AG Announces Oracle Exadata Ready, Oracle Database Ready, and Oracle VM Ready StatusOracle Gold Partner Cubus AG has earned Oracle Exadata Ready, Oracle Database Ready, and Oracle VM Ready status for Outperform. Cubus Outperform is an Oracle

Essbase–based enterprise planning, per-formance management, and business intel-ligence solution.

cubus.eu

Two Partners Earn Oracle Validated Integration with Oracle’s PeopleSoft Campus SolutionsTwo partners have earned Oracle Validated Integration, demonstrating that their soft-ware products complement and integrate with Oracle’s PeopleSoft Campus Solutions.

Oracle Gold Partner Higher One earned Oracle Validated Integration between Higher One Disbursement Services and PeopleSoft Campus Solutions 9.0. Higher One provides finan-cial services tools to US college and university campuses for activities such as

payment and refund processing and data analytics and management.

Oracle Gold Partner InFlight earned Oracle Validated Integration between InFlight and PeopleSoft Campus Solutions, to deliver a student-friendly system accessible from desktop, laptop, and mobile devices. InFlight develops integra-tion technology that allows its clients to extract maximum value from their line-of-business and learning manage-ment systems.

higherone.cominflightintegration.com

ORACLE CLOUD MARKETPLACE

Oracle Cloud Marketplace features partner solutions that leverage Oracle Cloud plat-form services and Oracle software-as-a-service applications. It provides a place for Oracle Cloud customers to easily browse, evaluate, and buy applications developed by registered Oracle partners. Three Oracle partners have recently released solutions to the marketplace.

Oracle Gold Partner Five9: The Five9 Virtual Contact Center solution for Oracle Service Cloud delivers automatic computer telephony integration screen pops; soft-phone capabilities such as click-to-dial; and an intuitive single-screen interface to create exceptional customer experiences, increase agent productivity, and deliver tangible business results.

Oracle Silver Partner Badgeville: Badgeville’s Behavior Platform for Oracle Sales Cloud provides gamification tech-nology to help drive customer loyalty and employee performance. Through game, reputation, and social mechanics the solu-tion motivates desired behaviors.

Oracle Silver Partner Mindmatrix: Mindmatrix’ Revenue Growth Platform is integrated with Oracle Sales Cloud and features asset management, enablement of both direct and channel sales, and mar-keting automation functionality.

five9.com

badgeville.com

mindmatrix.net

I-HU

A CH

EN

JA14_Partner.indd 17 5/19/14 4:42 PM

Page 21: oracle20140708-dl

YOUR DESTINATION FOR ORACLE AND JAVA EXPERTISE

Written by leading technology professionals, Oracle Press books offer the most definitive,

complete, and up-to-date coverage of Oracle products and technologies available.

www.OraclePressBooks.com @OraclePress OraclePress

Available in print and eBook formats

Predictive Analytics

Using Oracle Data Miner

Brendan Tierney

Develop and deploy next-generation

predictive analytics applications

Master Competitive

Analytics with Oracle Endeca

Information Discovery

Helen Sun, William Smith

Automatically organize information for

search, discovery, and analysis

Oracle PL/SQL Performance

Tuning Tips & Techniques

Michael Rosenblum, Paul Dorsey

Best practices for maximizing

overall system speed, reliability,

and security

Oracle Database 12c

PL/SQL Programming

Michael McLaughlin

Develop, debug, and administer

robust database programs

Page 22: oracle20140708-dl

19

ORACLE MAGAZINE JULY/AUGUST 2014

Community Bulletin Happenings in Oracle Technology Network BY ROLAND SMART

JAVA 8 LAUNCH VIDEOS ON DEMAND More than 9,000 Java community members attended the Java 8 launch event to mark the latest iteration of the largest open standards–based, community-driven platform.

In case you missed it, you can watch the full event replay at bit.ly/java8-resources. On this page, you can also view videos on the newest tools and features in Java SE 8, Java SE Embedded 8, and Java ME 8. And for those looking to dig deeper, check out the expert tutorials on topics ranging from using lambda expressions to developing modular service-enabled applications.

Everybody’s talking about big data, and some of the conver-sations are about architecture.

Now available on the OTN ArchBeat blog, at bit.ly/big-data-arch, a three-part podcast series explores big data architecture with Oracle ACE Director Gwen Shapira as well as three of the authors of Oracle Big Data Handbook (bit.ly/big-data-handbook).

The conversation provides practical advice on several crucial architect-related projects and responsibilities, includ-ing how to distinguish an architecture that is ready for big data from one that is not, how to avoid some common mis-takes enterprise companies make at the beginning of their big data journey, and how to master rapid data proliferation with technologies such as Oracle Database 12c.

OPPORTUNITIES AND CHALLENGES IN BIG DATA ARCHITECTURE

Nominations Are Open for Oracle ACE Associate

There’s a new way to get involved in the Oracle ACE program: become an Oracle ACE Associate.

The Oracle ACE program highlights excellence within the global Oracle community by recognizing individuals who have demon-strated both technical proficiency and strong credentials as com-munity enthusiasts and advocates. Participation benefits include access to exclusive speaking and networking opportunities at Oracle events and third-party conferences.

The Oracle ACE program recently welcomed its first Oracle ACE Associates, who join a thriving community of more than 420 Oracle ACE Directors and Oracle ACEs. Download an Oracle ACE Associate nomination form at bit.ly/ace-associate-info.

I-HUA

CHE

N

Get Published Every year millions of people read OTN’s community-member-authored technical articles to get the latest insight into database appli-cation development, cloud computing, mobile design, and more.

Now it’s your turn to inform and engage this readership. If you have how-to technical insight to share with OTN members, consider submitting a 2,000- to 3,000-word article. Get started and learn more about OTN’s edi-torial process and content requirements and guidelines at bit.ly/otn-submissions.

Oracle Solaris Studio is a suite of compilers and code analysis tools that assists developers in creating highly optimized, robust, and secure applications for the Oracle Solaris and Linux operating systems. These tools help application developers achieve the best performance on Oracle’s newest SPARC T-Series and SPARC Enterprise M-Series servers, Fujitsu’s M10 servers, and Intel-based servers. Download the Oracle Solaris Studio 12.4 beta release (SPARC, x86, and Linux versions are available) at bit.ly/solaris-studio-12p4.

12.4Download Oracle Solaris Studio

Roland Smart is vice president of social and community marketing at Oracle.

JA14_Community.indd 19 5/19/14 2:11 PM

Page 23: oracle20140708-dl

20

July/august 2014 Oracle.cOm/Oraclemagazine

architect By BoB RhuBaRt

A t a local Oracle user group event, I spotted a familiar face. “What are you

working on?” I asked him. For the next several minutes, I heard

about an infrastructure modernization project he and his team were involved in. In general, the project was on track and proceeding with limited aspirin consump-tion. But there was one headache-inducing issue that posed an obstacle to the project’s overall success: the company this person works for has five separate development teams, and among those teams there isn’t a great deal of cooperation.

So yes, another conversation about silos.Organizational silos are the bane of

effective IT architecture. The goal of that architecture, of course, is to consolidate resources, reduce complexity, and better align IT with the business. Ironically, the last of those three goals may have provided the foundation for some silos.

The tighter alignment of IT with the busi-ness can take on the qualities of a badly tailored suit—so tight that it can impede the agility of the overall organization. From within a silo, that constriction may not be apparent, however. In fact, inside the silo, things may be quite comfortable, and the people enjoying that comfort may have little incentive for change.

One step toward changing the silo mind-set, then, is understanding what makes silos so appealing.

“We need to acknowledge the existence of silo thinking,” says Oracle ACE Director Hajo Normann, a service-oriented architec-ture (SOA) and business process manage-ment expert with Accenture. “I would go even further and say we need to embrace it.”

According to Normann, the silo can be a congenial place, where people may enjoy a sense of freedom and creativity, or at least familiarity. Working outside the per-

ceived protection of the silo can present an imposing alternative that itself is thought to be a restrictive, rule-bound environment. That perception is not entirely without basis.

“On the other hand, a centrally governed software factory relies on standards, shared best practices, and strict conventions for names and design choices,” says Normann. “So we are facing a dilemma. We are doomed if we just demonize the silo.”

Rather than tearing down silos, the better strategy is to focus on building bridges between them.

“One should work across organizational boundaries looking for commonalities and seeking ways to identify win-win opportuni-ties,” advises Oracle Enterprise Architect Eric Stephens. “Don’t let the org chart hinder your collaboration.”

To that end, Oracle ACE Manuel Rosa, business manager for SOA at Link Consulting, suggests approaching the issue from an information perspective. “We need to identify how we can define a common model—the basic functional and business concepts that usually cross different silos,” Rosa advises.

From there, it’s a matter of finding ways to leverage that information so that one silo sees the advantages of connecting to other silos. “Find a way to highlight the benefits of such cooperation between silos,” Rosa

says. “Put reward mechanisms in place to promote synergies and the reuse of information and assets, and define struc-tured procedures and processes that can guarantee long-term cooperation without adding disruption.”

Of course, if any of this were easy, you wouldn’t have read this far. The need to evolve beyond silos is clear, but it’s also something that you, as an architect, aren’t likely to accomplish on your own.

“If organizational leaders want to foster more cross-silo collaboration, incentives need to be aligned that encourage folks to work together,” Stephens emphasizes. And that’s going to require the involvement of those who are in a position to enact organi-zational changes.

“This fight should be backed up by the highest levels of the management hier-archy,” confirms Normann.

Bridging those silos might be a long slog. But somebody’s got to do it.

READ “The Architect as Salesperson”

bit.ly/1qzdMG1“The Most Important IT Career Skill”

bit.ly/Q78swP“Architects, Leadership, and Influence”

bit.ly/RiJc7N

NExT STEpS

Inside the silo, things may be quite comfortable, and the people enjoying that comfort may have little incentive for change.

Bob Rhubart ([email protected]) is manager of the architect community on Oracle Technology Network, the host of the

Oracle Technology Network ArchBeat podcast series, and the author of the ArchBeat blog (blogs.oracle.com/archbeat).

Building BridgesOrganizational silos thwarting IT architecture goals? Put away the sledgehammer.

CONNECT: blogs.oracle.com/archbeat facebook.com/brhubart twitter.com/brhubart linkedin.com/in/bobrhubart

JA14_Architect.indd 20 5/19/14 1:50 PM

Page 24: oracle20140708-dl

21Peer-To-Peer by blair Campbell

oracle magazine July/august 2014

learn more about the Oracle aCe program at oracle.com/technetwork/community/oracle-ace.

Close EncountersThree peers extol the virtues of in-person classes and conferences.

What’s your favorite technique on the job? It’s deconstructing data processing routines, whether in PL/SQL or SQL, and refactoring them into simpler, more efficient workflows.Which new features in Oracle Database are you currently finding most valuable? I always like to see what’s being added to SQL, and how it can be used to solve harder and harder problems. Analytic functions and recursive SQL are particularly valuable. And obviously the new container database architecture in Oracle Database 12c will be very useful—both from a security and self-service perspective.What’s been your favorite Oracle technology conference experience? I could name any ODTUG event—they’re all great. I think it’s important for DBAs and developers to talk to each other, and ODTUG really tries to facilitate that. I also enjoy networking with colleagues through a local Meetup group that I chair called Agile Data Experts DC. It’s a monthly gathering of Washington DC data management professionals where we talk about tips, tools, and techniques for agile data management.

What’s your favorite Oracle technology or solution area? Oracle Fusion Middleware—because it includes Oracle technologies that can help any company build end-to-end solutions. I like that it is a fully integrated family of products that can be delivered into different layers, with each layer offering a dif-ferent experience. Whether you’re focused on integration, automating processes, security, or compliance, Oracle Fusion Middleware has something for everyone.What’s your go-to Oracle reference book? I have lots of Oracle books and most of them are great. I’d have to say Expert Oracle RAC 12c by Syed Jaffar Hussain, Tariq Farooq, Riyaj Shamsudeen, and Kai Yu, and Expert Oracle Enterprise Manager 12c by Kellyn Pot’Vin and several coauthors [both Apress, 2013]. What’s been your favorite Oracle technology conference experience? It was this past December at Tech13, the UKOUG [UK Oracle User Group] conference. I finally got to meet many of my online friends and colleagues in person, and we had an amazing time.

What role has Oracle University [OU] played in your career? In 1996 one of my first employers sent me from Peru to Orlando, Florida, to take an Oracle7 performance tuning workshop, and I learned a lot. After that I took the complete set of courses for Oracle8 to gain my first Oracle Certified Professional credential. Ten years later I became an OU instructor, which allowed me to share my knowledge and experience with a new generation of DBAs. What advice do you have about getting into database development? It’s a fact of life that things won’t always work as expected or documented, so take notes on what you do to solve any problems you encounter and publish those notes on your blog. This will help you to remember those solutions, and it will help others who are experiencing the same or similar problems. What green practices do you use in your DBA work? I try to work remotely when possible. I also recommend server consolidation, replacing older energy-hungry servers with fewer less-energy-demanding ones.

Company: Agilex Technologies, a technology solution provider serving the national security, healthcare, and public sectorsJob title/description: Vice president of data architecture and engineering, responsible for reviewing and supporting Agilex projects at customer locationsLocation: Chantilly, VirginiaOracle credentials: Oracle Exadata Certified Implementation Specialist, with 24 years of experience using Oracle products

DOminiC DELmOLinO

Company: Gurus Solutions, a software solution provider Job title/description: Senior Oracle DBA, responsible for database performance, integrity, security, and backup and recovery Location: Amman, Jordan Oracle credentials: Oracle Certified Professional (Oracle Forms Developer, Oracle Advanced PL/SQL Developer, Oracle Solaris 10 System Administrator, Oracle Database 10g, Oracle Database 11g) and Oracle Linux Implementation Specialist, with more than 7 years of experience using Oracle products

Osama mustafa HussEin

Company: Self-employedJob title/description: Independent Oracle consultant, responsible for database upgrade and migration, database and application tuning, incident resolution, and design and configuration of high-availability solutionsLocation: Lima, PeruOracle credentials: Oracle Certified Professional DBA (on several releases including Oracle Database 10g and Oracle Database 11g), with 19 years of experience using Oracle products

EnriquE OrbEgOzO

JA14_Peer.indd 21 5/19/14 1:45 PM

Page 25: oracle20140708-dl

These trends are putting a strain on traditional IT

infrastructures, as companies look for better ways to

provide enterprise applications and analytics to the

business and pursue initiatives such as big data and

data center consolidation. It is becoming clear that

incremental modifcations are not enough to keep up.

IT groups need innovative approaches that will enable

them to reshape the infrastructure to provide the

performance and scalability needed to keep up with

the ever-evolving demands of the business.

A Leap Forward in ServersThe Fujitsu M10 server line is designed to be at the

heart of that type of infrastructure. Drawing on Fujitsu’s

heritage of supercomputing—and its deep partnership

with Oracle® that is focused on SPARC® and mission-

critical business computing—this server line offers the

biggest technology advancement for SPARC servers in

more than a decade.

The Fujitsu M10 servers are built on the advanced

SPARC64® X processor and now the new SPARC64 X+

processor. These processors include “Software-on-Chip”

technology created through the close collaboration

of Fujitsu and Oracle. Software-on-Chip moves some

routines from software programs to the circuitry of

the chip, increasing the speed of those routines. The

current Fujitsu M10 hardware and Oracle Solaris 11

software work together with this feature, and with

Oracle Database 12c plus patch, companies may

see an increase in performance of up to 25%, due to

Software-on-Chip.

The Fujitsu M10 also uses an in-memory pro-

cessing concept, which means that data is accessed

within memory in just nano-seconds, rather than the

Today, companies need to manage huge amounts of data to develop

insights and actionable, valuable information—and to enable business

decision makers to operate with solid information and better foresight.

At the same time, they need to process this growing volume of data

faster than ever in order to stay ahead of the competition and a

constantly changing business environment. In an increasingly real-time

business world, the speed and quality of information are both key.

Delivering at the Speedof Business

ADVERTISING SUPPLEMENT

Delivering at the Speedof Business

Page 26: oracle20140708-dl

milliseconds needed for traditional

access to storage and disks. Here

again, hardware and software can

work closely together for a signif-

cant increase in performance.

The Fujitsu M10 includes other

innovative technologies that help

drive high performance. For exam-

ple, Fujitsu’s advanced High Speed

Interconnect transmission technology

is used to connect CPUs, resulting in

a very fast 14.5 Gbps transmission

rate. In addition, a unique Liquid

Loop Cooling mechanism can cool hot

spots effectively, allowing compo-

nents such as the CPU and memory

to be located more closely to one

another. This close placement and

resulting compute density has helped

the Fujitsu M10 achieve one-ffth

lower memory latency, compared to

previous servers.

The Payoff in Performance

Together, these various Fujitsu

technologies add up to dramatic

increases in performance. In the frst

six months following its release, the

Fujitsu M10 set 14 world records in

industry standard benchmark tests,

including CPU-specifc tests, such

as SPEC® CPU, and application-level

tests, such as Java™ and SAP®.

A look at a few of these

benchmarks illustrates the level of

performance improvement offered

by these servers: For example, in

the SPECint®_rate2006 benchmark,

which looks at CPU performance and

throughput, the Fujitsu M10 server

provided twice the performance of

the previous record-holding server.

And in the STREAM Triad benchmark,

which looks at memory access and

throughput, it was fve times faster

than the previous record holder.

“The SPECjbb®2013 bench-

mark is designed to measure Java

application performance including

response performance, which is

essential for real-time processing.

Fujitsu M10 with a 16-CPU confgu-

ration achieved the world’s highest

performance on both critical-jOP-

S(Java Operations Per Second) and

max-jOPS.”

The server’s ability to deliver

high performance has been

demonstrated outside the lab in real

world usage, as well. For example,

a telecom company that used the

Fujitsu M10 in a server consolidation

effort achieved a 3X improvement

in performance. And a printing

company that migrated from a

UNIX® platform to the Fujitsu server

saw a 2X improvement in response

time and a 3X improvement in

batch processing time. [See sidebar,

“Power for Global Expansion.”]

Providing an Agile IT FoundationBusiness does not hold still,

and that means that IT needs to

constantly adjust and adapt to

requirements that can change

quickly—and often, unpredictably.

Typically, this means expanding

the infrastructure in step with

business growth, and doing so

cost-effectively.

The Fujitsu M10 addresses

this need with its innovative core

Since its release, the Fujitsu M10 has set 14 world records in industry standard

benchmark tests.

Page 27: oracle20140708-dl

activation feature. The SPARC64 X and the SPARC64 X+ CPU

have 16 cores. When a company purchases a lower-end

Fujitsu M10-1 with one CPU, all 16 physical CPU cores are

already included in the box. They can be activated and

paid for on an as-needed basis, making it easy to quickly

scale from 2 to 16 cores in increments of two, without

having to add any hardware. This core activation concept

applies across the Fujitsu M10 product line, up to the

largest 64-CPU modular models. In short, core activation

may allow companies to license only what they need at

the core level, and keep computing power in step with

changing demands—an approach that is highly cost-

effective.

Working hand-in-hand with core activation, the

Fujitsu M10 provides

building block capabilities

that enable simple,

modular scalability. For

example, if a company

reaches the capacity

limits with all 64 CPU

cores of a Fujitsu M10-4S

activated, it can quickly

add a second 2- or 4-socket box to the frst without

interrupting the system, and then grow that new box

through the core activation process, as needed. This

can be continued up to a maximum confguration of

16 boxes with 1,024 active cores and 32 terabytes of

memory.

With these features, the Fujitsu M10 servers provide

tremendous fexibility and expandability. This enables

the IT organization to not only optimize its investment

when it frst implements the system, but to keep

optimizing it over time. It essentially provides a “pay

as you go” model—and helps avoid the all-too-common

problem of having to “overbuy” and ending up with

equipment that is using power but not contributing to

the bottom line.

In addition to high performance and fexibility, the

Fujitsu M10 server design builds on Fujitsu’s history of

providing mainframe-class reliability, availability and

serviceability technology. Its architecture includes many

features that help ensure that business operations are not

interrupted and unscheduled downtime is not required to

deal with failing hardware or software components. For

example, redundant interconnect paths help minimize

the risk of errors and data corruption. Predictive self-

healing capabilities enable the operating system to work

with the server hardware to predict component failures

and minimize the impact of issues before they affect the

system’s operation.

Fujitsu will keep delivering more with its Fujitsu M10

server line. This means continuing to expand Software-

on-Chip capabilities and providing features that further

increase reliability, availability and serviceability. It also

means working with Oracle on innovative approaches

to big data and other enterprise computing needs—

and giving customers the technologies they need to be

agile and responsive to successfully pursue today’s fast-

moving business opportunities.

For More InformationTo fnd out more about the Fujitsu M10 server, please

see these related documents:

• Accelerate and Consolidate the Data Center

• Consolidate with Fujitsu M10 Servers

• Accelerate Database Performance with

Fujitsu M10 Servers

Please visit our web site to view the full DNP case study.

Additional information about the Fujitsu M10 server line

can be found at www.fujitsu.com/sparc.

The Fujitsu M10 allows companies

to keep computing power in step with

changing demands.

ADVERTISING SUPPLEMENT

SPEC (The Standard Performance Evaluation Corporation), SPECint and SPECjbb are registered trademarks of Standard Performance Evaluation Corpora-tion(SPEC) in the US and other countries.Details and the latest information of this benchmark can be found at www.spec.org. Published as “SPARC M10.” Fujitsu M10 is sold as SPARC M10 by Fujitsu in Japan. Fujitsu M10 and SPARC M10 are identical products.

World-record SPECint_rate2006 result: Comparison based upon SPECint_rate2006 result except Supercomputers: 23,800 on a SPARC M10-4S server with 64 SPARC64 X (3.0 GHz) processors, Oracle Solaris 11.1, Oracle Solaris Studio 12.3, 1/13 Platform Specifc Enhancement. Details and the latest information on this benchmark can be found at www.spec.org.

World-record STREAM result: Comparison based upon STREAM Triad result except Supercomputers: 4,002 GB/s on a SPARC M10-4S server with 64 SPARC64 X (3.0 GHz) processors. Details and the latest information on this benchmark can be found at www.cs.virginia.edu/stream/.

World-record SPECjbb2013 results: 16 CPU confguration: 308,936 max-jOPS and 168,127 critical-jOPS on a SPARC M10-4S server with 16 SPARC64 X (3.0 GHz) processors, Oracle Solaris 11.1 SRU 6.4, Java HotSpot 64-Bit Server VM, version 1.7.0_17. 4 CPU confguration: 83,909 max-jOPS and 50,562 critical-jOPS on a SPARC M10-4S server with 4 SPARC64 X (3.0 GHz) processors, Oracle Solaris 11.1 SRU 6.4, Java HotSpot 64-Bit Server VM, version 1.7.0_17. Details and the latest information on this benchmark can be found at www.spec.org.

Page 28: oracle20140708-dl

Power for Global Expansion

Dai Nippon Printing Co., Ltd. (DNP) is one of the

world’s largest printing companies, but its business

extends over a wide variety of felds, including

Information Communication (e.g. publication printings

and digital signage), Lifestyle and Industrial Supplies

(e.g. packaging and lifestyle materials) and Electronics

(e.g. display components and electronic devices). DNP

has been actively expanding globally and now has 26

sales locations and 13 manufacturing plants around the

world. The processing for DNP exports is done primarily

through its central overseas business system. The previous

system had been constructed based on HP-UX, but it had

limitations in terms of expandability. For this reason,

DNP elected to replace the system using Fujitsu M10

servers.

DNP needed a high performance system that could handle

increases in the amount of overseas business job data

and additional users, and evaluated multiple vendors.

“We had been paying close attention to information about

new, high-performance servers and [Fujitsu M10’s] high-

performance, based on supercomputer technology, was a

step above conventional servers,” says Tomoyasu Nagata,

Section Head of the Overseas System Section at DNP. “We

confrmed the fgures backing Fujitsu M10 and it quickly

became a very suitable candidate.”

The fnal selection was done by DNP Information Systems

Co., Ltd., which manages information systems for the

DNP Group. Mr. Kazuo Kurosawa, Department Head at

DNP Information Systems, stated, “Our role is to provide a

stable service for information

systems, from planning

and design to construction,

operation, and maintenance.

When we investigated

Fujitsu M10, the key points

considered were not just its

high performance, but its operational stability inherited

from mainframe reliability, the fact that it embraces the

future potential and long-term support of Oracle Solaris,

and its compatibility with Oracle Database. Specifcally

when combined with Oracle Database 11g, Fujitsu

M10-1 is able to deliver one-stop-

shop support for our business and

signifcantly reduce maintenance

costs.”

For the new system confguration,

Fujitsu M10-1 was used as the core

database server. “Fujitsu M10 and

Fujitsu made sure system construction

could be completed in a short amount

of time,” says Mr. Shohei Yamashita,

Third Work System Dept., Work System

Headquarters, DNP Information

Systems. The database server works in conjunction with

the application server and the backup server. Furthermore,

Fujitsu’s one-stop-shop support delivers a quicker

resolution in the event of any issues.

After installation, the database’s response performance

doubled. Batch processing performance has tripled, thus

greatly reducing overall processing time. Total opera-

tional costs have been cut by nearly 35%, with software

maintenance costs kept down, and operational effciency

increased by installing a backup server.

Regarding future prospects, Mr. Nagata says, “We’re

planning to add more functionality leveraging CPU Core

Activation, which will allow us to fexibly expand the

system as needed. With this function, we can scale up

when our business is ready while keeping initial costs

down. We look forward to working with Fujitsu as they

continue to support us through leading-edge solutions

like Fujitsu M10 technology for big data processing.”

Tomoyasu Nagata Kazuo Kurosawa Shohei Yamashita

Page 29: oracle20140708-dl

SUCCESS ONSPARCThe latest SPARC chips and systems are at the center of better business processes.

Server consolidation projects are designed to cut costs and improve data center performance, but companies deploying

Oracle’s SPARC servers, including the SPARC T5 and SPARC M6 servers, are getting additional benefits as well. Whether it’s a hardware refresh or a complete revamp of IT infrastructure, these companies are finding that this new generation of SPARC servers—combined with the power and dependability of the Oracle Solaris operating system—reduces operating costs; improves business operations; expands capacity; adds capability; and, in one case at least, even recruits top IT talent.

BY PHILIP J. GILL

JA14_SPARC.indd 26 5/29/14 2:42 PM

Page 30: oracle20140708-dl

Art

Cred

it

JA14_SPARC.indd 27 5/29/14 2:43 PM

Page 31: oracle20140708-dl

July/August 2014 Oracle.cOm/Oraclemagazine

28

Nam

as B

hoja

Ni

SeamleSS ReliabilityNo matter how they are delivered—airwaves, cable, or satellite—broadcast television services demand 24/7 operations that operate reliably and seamlessly, at the touch of a button or the flick of a switch. With a subscriber base of more than 15 million households, Mumbai, India–based Tata Sky is the leading provider of satellite-based, direct-to-home broadcast television services in India.

“We offer a wide variety of television services, from standard-definition and high-definition channels to video-on-demand, mobile TV, movies, and personal video recorders—both standard and high definition—as well as interactive content including games, educational applications, and more,” says N. Ravishanker, chief information officer at Tata Sky, a joint venture between Indian con-glomerate Tata Group and the US-based mass-media firm STAR TV.

In 2012, Ravishanker explains, the firm was looking to add both capacity and capability to better serve its growing customer base. “There is excellent opportunity for growth in this market, especially since there is so much churn in cable television,” he says. “Since this is a commodity product, we face challenges similar to every B2C

[business-to-consumer] organization in scalability and reliability.”“We needed a hardware refresh that added capacity to support

our growing subscriber base,” says Ravishanker. “We also needed to set up a disaster recovery [DR] site to maintain the 24/7 reliability and availability our customers have come to expect.”

Tata Sky has been using SPARC servers running the Oracle Solaris operating system since the company’s inception—it opened for business in 2006 with SPARC-based Sun Fire E20K servers—and it looked to new SPARC servers to upgrade and enhance its IT infra-structure, beginning in 2012 with new SPARC Enterprise M9000 and SPARC T4 servers from Oracle and continuing in 2013 with Oracle’s next-generation SPARC T5 and SPARC M5 servers.

According to N. Ravishanker, chief information officer at Tata Sky, SPARC systems have improved performance, cut costs, simplified operations, and improved reliability and availability for Tata Sky’s core business-critical applications.

“ With the new SPARC systems, some applications run up to 10 times faster.” —N. Ravishanker, Chief Information Officer, Tata Sky

JA14_SPARC_R1.indd 28 6/6/14 9:39 AM

Page 32: oracle20140708-dl

oracle magazine July/August 2014

29

According to Ravishanker, these systems have improved perfor-mance, cut costs, simplified operations, and improved reliability and availability for the company’s core business-critical applica-tions, including its billing, smartcard management, electronic voucher distribution, and online customer ordering systems.

“With the new SPARC systems, some applications run up to 10 times faster,” he says. “An application that ran at 4 seconds per transaction now performs at 0.4 seconds per transaction, and that provides near-instantaneous response times to our customers’ online requests, such as ordering movies or new television channels.

The company also has established its first DR site, located in the city of Pune, India. “With the new data center, should we experience a full-scale shutdown at our primary production site, we can be back up and running in less than 90 minutes,” says Ravishanker. “Powered by our new SPARC servers, the disaster recovery site provides our customers with greater service reli-ability and availability.”

“We slashed operating costs 20 percent, including licensing, reduced data center floor space requirements, improved energy effi-ciency, and consolidated 61 legacy systems at no additional cost, thanks to SPARC’s built-in advanced virtualization technologies and linear scalability,” Ravishanker continues. “We have been able to do all this and main-tain service levels with less staff.”

Such an array of benefits is common among companies deploying SPARC T5 and SPARC M6 servers, says Masood Heydari, senior vice president of SPARC systems for the systems group at Oracle.

“Organizations used to map one applica-tion to one server,” explains Heydari. “SPARC

T5 and SPARC M6 systems have so much power and capability that businesses today will typically carve these servers up into multiple virtual machines and deploy multiple different applications on a single system. Users not only get much higher performance, they get better return on their investment.”

Where Credit is duePerformance is important in all industries—and all economies. Turkey has a rapidly growing private sector whose growth is fueled in large part by the availability of consumer credit.

“Although credit card penetration is high in Turkey, the demand for consumer credit continues to grow,” explains Sinan Özer, executive vice president of infrastructure operations and security at Yapi Kredi Bank. Yapi Kredi was founded in 1944 as Turkey’s first private bank. It is the nation’s fourth-largest private bank and was the first to introduce consumer credit cards in 1991.

To keep up with demand, Yapi Kredi is currently migrating its credit card pro-cessing from legacy mainframes and non-SPARC UNIX servers, consolidating that workload on larger, more-powerful, and cost-effective SPARC T5 series servers from Oracle running the Oracle Solaris 10 oper-ating system and Oracle VM 3.0.

“We’re consolidating our legacy servers onto new SPARC T5 servers, using virtual-ization to bring 80 hosts down to 50 hosts running on 10 machines,” says Özer. “When we’re finished, 65 percent of all our pro-cessing will be done on SPARC servers.”

These SPARC systems will be running not just consumer credit card operations but also retail banking, merchant card and banking, risk management, treasury, and

Under their metal exteriors, Oracle’s next-generation SPARC T5 and SPARC M6 servers look alike, sharing common components, terabytes of memory and storage, and more. What distin-guishes one from the other is how they are put together, and that, in turn, is a matter of scale.

“The two systems were designed to handle the same tasks, but with different design approaches,” says Renato Ribeiro, director of product management for SPARC systems at Oracle. “SPARC T5 servers scale up to consider-able capacity, while using a fraction of a server rack. The SPARC M6 server supports four times the capacity of the largest SPARC T5 system.”

The design and capacity of the SPARC M6 server delivers additional benefits. “SPARC M6 servers include more component redundancy

and therefore greater availability and serviceabil-ity,” says Ribeiro. “As a result, you can consoli-date more applications and deploy more virtual machines, while achieving better performance through the highly scalable design.”

The design differences between SPARC T5 and SPARC M6 servers are obvious in the way the systems can be configured. The SPARC T5 system begins with a blade server with a single processor and 256 GB of memory and tops out with a server with 8 processors and 4 TB of memory.

The SPARC M6, introduced in September 2013, picks up where the SPARC T5 leaves off, and is Oracle’s newest, most powerful, and most scal-able SPARC server to date. The top-of-the-line SPARC M6-32 has up to 32 12-core 3.6 MHz SPARC processors and up to 32 TB of main memory. Each

of those SPARC chips has 12 cores—twice the number of cores as its predecessor, the SPARC M5—and each core can run 8 threads simultane-ously, allowing for 3,072 threads running in the top-of-the line system’s 384 cores. “The SPARC M6-32 offers enough power to run the largest, most demanding applications in use today, all in-memory,” says Ribeiro.

The new SPARC T5 and SPARC M6 also run counter to the conventional wisdom about large-scale multiprocessor systems—they offer near-linear pricing from a two-processor SPARC T5-2 server to the 32-processor, multiterabyte SPARC M6-32 server. “Although they scale to a very high number of processors and many terabytes of memory, users don’t pay a premium for that per-formance on the bigger package,” Ribeiro says.

Multithreaded

Tata Skytatasky.com Location: Mumbai, IndiaIndustry: Media and entertainmentEmployees: 1,500Oracle products: SPARC T4-2 and SPARC T4-4 servers; SPARC T5-2 and SPARC T5-4 servers; SPARC M5-32 server; SPARC Enterprise M9000; Oracle Solaris 11 with Oracle Solaris Zones Preflight System Checker; Oracle Solaris Cluster (for high availability); Oracle Database 11g; Oracle Real Application Clusters; Oracle Enterprise Manager; Oracle VM 3.0; Siebel Customer Relationship Management; Oracle Active Data Guard; Oracle Advanced Customer Support Services

Yapi Krediyapikredi.com.trLocation: Istanbul, TurkeyIndustry: Financial servicesEmployees: 14,865Oracle products: SPARC T5-4, SPARC T4-4, SPARC T4-2, and SPARC T4-1 servers; SPARC Enterprise M9000; Oracle Solaris 10; Oracle Database 11g and Oracle Database 10g; Oracle GoldenGate; Oracle Internet Directory

SnapShOTS

JA14_SPARC.indd 29 5/29/14 2:43 PM

Page 33: oracle20140708-dl

July/August 2014 Oracle.cOm/Oraclemagazine

Ali K

AbAs

/Get

ty im

AGes

other core banking services, Özer notes.Yapi Kredi chose SPARC systems because it has been committed

to the SPARC architecture and Oracle Solaris, the leading enterprise UNIX operating system, for some time. “The bank has been using Oracle Solaris for 15 years,” says Özer. “Years ago, we moved many of our core banking applications to Oracle Solaris.”

When the current SPARC T5 server project is completed later this year, the bank expects significant savings. “The new SPARC systems offer one-third lower maintenance costs compared to the mainframes they are replacing,” says Özer. “Electricity costs will decrease to less than a quarter of current costs, and so will our cooling costs. Because of this and other cost savings, we expect a payback period of less than two years.”

More to CoMeYapi Kredi’s IT overhaul isn’t done yet; there are more SPARC systems to come.

“Later this year, we will be installing a SPARC M6-32 server that will be used to move the rest of our core banking applications to SPARC and Oracle Solaris,” says Özer. “We are also rewriting those applications on the Java platform. Once that is done, all of our core applications will be running on SPARC and Oracle Solaris.”

Besides the cost, reliability, and performance benefits, Özer says Yapi Kredi’s use of open platforms, SPARC servers, and Oracle Solaris has an added advantage: It helps the bank attract top IT talent.

“It’s getting very hard to find sufficient talent for mainframes, says Özer. “The younger generation only wants to work with the latest technology—that means systems such as SPARC and Oracle Solaris.”

Server consolidation onto SPARC servers has reduced the number of physical servers and virtual hosts at Yapi Kredi. “We’re consolidating our legacy servers onto new SPARC T5 servers, using virtualization to bring 80 hosts down to 50 hosts running on 10 machines,” says Sinan Özer (left), executive vice president of infrastructure operations and security at Yapi Kredi Bank.

Philip J. Gill is a san Diego, California–based freelance writer and editor.

LEARN more about SPARC serversoracle.com/us/products/servers-storage/servers/sparcOracle Solarisoracle.com/technetwork/server-storage/solaris11Oracle Optimized Solutionsoracle.com/us/solutions/oosOpenStackbit.ly/1hbVssH

NExT STEPS

In April 2014, Oracle introduced Oracle Solaris 11.2, an enterprise cloud platform that integrates a full OpenStack distribution, software-defined networking (SDN), cluster-ing, and virtualization in a proven enterprise-class operating system.

OpenStack functionality in Oracle Solaris 11.2 environments supports a standard self-service environment for sharing and managing compute, network, and storage resources, and it enables the rapid deployment of virtual machines. Application-driven SDN, from application to storage, ensures that service-level agree-ments are maintained within a

data center or cloud environment. Oracle Solaris Zones provide zero-overhead virtual environments, and kernel zones deliver OS inde-pendence and isolation.

John Fowler, executive vice president for systems at Oracle, notes, “By engineering the OS, vir-tualization, SDN, and OpenStack together, Oracle Solaris 11.2 provides a complete cloud plat-form, for simple, efficient, secure, compliant, and open enterprise cloud deployments. It’s designed to help customers accelerate their businesses and capitalize on the potential of cloud computing while reducing cost.”

System-Engineered

JA14_SPARC_R1.indd 30 6/6/14 9:39 AM

Page 34: oracle20140708-dl

2.6x BetterPerformance

Industry Standard Java Middleware

SPECjEnterprise2010 Performance Benchmark

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.

Oracle’s SPARC T5

Server Cost:

$805,000Server Cost:

$299,000

Performance:

10,902Performance:

27,843

IBM’s Power7+ AIX

Page 35: oracle20140708-dl

TOGETHER ORACLE AND

NATIONAL GEOGRAPHIC EDUCATION ARE

Leading the Wayin Ocean Educationand Marine Research

National Geographic is a 501(c)(3) organization. PHOTOGRAPH BY ENRIC SALA

National Geographic Education supports the

mission of the National Geographic Society to

inspire people to care about the planet by

creating compelling educational materials for

young people and the adults who teach them.

NG Education provides unique learning

experiences to educators and advocates for

improved education in geography, the

environmental sciences, and other disciplines

that are critical to understanding our world.

With support from Oracle, National Geographic

Education is engaged in a major project to

develop teacher leaders in marine ecology and

create materials about ocean science and

geography for students, families, the ocean

recreation community, and the general public.

Support our work today. Visit nationalgeographic.org/education.

12711 NGS Education Ad_Select 1_Layout 1 8/30/11 12:26 PM Page 1

Page 36: oracle20140708-dl

Java Developer 33

oracle magazine July/august 2014

oracle aDF By Frank nimphius

Region Extreme: Multi-Task-Flow BindingRender an unknown number of task flows in page or dashboard regions.

O racle Application Development Framework (Oracle ADF) regions

display the contents of bounded task flows in designated areas on a page. Each region uses a special binding configuration—the task flow binding—in the Executables section of the parent page’s PageDef.xml file to populate the region content with data from the Oracle ADF binding layer.

In use cases such as analytic dash-boards, the contents of an unknown number of task flows must be displayed as regions at runtime. However, Oracle ADF regions cannot be created at runtime. Multi-task-flow binding in Oracle JDeveloper 11g Release 2 and Oracle JDeveloper 12c addresses this limitation. Using a hands-on exercise, this article shows developers how to use multi-task-flow binding in Oracle ADF applications. Parts of the sample application have been prebuilt to give you a head start. In addition to performing the hands-on steps, you can learn more by examining the source files.

To begin, download the sample applica-tion at bit.ly/1lZ4nXw and unzip the o44adf-2197040.zip file to a local folder on your computer. Do not use spaces in the folder name. Ensure that you’re using the studio edition of Oracle JDeveloper 12c (12.1.2.0.0) or later, available as a free download on Oracle Technology Network.

Static, Dynamic, multipleThe multi-task-flow binding feature is a combination of the static and dynamic task-flow-binding types used in Oracle JDeveloper to associate region content with the Oracle ADF binding layer and lifecycle.

A static region uses a dedicated task flow binding added to the PageDef.xml file of the parent page to associate the region content

with a bounded task flow. The task flow binding contains a static reference to the bounded task flow to be exposed in the region.

Dynamic regions also use a dedicated task flow binding, which uses a property reference to a managed bean in view scope to provide the task flow reference infor-mation. The managed bean is accessible from Java code and through expression language (EL). The task flow reference returned by the managed bean property can be changed at runtime for the region to display the contents of different task flows sequentially.

In multi-task-flow binding, the multi-TaskFlow binding element provides the region component model for multiple Oracle ADF region instances that are created at runtime with the af:forEach loop tag of the Oracle ADF Faces feature of Oracle ADF. Each region obtains its bounded task flow configuration reference from a managed bean. As with dynamic regions, the content of the managed bean can be changed at runtime, thereby

enabling the display at runtime of an unknown-at-design-time number of task flows in regions. The region binding is appropriate for uses such as dashboards that display varying numbers of bounded task flows on a page.

Sample applicatiOn OverviewThe sample application is a dynamic dash-board that displays information for depart-ments the user selects, as shown in Figure 1. Each department is exposed in a region with a read-only view shown first. An Edit button navigates the bounded task flow associated with each region to an edit page so the user can change the department data.

The user selects which departments to display on the dashboard by using the select-many checkboxes on the right-hand side and clicking the Update Dashboard button. The Reset Dashboard button sets the dashboard to the none-selected state and shows a single panel with instructions for the user.

The application uses Oracle ADF adap-tive bindings to create multiple instances of

ORacle applicatiOn DevelOpment FRamewORk, ORacle JDevelOpeR

Figure 1: Sample application

JA14_ADF.indd 33 5/21/14 11:18 AM

Page 37: oracle20140708-dl

34 Oracle adf

July/august 2014 Oracle.cOm/Oraclemagazine

a bounded task flow that share the Oracle ADF data control with the parent view for best performance. With this technique, the sample application can use a single task flow definition to simulate an unknown number of Oracle ADF regions to be dis-played in an Oracle ADF view.

Sample application architectureFigure 2 illustrates the architecture of the sample application. A managed bean instance holds a list of bounded task flow configurations that specify the number of region instances and the department infor-mation to display. The bounded task flow takes two input parameters and creates a new view object instance on the server to display the department data, identified by department ID.

The Home.jsf file contains a panel dashboard component that shows a vari-able list of Oracle ADF regions based on the configuration in the managed bean. The page accesses the task flow definition in the bean indirectly through the multi-task-flow binding added to the Oracle ADF page’s binding file, the PageDef.xml file. An af:forEach iterator on the page refer-ences the task flow binding and creates an instance of af:region for each task flow configuration.

GettinG readyThe RegionExtreme workspace in the sample application download contains a completed Oracle ADF Business Components model (Oracle ADF Business Components is a feature of Oracle ADF) and a view-controller project with prebuilt artifacts such as managed beans, page fragments, and a bounded task flow.

To prepare this workspace for your envi-ronment, you must configure the database connection that the workspace is dependent on to access your HR database schema:1. In Oracle JDeveloper, select File -> Open,

and navigate to the directory containing the unpacked zip file content.

2. Open the oramag070814/RegionExtreme folder, and select the RegionExtrem.jws file. Click Open to load the workspace.

3. Select Window -> Database

-> Databases, and expand the RegionExtreme node to display the con-tained hrconn node.

4. Right-click hrconn, and select Properties from the menu. Edit the database con-nection information to work with your setup. Test the changes, and click OK when the connection succeeds. Next, start the Oracle WebLogic Server

instance that’s integrated with Oracle JDeveloper, by selecting Run -> Start Server Instance.

If you are running the integrated Oracle WebLogic Server for the first time, a Create Default Domain dialog box will open. Create a password for the default Oracle WebLogic Server domain. To ensure that the inte-grated Oracle WebLogic Server listens for the localhost and the IP address of your computer, do not select an address from Listen Address.

Click OK to save the changes and to create and configure the default domain for Oracle ADF. Oracle WebLogic Server creates a default domain and then starts the server. Wait for the IntegratedWebLogicServer started. message on the Running: IntegratedWebLogicServer panel before proceeding to the steps in the next section.

creatinG the Bounded taSk FlowThe sample application uses a single param-eterized bounded task flow to populate all region instances with different data content. For this technique to work cor-rectly, the Oracle ADF bindings used in the

task flow must be made configurable with the adaptive bindings technique:5. With the RegionExtreme workspace

open in Oracle JDeveloper, click the Applications tab.

6. Expand the ViewController -> Web Content -> WEB-INF -> btf node, and double-click the departments-flow.xml file to open the task flow diagram.

7. On the Applications tab, expand the Data Controls panel and its AppModuleDataControl node.

8. Drag the createNewDepartmentVO Instance() method entry onto the task flow diagram editor.

9. In the Edit Action Binding dialog box, enter #{pageFlowScope.departments TaskFlowBean.departmentsId} as the departmentId value and #{pageFlow Scope.departmentsTaskFlowBean

.voinstance} as the instanceName value. Click OK. A new method activity is created for you.

10. Choose Window -> Components to open the Components window.

11. Drag the View activity from the Components section of the Components window onto the diagram editor. Change the name of the view activity from view1 to Browse.

12. Repeat step 11, but this time name the view activity Edit.

13. In sequence, click Control Flow Case in the Components window, the method call activity in the diagram, and the Browse view activity in the diagram to create a navigation case. Keep the

Figure 2: Sample application architecture

Holds configuration instances

Provides task flow definitions

Managed bean Bounded task flow

Home.jsf Oracle ADF binding (PageDef)

af:forEach

af:region

Reads task flow instances

Multi-task-flow binding

JA14_ADF.indd 34 5/21/14 11:18 AM

Page 38: oracle20140708-dl

35Oracle adf

Oracle magazine July/august 2014

default name for the navigation case.14. Create a navigation case from the Browse

view to the Edit view, and enter edit as the name of the navigation case.

15. Create a navigation case from the Edit view activity to the Browse view activity, and name it return.

16. Save your work.What you just did: The method call activity you created references a method in the Oracle ADF Business Components applica-tion module that creates new instances of the DepartmentsView view object. The name of the new instance is saved in a pre-built managed bean property. At runtime, the navigation cases you created are used to navigate between the department read-only view and the editable form. 17. In the task flow diagram editor, double-

click the Browse view activity to open the Create ADF Page Fragment dialog box.

18. Click the magnifying glass icon next to the Directory field.

19. In the Choose Directory dialog box, click the Create new subdirectory icon next to the Location field and create a new btf folder under the public_html folder. Under the btf folder you just created, create a departments folder. Click Select.

20. Ensure that the Facelets and Create Blank Page options are selected in the Create ADF Page Fragment dialog box, and click OK to create the new page fragment.

21. With the Browse page open in the visual editor, expand the Data Controls panel on the Applications tab and click the allDepartments collection.

22. Drag the allDepartments collection to the page, and drop it as an Oracle ADF Form.

23. In the Create Form dialog box, click the Read-Only Form and Submit checkboxes to create a read-only form and a button (which you’ll configure next) for navi-gating to the editable page. Click OK.

24. Click Submit in the visual editor, and choose Window -> Properties.

25. In the Properties inspector, change the Text property value to Edit and select edit as the value of the Action property.

26. Click the Bindings tab at the bottom of the visual editor. In the bindings editor, select allDepartmentsIterator in the Executables section.

27. In the Properties inspector, change the value of the Binds property to ${page FlowScope.departmentsTaskFlow

Bean.voinstance}. Do not be con-cerned that a border now surrounds the Binds field.

28. Save your work.What you just did: You created a read-only view to display department data in the regions. Because the sample application uses a single bounded task flow definition to display department information for mul-tiple regions, you used adaptive binding in the allDepartmentsIterator to dynamically determine which ViewObject instance to query data from.29. Click the departments-flow.xml tab

to switch back to the task flow diagram editor.

30. Double-click the Edit view activity, and use the magnifying glass icon next to the Directory field to select the departments folder in public_html/btf. Click Select, and then click OK.

31. Drag the allDepartments collection from the Applications tab’s Data Controls panel to the page, and drop it on the Edit page as an ADF Form.

32. In the Create Form dialog box, click the ADF Input Text w/Label value next to the DepartmentId value binding entry and change it to ADF Output Text w/Label. Then click the Submit checkbox and OK.

33. Click Submit in the visual editor for the Edit page, and choose Window -> Structure.

34. Right-click Submit in the Structure window, and choose Surround With.

35. In the Surround With dialog box, select Panel Group Layout and click OK.

36. In the Structure window, right-click af:panelGroupLayout and select Insert Inside Panel Group -> Spacer.

37. Repeat step 36, except select Button instead of Spacer.

38. In the visual editor, click the Submit button and change its Action property to #{backingBeanScope.edit DepartmentBacking.onSubmit} in the Properties inspector.

39. Click the button 1 button. Using the Properties inspector, change the Text

attribute to Cancel, the Action attribute to return, and the Immediate attribute to true.

40. Save your work.41. Select the Bindings tab at the bottom of

the visual editor for the Edit page.42. In the bindings editor, select

allDepartmentsIterator in the Executables section.

43. In the Properties inspector, change the value of the Binds property to ${page FlowScope.departmentsTaskFlow

Bean.voinstance}.44. Save your work, and close all open page

tabs. The bounded task flow is complete.What you just did: You created an Oracle ADF bound input form in which users can edit department information in a region at runtime. The DepartmentId field in the form is configured to be read-only, and the Submit button action property references a prebuilt managed bean method to commit data changes before returning to the browse page. The Cancel button uses immediate=”true” so the Oracle ADF model is not updated with any changed data when the button is clicked. Like the browse page, the edit page uses adaptive binding to connect to the server-side ViewObject instance.

Creating the Multi-task-FloW BindingNow create and configure the multi-task-flow binding:45. On the Applications tab, double-click

the Home.jsf file in the ViewController -> Web Content -> utf node to open the page in the visual editor.

46. Click the Bindings tab at the bottom of the visual editor.

47. In the binding editor, click the green plus (+) icon in the Executables header.

48. In the Insert Item dialog box, change the selection from Generic Bindings to ADF Task Flow Bindings.

49. Select the multiTaskFlow item, and click OK.

50. In the Insert multiTaskFlow dialog box, add mtb1 as the value of the id attribute and ${viewScope.multiTaskFlowList Bean.multiTaskFlowBindings} as the value of the taskFlowList attribute. (You must use these exact values for the con-

JA14_ADF.indd 35 5/21/14 11:19 AM

Page 39: oracle20140708-dl

36 Oracle adf

July/august 2014 Oracle.cOm/Oraclemagazine

figuration to work with the prebuilt code the workspace uses.) Click OK.

51. Save your work.What you just did: You created and config-ured the multi-task-flow binding in the ADF PageDef file of the Home.jsf page. The task flow binding references the multiTaskFlow-Bindings property in the multiTaskFlowList Bean managed bean to obtain the list of task flows to render in regions.

The managed bean reference is required immediately when the page renders, which is why the EL expression used starts with a $ character instead of the # deferral prefix.

The referenced managed bean is defined in the MultiTaskFlowListBean.java file, located in the oramag.sample.seven.eight .fourteen.view.utf.beans package hier-archy in the ViewController -> Application Sources folder. The managed bean class is documented with Java comments to help you understand how the multi-task-flow binding implementation works and how EL can be used in Java to provide individual input parameters for each task flow.

Building the Region dashBoaRdNext (with the help of prebuilt code seg-ments), add an af:forEach component that adds the task flow binding instances defined in the multi-task-flow binding as regions to the Home.jsf page:52. On the Applications tab, double-click

the forEachCodeSnippet.txt file in the ViewController -> Web Content -> utf node.

53. Select all of the file’s contents (Ctrl+A), and copy them to the clipboard (Ctrl+C).

54. Switch back to the Home.jsf page, and click the Source tab at the bottom of the editor window to show the page in source view.

55. Select Window -> Structure to open the structure panel if it’s not already open.

56. On the Structure panel, expand the f:view -> af:document -> af:form -> af:pageTemplate -> f:facet –> center node.

57. Select af:panelDashBoard.58. In the page source, change

(without using copy/paste) the af:panelDashBoard component defini-tion (now highlighted) from

<af:panelDashboard id="pd1"

rowHeight="150px" />

to

<af:panelDashboard id="pd1"

rowHeight="150px">

</af:panelDashboard>

59. Click between the opening and closing tags of the af:panelDashboard compo-nent, and paste (Ctrl+V) the code from the clipboard.

60. Right-click in the source window, and choose Reformat to improve the code alignment.

note: The af:panelDashBoard component expects af:panelBox or af:region as its child components. Because af:forEach is used to create the panelBox instances at runtime, you see that Oracle JDeveloper flags the af:forEach tag as an error. However, this is a false positive in the inte-grated development environment (IDE). It is not considered an error at runtime, and you can ignore it.61. Close all tabs, and save your work.What you just did: You added a prebuilt code snippet to the panel dashboard com-ponent on the Home.jsf page that reads the number and definitions of task flows to display in a region from the multi-task-flow binding you configured earlier. In addition, the code you pasted contains a panel box that is shown whenever no department is selected for display as a region on the dashboard.

Running the application62. On the Applications tab, navigate to

ViewController -> Web Content -> WEB-INF and double-click the adfc-config.xml file.

63. In the task flow diagram, right-click the Home view activity and choose Run. (You must run the page from the adfc-config .xml file—not from the Applications tab—so that the task flow context is set when the page displays.)

64. When the page displays in your browser, use the checkboxes on the right to select the departments to display on the dashboard. Click the Update Dashboard button to update the dashboard view, and try out the other dashboard features.

conclusionDynamic regions are a frequent user requirement. Oracle JDeveloper 11g Release 2 and Oracle JDeveloper 12c address this requirement with multi-task-flow binding. This article showed how to add dynamic bindings for a dynamic dashboard that uses a single bounded task flow to render an unlimited number of regions, with each region sharing the Oracle ADF data control scope for best performance.

Task flows in regions execute sequentially. When you use the multi-task-flow binding feature, minimize the number of flows added to a page. Each task flow comes with a per-formance overhead determined by the data query and the initialization tasks it performs.

Also note that when an application uses dynamic regions, users might switch between bounded task flows while task flows have pending transactions. The risks associated with premature termination of bounded task flows through dynamic regions and how to handle such a case are documented in the “Oracle ADF Task Flow Transaction Fundamentals” white paper (see “Next Steps”).

Frank Nimphius is a senior principal product manager for Oracle JDeveloper and Oracle ADF. He is a coauthor of Oracle Fusion Developer Guide: Building Rich Internet Applications with Oracle ADF Business Components and Oracle ADF Faces (McGraw-Hill, 2010).

DOWNLOAD Oracle JDeveloper 12cbit.ly/KDqHjAthe sample application for this articlebit.ly/1lZ4nXwREAD more about Oracle ADForacle.com/technetwork/developer-tools/adf

“Using Task Flows as Regions”bit.ly/1onhggq

“Towards Ultra-Reusability for ADF - Adaptive Bindings”bit.ly/1mPPoBY

“Oracle ADF Task Flow Transaction Fundamentals”bit.ly/1jAmuCM

“A Template with Behavior”bit.ly/1lqjZST

NExT STEpS

JA14_ADF.indd 36 5/21/14 11:19 AM

Page 40: oracle20140708-dl

DBA 37

oracle magazine July/august 2014

manageability By arup NaNda

Managing ExpresslyManage Oracle Database with Oracle Enterprise Manager Database Express, a built-in browser-based graphical tool.

How do you administer Oracle Database? Command-line tools such as SQL*Plus

may be all you need in many situations, but you may also find a graphical tool useful in some cases, such as for displaying perfor-mance statistics.

Oracle Database 12c includes a built-in graphical management tool called Oracle Enterprise Manager Database Express. It’s a web-based tool you can launch from any web browser, and no operating-system-level installation is required. Oracle Enterprise Manager Database Express is extremely lightweight and easily configurable, and in this article, you will learn how to configure and use it to perform your daily DBA chores.

SetupOracle Enterprise Manager Database Express is installed and configured with the database, but additional configuration may be required if your database uses nondefault values for parameters. Here are the manual steps for configuring Oracle Enterprise Manager Database Express. 1. To check the port number for the data-

base listener, enter lsnrctl status at the command line and look for the string (PORT= in the output.

2. The default port for the database listener is 1521. If the database listener listens on a different port—say, 1526—you must set the local_listener database param-eter with the following SQL:

SQL> alter system set local_

listener='(ADDRESS = (PROTOCOL=TCP)

(HOST=localhost)(PORT=1526))';

3. Oracle Enterprise Manager Database Express is web-based, so it needs a web server. Oracle XML Database (Oracle XML DB) functionality in Oracle Database 12c provides a lightweight

built-in web server. To use the Oracle XML DB web server for Oracle Enterprise Manager Database Express, make sure the DISPATCHERS parameter of the database instance includes the entry for the Oracle XML DB service:

SQL> show parameter dispatchers

NAME TYPE VALUE

————————————— ——————— ———————————————————

Dispatchers string (PROTOCOL=TCP)

(SERVICE=ANN1XDB)

4. If the DISPATCHERS parameter is not set, include the following line in the param-eter file:

dispatchers="(PROTOCOL=TCP)

(SERVICE=<sid>XDB)"

and restart the instance. Note that <SID> is the ORACLE_SID. Replace <SID> with the ORACLE_SID value for your instance.

5. To confirm that the Oracle XML DB con-figuration is working, as well as to get the port number of the listener, execute the following SQL:

select dbms_xdb_config.gethttpsport()

from dual;

DBMS_XDB_CONFIG.GETHTTPSPORT()

———————————————————————————————————

5500

6. From the output, you know that the Oracle XML DB listener is listening on port number 5500. In this case, you can launch Oracle Enterprise Manager Database Express from any web browser by typing the following URL:

https://<servername>:5500/em

Replace <servername> with the name of your database host. For example, if your host is named prolin1.proligence.com, enter the URL as

https://prolin1.proligence.com:5500/em

7. If the port number is not defined or your organizational policies do not allow that specific port number, you can use a different port number for the listener for Oracle Enterprise Manager Database Express. To use port number 5501, for example, set the new port number as follows:

begin

dbms_xdb_config.sethttpsport(5501);

end;

The Oracle XML DB listener for Oracle Enterprise Manager Database Express is now configured for port 5501. You can launch Oracle Enterprise Manager Database Express from any web browser by entering the URL as

https://prolin1.proligence.com:5501/em

The first screen of Oracle Enterprise Manager Database Express asks you for authentication. Enter a database username and password. Remember, you need a database username. This is different from the standalone version of Oracle Enterprise Manager Cloud Control (formerly known as Oracle Enterprise Manager Grid Control), where you enter a username from the Oracle Enterprise Manager repository—not Oracle Database.

Oracle Enterprise Manager Database Express comes with two predefined roles—EM_EXPRESS_ALL and EM_EXPRESS_BASIC. The Oracle Database DBA role is

OraclE DatabasE 12c

JA14_DBA_EM Express.indd 37 5/19/14 2:51 PM

Page 41: oracle20140708-dl

38 manageability

July/august 2014 Oracle.cOm/Oraclemagazine

already granted these two Oracle Enterprise Manager Database Express roles, so any user with a DBA role will not need to be granted these Oracle Enterprise Manager Database Express roles explicitly.

Database Home PageEnter a valid database username and pass-word to see the database home page, as shown in Figure 1. The main menu—right below the Oracle Enterprise Manager Database Express 12c banner—displays five items. The first is the database name and the version, which is ANN1 and 12.1.0.1.0 in this case. From any other screen, click this item to return to the database home page.

The next menu item—Configuration—displays four submenus: •Initialization Parameters. Click this item to

display and edit initialization parameters and their descriptions.•Memory. Click this item to see memory

allocations, including system global area (SGA) and program global area (PGA). •Database Features Usage. Click this item

to see database features, their descrip-tions, and when they were used. (High-water-mark analysis is also available through this item.) •Current Database Properties. Click this

item to see properties such as the character set and the time zone of the database.

The next menu item—Storage—displays five submenus:•Tablespace. Click this item to see the list

of tablespaces, datafiles, their sizes, and the free space inside them. (You can also create and alter existing tablespaces here.) •Undo Management. Click this item to

see how the undo mechanism is working in your database. (Two of the very useful graphically represented undo-related metrics here are the rate of generation and the space used.) •Redo Log Groups. Click this item to see

the online redo log files for the database. (It also enables you to add, drop, and alter redo log groups.) •Archive Logs. Click this item to see the list

of archived logs, when they were created, the system change number (SCN) of the changes contained in them, and more.•Control Files. Click this item to see the

control files for the database, the size and number of records in different sections of the control file, and more.

The next menu item—Security—enables you to perform database-security-related

activities, such as managing users and roles. It displays three submenus:•Users. Click this item to see the list of users

and details such as status (active, locked, or password expired), default tablespace,

Figure 2: Performance Hub

Figure 3: Activity, as shown in Performance Hub

Figure 1: Oracle Enterprise Manager Database Express home page

JA14_DBA_EM Express.indd 38 5/19/14 2:56 PM

Page 42: oracle20140708-dl

39manageability

oracle magazine July/august 2014

when they were created, and expiration dates for passwords. (This item also enables you to alter users and create new ones.)•Roles. Click this item to create, alter, and

display database roles.•Profiles. Click this item to create, alter, and

display database profiles. (Profiles enable you to control how long the user session is allowed to remain active, control how many invalid login attempts are permitted before the account is locked, define the function to enforce the complexity of the password, and so on.)

PerformanceThe last menu item is Performance. (Note that you need to license the extra-cost Oracle Diagnostics Pack to use this menu item.) I will devote more attention to it here, because this is an item you will likely spend a lot of time on.

The Performance menu item includes two submenus. Let’s take the first one—Performance Hub—which displays a screen similar to the one shown in Figure 2. The topmost graph, called the time picker, shows the average active sessions across various points in time.

You can drag the shadow box across the graph to focus on the activities in a par-ticular time period. The information below the graph will change to reflect the activi-ties in that period. The various color bands represent different activities—blue for user I/O, green for CPU, and so on. Place your cursor above a color band. A pop-up text box displays the metric that this bar rep-resents and its value. A camera icon on the graph (at around 07:00 p.m. in Figure 2) indicates that an Automatic Database Diagnostic Monitor task was run at that time automatically (Automatic Database Diagnostic Monitor is a feature of Oracle Database). If you place your cursor above that icon, you will see the task ID, which enables you to check the details of that Automatic Database Diagnostic Monitor task later. You can check the details on that task in the ADDM tab on the screen shown in Figure 2.

The four boxes below the time picker are self-explanatory: the load average of the database host, memory, I/O, and the activi-

ties of the active sessions. These are all “active” displays—that is, if you move your cursor over a part of the diagram, you will see the name and the value of the metric it represents and the time it was collected. You can go back as far into the past as data is available in the Automatic Workload Repository feature of Oracle Database.

It is easier to see the power of these charts and graphs by examining them in the context of a real problem. Suppose you are investigating the cause of a database perfor-mance problem. From the time picker, you can see that there is a spike at 7:10:00 p.m., as shown in Figure 3. From the main menu, choose Performance and then from the tabs below the time picker, click Activity, which shows total activity and the associated wait classes. The section at the bottom left shows the SQL statements with the highest activity. The colored bar next to each SQL

ID shows the breakdown of the wait classes for that activity. Place your cursor over the colored bar, and a pop-up box will show the name and the value of the metric.

In the chart in Figure 4, you can clearly see that the first SQL ID—4sjngb1tsayy9—is responsible for most of the activity in the database. Your next diagnostic step is to find out why that SQL statement is so active. Click the 4sjngb1tsayy9 SQL ID to get the details on that SQL statement. That brings up the SQL Details screen shown in Figure 4. Click the Execution Statistics tab.

The SQL Details screen includes two types of output. At the top, in the Plans area, you can see the impact of the SQL state-ment represented through various metrics, including the database time, the number of I/O requests, the rows returned, the number of times the statement was parsed, and so on. If the SQL statement has had different

Figure 4: SQL Details screen

Figure 5: SQL Tuning Advisor

JA14_DBA_EM Express.indd 39 5/19/14 2:56 PM

Page 43: oracle20140708-dl

40 manageability

July/august 2014 Oracle.cOm/Oraclemagazine

execution plans, Oracle Enterprise Manager Database Express will grab the plans from all the sources—the cursor cache, the Automatic Workload Repository, and so on—and will display the statistics for all execu-tion plans, one per line. The icon in the first column—labeled Source—shows the source of the information on the execution plan. Displaying details on all plans is very useful if you have seen different performance charac-teristics for the same SQL statement.

A very important metric—Buffer Gets, which shows the number of buffers fetched—is shown in the last column. This number in my example is 16,808—a signifi-cantly large number, which probably explains why this SQL statement had so much impact on performance. To understand why this SQL statement had so many buffer gets, look at the bottom part of the screen, in the Plan Details area, where the execution plan of the SQL statement is shown. Each step in the plan includes statistics such as the estimated number of rows and bytes, shown both as values and graphically. Note the HASH JOIN step—the Estimated Bytes value shows 18,447 petabytes! This is just an estimate; it may not be accurate, but it does give you an idea of the amount of data this SQL statement will fetch. Because the data is stored in buffers, the SQL statement fetches a large number of buffers—explaining the large buffer gets metric for this SQL.

SQL Tuning AdviSorDo you want to see if this SQL can be tuned to improve its performance? Oracle Enterprise Manager Database Express can help you do that. Click the Tune SQL button at the top of the SQL Details screen, just below the menu bar, to bring up the SQL Tuning Advisor feature of Oracle Database. (You can also invoke it from the main menu bar from the Performance tab by choosing the SQL Tuning Advisor submenu.) Clicking Tune SQL creates a task that may take some time to complete. When it completes, you will be presented with a screen that displays the results of the tuning effort, as shown in Figure 5.

The findings are shown in boxes toward the right of the screen. The first box, SQL Examined Count, shows a bar chart of the number of SQL statements examined

for tuning. The blue area in the vertical bar shows the count of SQL statements where SQL Tuning Advisor has no findings, meaning that there are no tuning recom-mendations. If the green area in the vertical bar shows the count of SQL statements where SQL Tuning Advisor reported findings, it means that there are tuning recommen-dations. Recommendations might include implementing a SQL profile or restructuring (rewriting) the SQL. The last box shows the possible savings in database time if you implement the SQL profile suggested by SQL Tuning Advisor. The magnitude of the poten-tial savings will help you decide whether the recommendations are worth exploring.

While you mull over the displayed poten-tial savings resulting from implementation of the SQL profile suggested by SQL Tuning Advisor, you will naturally be curious to learn how SQL Tuning Advisor computed the savings. The SQL profile does not change the SQL; it changes only the execution plan. If you want to learn how the plan will be

different after the SQL profile is applied, click the value for that SQL statement in the bottom box, Top SQL Statements, in the Id column. The details of the plan changes will appear, as shown in Figure 6. The tabs show Original Plan for the SQL statement and Plan Using SQL Profile—the modified plan. But the screen displays more than the modi-fied plan. It also shows—graphically and as values—the estimated operation cost and the rows and bytes of data at each step of the execution plan. The display helps you visualize the step with the biggest perfor-mance impact and how that changes from the original to the modified plan.

Happy with the modified plan? Just click the Implement button at the top of the screen. It will implement the SQL profile for that SQL statement, and the modified plan will be in effect. Don’t like the plan? Well, no harm done. The SQL profile is only a sugges-tion by SQL Tuning Advisor; it’s not imple-mented—unless you click Implement—and can be ignored. Repeat this SQL Tuning

Figure 8: Multitenant database home page

Figure 6: Specific details of the recommendations

Figure 7: Oracle RAC database home page

JA14_DBA_EM Express.indd 40 5/19/14 2:57 PM

Page 44: oracle20140708-dl

41manageability

oracle magazine July/august 2014

Advisor review for all of your high-impact SQL statements.

With Oracle Enterprise Manager Database Express and SQL Tuning Advisor, you can not only identify the high-impact SQL state-ments; you can also get recommendations on improving their performance quickly and compare the effectiveness of the suggestions with the original—all with just a few clicks.

ExprEss CompatibilityOracle Enterprise Manager Database Express also works with Oracle Real Application Clusters (Oracle RAC) databases. The Database home page, similar to the screen shown in Figure 7, shows all the database instances and details of each, such as the host the instance runs on, how long the instance has been up, and so on. A very useful display is the graphical representation of the CPU, memory, and active sessions on each of the instances. A visual examination

of the display can quickly reveal whether the instances are equally loaded or skewed.

Oracle Enterprise Manager Database Express also works on Oracle Multitenant databases. The database home page shows the details of the multitenant container database (CDB). However, the Performance panel at the right has a tab labeled PDBs that shows the pluggable databases (PDBs) running on the CDB, as shown in Figure 8. The Performance bar chart shows the divi-sion of various PDBs, differentiated by mul-tiple colors.

ConClusionOracle Enterprise Manager Database Express provides Oracle Database 12c DBAs an out-of-the-box graphical interface for common data-base management tasks. This article explored Oracle Enterprise Manager Database Express features, described basic tasks, and demon-strated how to troubleshoot common perfor-

mance issues and use SQL Tuning Advisor to improve database performance.

LEARN more about Oracle Enterprise Manager Database Express Oracle Database 2 Day DBA 12c Release 1 (12.1)bit.ly/1lBKmow

DOWNLOAD Oracle Database 12cbit.ly/1czAk2I

NExt StEpS

Arup Nanda ([email protected]) has been an Oracle DBA since 1993, handling all aspects of database administration, from

performance tuning to security and disaster recovery. He was Oracle Magazine’s DBA of the Year in 2003 and received an Oracle Excellence Award for Technologist of the Year in 2012.

Print. Digital. Mobile.

Copyright © 2014, 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.

Go where the conversation lives. Connect with Oracle Magazine on your favorite social

channel and be a part of our growing community.

Join Us.

Oracle Magazine @OracleMagazineOracleMagazine

JA14_DBA_EM Express.indd 41 5/19/14 2:57 PM

Page 46: oracle20140708-dl

Database Application Developer 43

oracle magazine July/august 2014

Pl/SQl By steven Feuerstein

The Joy of Low-Hanging FruitAre you using BULK COLLECT and FORALL for bulk processing yet?

The following is based on true events. The names have been changed to protect

people and intellectual property.I recently spent a few days with a team

of developers at extremememe.info, an up-and-coming Web 3.0 paradigm-shifter that analyzes internet memes, tracks them to their source, and—best of all—predicts new and future memes.

The developers at extremememe.info are very knowledgeable about Oracle Database and PL/SQL, but as is the case with many other developers, they have little time to explore new technology features. They struggle to keep up with the demands of their users, and even when they know about some great new feature, it can be a chal-lenge to convince management to commit the resources to apply those features to stable production code.

We interspersed training on PL/SQL techniques with reviews of their code and, in the process, came across a program that runs in a daily batch process and updates the status of all the memes. Unfortunately, as extremememe.info’s data volumes grew, the process was taking longer and longer, approaching 23 hours. Given how uncom-fortably close that was to a full day, we decided to take a closer look.

On ClOser InspeCTIOnThe meme update process uses the fol-lowing three tables: em_memes, em_ mentions, and em_incoming. (You can create these tables by using the emmemes_setup.sql script in the download for this article, at bit.ly/QntyHo). Note that the columns of these tables have been simpli-fied for the purposes of this article.

The developers at extremememe.info use the em_memes table for all the memes of which they are aware and whose status they track. (Note that setting the default

value of the primary key to the next sequen-tial value is an Oracle Database 12c feature; in Oracle Database 11g Release 2 and earlier, you would use a trigger to achieve the same result. The em_memes_setup.sql script includes this code.)

CREATE TABLE em_memes

(

meme_id INTEGER

DEFAULT

em_memes_seq.NEXTVAL

PRIMARY KEY,

meme_name VARCHAR2 (1000)

UNIQUE,

discovered_on DATE,

meme_status VARCHAR2 (100)

)

/

The meme_status value can be VIRAL, DORMANT, HOAX, and so on.

extremememe.info has a table for all the mentions of, or references to, a meme:

CREATE SEQUENCE em_mentions_seq

/

CREATE TABLE em_mentions

(

mention_id INTEGER

DEFAULT

em_mentions_seq.NEXTVAL

PRIMARY KEY,

meme_id INTEGER

REFERENCES

em_memes (meme_id),

source_name VARCHAR2 (100),

source_details CLOB,

occurred_on DATE

)

/

Meme mentions are loaded from many different sources, and extremememe.info relies on a staging table to collect data from all sources:

CREATE TABLE em_incoming

(

meme_name VARCHAR2 (1000),

source_name VARCHAR2 (100),

occurred_on DATE,

mention_details CLOB

)

/

The developers at extremememe.info also use the following em_memes_pkg package to log errors and to perform some critical proprietary computations, based on the content of those tables:

CREATE OR REPLACE PACKAGE em_memes_pkg

ORACLE DATABAsE

Table 1: em_memes_pkg elements and descriptions

em_memes_pkg.incoming_t This is a nested table type that contains rows of data from the em_incoming table.

em_memes_pkg.mentions_t This is a nested table type that contains rows of data from the em_mentions table.

em_memes_pkg.meme_ids_t This is a nested table type that contains primary keys from the em_memes table.

em_memes_pkg.log_error This is a generic (and typical) error-logging mechanism. Defined as an autonomous transaction, it writes out the basic error information available from the DBMs_UTILITY functions (and more) to a log table and then commits just that insert.

em_memes_pkg.unpacked_incoming This is a function that converts a row of incoming data (whose mention details column is an XML document that holds the different formats of source information) into a record that can be inserted into the em_mentions table.

em_memes_pkg.reset_meme_status The heart and soul of the extremememe.info proprietary process, this procedure analyzes the contents of the mentions table and ascertains the status of the meme.

I-HU

A CH

En

JA14_PLSQL.indd 43 5/23/14 4:00 PM

Page 47: oracle20140708-dl

44 PL/SQL

July/august 2014 OracLe.cOm/OracLemagazine

IS

TYPE incoming_t IS TABLE OF

em_incoming%ROWTYPE;

TYPE mentions_t IS TABLE OF

em_mentions%ROWTYPE;

TYPE meme_ids_t IS TABLE OF

em_memes.meme_id%TYPE;

PROCEDURE log_error (

error_code_in

IN INTEGER DEFAULT SQLCODE,

error_msg_in

IN VARCHAR2

DEFAULT

DBMS_UTILITY.format_error_stack);

FUNCTION unpacked_incoming (

incoming_in IN

em_incoming%ROWTYPE)

RETURN em_mentions%ROWTYPE;

PROCEDURE reset_meme_status (

meme_id_in IN

em_memes.meme_id%TYPE,

new_status_out OUT

em_memes.meme_status%TYPE);

END;

/

For space reasons, I will not provide the package body code for em_memes_pkg, but Table 1 lists what the elements in the speci-fication provide.

Listing 1 shows the code for the status update process in the em_update_status procedure. (Listing 1 is available as em_update_status_old.sql in the download for this article at bit.ly/QntyHo.) Descriptions of the key parts of the em_update _status package appear at the end of Listing 1.

I was dismayed when I saw extremememe .info’s implementation of em_memes_pkg .reset_meme_status, because I found in that procedure a cursor FOR loop that contained two nonquery data manipulation language (DML) statements. That is a classic anti- pattern, a general pattern of coding that should be avoided. It should be avoided because the inserts and updates are changing the tables on a row-by-row basis, which maximizes the number of context switches

(between SQL and PL/SQL) and consequently greatly slows the performance of the code. Fortunately, this classic antipattern has a classic, well-defined solution: use BULK COLLECT and FORALL to switch from row-by-row processing to bulk processing.

The presence of this antipattern was also a source of delight for me. The developers needed to improve the performance of the procedure significantly. That would have been very hard to do if they had already taken full advantage of SQL and PL/SQL

1 CREATE OR REPLACE PROCEDURE em_update_status 2 IS 3 CURSOR incoming_cur 4 IS 5 SELECT * FROM em_incoming; 6 7 l_mention em_mentions%ROWTYPE; 8 l_status em_memes.meme_status%TYPE; 9 BEGIN 10 FOR incoming_r IN incoming_cur 11 LOOP 12 BEGIN 13 SAVEPOINT new_transaction; 14 15 l_mention := em_memes_pkg.unpacked_incoming (incoming_r); 16 17 INSERT INTO em_mentions (meme_id, 18 source_name, 19 source_details, 20 occurred_on) 21 VALUES (l_mention.meme_id, 22 l_mention.source_name, 23 l_mention.source_details, 24 l_mention.occurred_on); 25 26 em_memes_pkg.reset_meme_status (l_mention.meme_id, 27 l_status); 28 29 IF l_status IS NOT NULL 30 THEN 31 UPDATE em_memes 32 SET meme_status = l_status 33 WHERE meme_id = l_mention.meme_id; 34 END IF; 35 EXCEPTION 36 WHEN OTHERS 37 THEN 38 em_memes_pkg.log_error; 39 ROLLBACK TO new_transaction; 40 END; 41 END LOOP; 42 END;

Code Listing 1: Meme status updater, version 1

Line(s) Description

10 For each row in the staging table (em_incoming)…

12, 40 Put the entire body of the loop inside its own nested block so that any exception can be trapped and logged.

13 Set a savepoint for this new transaction.

15 Convert the incoming row to a record that can be inserted into the em_mentions table.

17–24 Insert a single row into the em_mentions table.

26–27 Compute the new status for the meme, based on the new mention.

29–34 If the status isn’t NULL, update the em_memes table with that status.

35–39 If anything goes wrong, log the error and then erase the effects of the insert and/or the update by rolling back to the savepoint.

JA14_PLSQL.indd 44 5/23/14 4:01 PM

Page 48: oracle20140708-dl

45PL/SQL

oracLe magazine July/august 2014

performance optimization features. Because they had not done so, they were looking at a procedure full of low-hanging fruit. That is, they were looking at the possibility of solving their problem with a relatively straight-forward change to their existing code.

Code Review identifies a LogiC fLawI shared my dismay and delight with the extremememe.info developer team. They were excited about the potential improve-ments and were eager to get started. Then I noticed something odd about the algorithm they’d presented. A brief Q&A session soon clarified matters:

“Can the table of incoming data contain more than one reference to the same meme?”

Heads nodded vigorously. They told me that the more viral the behavior of a meme, the more mentions there would be. In the case of some very popular memes, the daily incoming could contain millions of refer-ences to the same meme. That led directly to my second question:

“Then why are you updating the meme status after each insert of a mention?”

Now eyebrows shot up and heads were turned. “Wow,” said one developer. “Oh. My. Gosh.” said another.

The team lead turned to me. “We never thought of that before. We’ve been doing an enormous amount of unnecessary processing. That’s kind of embarrassing. It sure helps to have a fresh pair of eyes looking at our code.”

Yes, it does. Never underestimate the

power of your brain to hide the obvious from you. Once you’ve spent a lot of time writing or working with a program, you don’t really see the code anymore. You see what you think the code should be. When someone else looks at it, they come at it without any preconceived notions and perceive very dif-ferent aspects of the program.

if you’re the only one who’s ever looked at your code, you can be certain it contains bugs and perhaps even substantial algo-rithm errors.

Members of the extremememe.info developer team quickly agreed that the statuses of the memes should be updated only after all mentions were inserted. Furthermore, only those memes with new mentions should be updated.

In the remainder of this article, I show you the end result of the rewrite of extremememe.info’s em_memes_pkg .reset_meme_status procedure into a program that runs significantly faster and made it possible for data volumes to grow substantially while still allowing the batch process to be finished in a single day. My stevenfeuersteinonplsql.blogspot.com blog expands on this article to take you through those changes in a step-by-step process.

on switChing to BuLk PRoCessingAlthough row-by-row processing can be unacceptably slow for large volumes of data, it offers a significant advantage for execu-tion of nonquery DML: it is easy to define and manage a transaction.

In the reset_meme_status procedure, the transaction consists of two DML processes:1. Insert a row into the mentions table.2. Update the memes table.

A quick glance at the original procedure code in Listing 1 shows that these two pro-cesses go together: if the insert fails, the update won’t execute. If the update fails, the insert will be rolled back. And in either case, the error will be logged and pro-cessing will continue.

With the switch to bulk processing, the procedure moves from a row-by-row approach to a phased approach. For reset_meme_status, this means that the procedure will perform all the inserts first and then execute all the updates.

Generally, you can think of bulk pro-cessing as having three distinct phases:•Phase 1: Populate the collections that

will drive the FORALL processing. This is usually done with a BULK COLLECT query.•Phase 2: Modify the contents of the col-

lections as needed to prepare them for Phase 3.•Phase 3: Execute the FORALL statement to

push the data into the table(s).Figure 1 shows these three phases. In the real world, life is complicated and

there are always exceptions. Sometimes you will not need Phase 1, because the col-lections are already filled and being passed to your program, and sometimes you can skip Phase 2, because the collection is Figure 1: Bulk processing phases

Phase 1: BULK COLLECT from table(s) to collectionRelational

Table

RelationalTable

Phase 3: FORALL from collection to table(s)

Phase 2: Modify contents of collection according to requirements

Each PL/SQL article offers a quiz to test your knowledge of the information provided in it. The quiz appears below and also at PL/SQL Challenge (plsqlchallenge.com), a website that offers online quizzes on the PL/SQL language as well as SQL, Oracle Application Express, database design, and deductive logic.

Here is your quiz for this article:Which of the following statements about

BULK COLLECT and FORALL are correct?a. System global area (SGA) is the only type of memory affected by a switch from row-by-row processing to bulk processing.b. You can use BULK COLLECT only with non-dynamic queries.c. You can have only one nonquery DML state-ment inside a FORALL statement.d. If you want to make sure the SQL engine at least attempts to execute every DML state-ment generated by FORALL, add the SAVE EXCEPTIONS clause.

Take the Challenge

JA14_PLSQL.indd 45 5/23/14 4:01 PM

Page 49: oracle20140708-dl

46 PL/SQL

July/august 2014 OracLe.cOm/OracLemagazine

ready to go, to be used immediately in the FORALL statement.

The Bulk Processing imPlemenTaTionThe code in Listing 2 is the rewrite of the too slow em_update_status procedure. This new version takes advantage of nested procedures (procedures declared within another procedure or function). The code for these nested procedures—get_next_ set_of_incoming, unpack_and_record_ mentions, and reset_meme_statuses—is presented and analyzed later in this article. Descriptions of the key parts of the revised em_update _status package appear at the end of Listing 2.

Now let’s take a closer look at each of the nested procedures, correlating each of these with the phases I described earlier.Phase 1: get incoming rows. When you’re switching to BULK COLLECT to fetch data, there are a few key guidelines to keep in mind:•You can use BULK COLLECT with static

SELECT statements (SELECT BULK COLLECT INTO and FETCH BULK COLLECT INTO) and dynamic queries (EXECUTE IMMEDIATE BULK COLLECT INTO).•If your original code contains a cursor

FOR loop that fetches many rows (thou-sands and higher) but the loop body does not have any nonquery DML (inserts, updates, deletes), you probably do not need to switch to BULK COLLECT. The PL/SQL compiler automatically optimizes cursor FOR loops to return 100 rows with each fetch.•BULK COLLECT and FORALL work with

PL/SQL collections—arraylike structures. These collections consume process global area (PGA) memory, which is allocated per session. It is possible for sessions to run out of memory and return the “ORA-04030: out of process memory” error. The best way to manage memory in bulk processing is to use the LIMIT clause with BULK COLLECT.•Any collections populated by BULK

COLLECT are either empty or filled sequen-tially from index value 1. This means that every index value between that returned by the FIRST method (lowest defined index value) and the LAST method (highest defined index value) is defined.

With all that in mind, let’s now imple-ment the get_next_set_of_incoming procedure (called in the new em_update_status procedure). The get_next_set_ of_incoming procedure passes back a collection of incoming records; BULK COLLECT will improve the performance, and the LIMIT parameter will help control PGA consumption:

PROCEDURE get_next_set_of_incoming (

incoming_out

OUT NOCOPY em_memes_pkg.incoming_t)

IS

BEGIN

FETCH incoming_cur

BULK COLLECT INTO incoming_out

LIMIT bulk_collect_limit_in;

END;

First, note that I use the NOCOPY hint in my parameter definition. By using NOCOPY, I’m asking Oracle Database to not make a local copy of my collection inside the proce-dure. The result will be lower PGA consump-tion and improved performance.

1 CREATE OR REPLACE PROCEDURE em_update_status ( 2 bulk_collect_limit_in IN PLS_INTEGER DEFAULT 100) 3 IS 4 bulk_errors EXCEPTION; 5 PRAGMA EXCEPTION_INIT (bulk_errors, -24381); 6 7 CURSOR incoming_cur 8 IS 9 SELECT * FROM em_incoming; 10 11 l_incoming em_memes_pkg.incoming_t; 12 13 l_affected_meme_ids em_memes_pkg.meme_ids_t; 14 := em_memes_pkg.meme_ids_t (); 15 16 PROCEDURE get_next_set_of_incoming .... 17 PROCEDURE unpack_and_record_mentions .... 18 PROCEDURE reset_meme_statuses .... 19 20 BEGIN 21 OPEN incoming_cur; 22 23 LOOP 24 get_next_set_of_incoming (l_incoming); 25 EXIT WHEN l_incoming.COUNT = 0; 26 27 unpack_and_record_mentions (l_incoming, l_affected_meme_ids); 28 END LOOP; 29 30 CLOSE incoming_cur; 31 32 reset_meme_statuses (l_affected_meme_ids); 33 END;

Code Listing 2: Meme status updater, version 2

Line(s) Description

2 BULK COLLECT returns multiple rows with each fetch. This parameter controls the number of rows fetched.

4–5 Because the original procedure traps exceptions, logs the errors, and continues processing, use SAVE EXCEPTIONS in the FORALL statements and include an exception handler for ORA-24381.

11–13 Declare nested tables based on the packaged types to be used by the nested procedures.

16–18 The nested procedures.

21–32 The now small and very readable executable section. Here’s the narrative version of the code:•Open the cursor that identifies all the incoming rows to be processed.•Get the next N rows of incoming data. Stop when the collection is empty.•Unpack each incoming row, and insert it into the mentions table. Add all IDs of memes that were

mentioned into the collection of affected memes.•After inserting all mentions, reset the statuses of only those memes that were affected.

JA14_PLSQL.indd 46 5/23/14 4:02 PM

Page 50: oracle20140708-dl

47PL/SQL

oracLe magazine July/august 2014

Next, because I already opened the cursor on line 21 of the new em_update_status procedure, all I need to do in this get_next_set_of_incoming procedure is fetch. And I want to retrieve multiple rows with each fetch, so I put the keywords BULK COLLECT in front of INTO and then provide a collection after INTO.

I then add the LIMIT clause, which tells Oracle Database to retrieve up to that number of rows with each FETCH. I could have provided a literal instead of a param-eter, as in

LIMIT 100;

In fact, 100 is a good default value. You get a nice boost in performance, and you don’t consume enormous amounts of PGA.

Yet I hesitate to hard-code the value. If over time this procedure needs to work with more and more data, I may want to experiment with different limit values to see if I can coax more performance out of the process without breaking the PGA bank.

By passing the limit value as a parameter, I can change the value whenever I want without having to recompile the code.

OK, I’ve got the next N rows of incoming data. Now it’s time to move them to the em_mentions table. Phases 2 and 3: Unpack and record mentions. With phased processing, you do not unpack a single row and then insert it into a table. Instead, you unpack all the rows fetched and then push them all into a table by using FORALL. In this case, all the rows fetched by get_next_set_of_incoming will be unpacked and pushed into the em_ mentions table with FORALL.

1 PROCEDURE unpack_and_record_mentions ( 2 incoming_in IN em_memes_pkg.incoming_t, 3 affected_meme_ids_out IN OUT em_memes_pkg.meme_ids_t) 4 IS 5 l_affected_this_time em_memes_pkg.meme_ids_t; 6 l_mentions em_memes_pkg.mentions_t := em_memes_pkg.meme_ids_t(); 7 l_status em_memes.meme_status%TYPE; 8 9 PROCEDURE add_to_affected_memes10 IS11 BEGIN12 affected_meme_ids_out :=13 affected_meme_ids_out14 MULTISET UNION DISTINCT l_affected_this_time;15 END;1617 PROCEDURE record_errors18 IS19 l_bad_index PLS_INTEGER;20 BEGIN21 FOR indx IN 1 .. SQL%BULK_EXCEPTIONS.COUNT22 LOOP23 l_bad_index := SQL%BULK_EXCEPTIONS (indx).ERROR_INDEX;2425 em_memes_pkg.log_error (26 error_code_in => SQL%BULK_EXCEPTIONS (indx).ERROR_CODE,27 error_msg_in => 'Unable to insert mention for incoming mention '28 || incoming_in (l_bad_index).meme_name29 || '-'30 || incoming_in (l_bad_index).source_name31 || '-'32 || TO_CHAR (33 incoming_in (l_bad_index).occurred_on,34 'YYYY-MM-DD HH24:MI:SS'));35 END LOOP;36 END;37 BEGIN38 l_mentions.EXTEND (incoming_in.COUNT);3940 FOR indx IN 1 .. incoming_in.COUNT41 LOOP42 l_mentions (indx) :=43 em_memes_pkg.unpacked_incoming (incoming_in (indx));44 END LOOP;4546 FORALL indx IN 1 .. l_mentions.COUNT SAVE EXCEPTIONS47 INSERT INTO em_mentions (meme_id,48 source_name,49 source_details,50 occurred_on)51 VALUES (l_mentions (indx).meme_id,52 l_mentions (indx).source_name,53 l_mentions (indx).source_details,54 SYSDATE)55 RETURNING meme_id56 BULK COLLECT INTO l_affected_this_time;5758 add_to_affected_memes;59 EXCEPTION60 WHEN bulk_errors61 THEN62 add_to_affected_memes;6364 record_errors;65 END;

Code Listing 3: Unpack and record mentions

The PL/SQL Challenge quiz in last issue’s “Writing SQL in Oracle Application Express” article offered different ways to implement the query for an Oracle Application Express interactive report so that it could return data from two different queries. Choices (b) and (c) are correct: you can use a table function or, for simpler scenarios, a union of queries that are mutually exclusive. You cannot, however, use a dynamic query with an inter-active report, so choice (a) is incorrect.

Answer to Last Issue’s Challenge

JA14_PLSQL.indd 47 5/23/14 4:02 PM

Page 51: oracle20140708-dl

48 PL/SQL

July/august 2014 OracLe.cOm/OracLemagazine

Listing 3 shows the implementation of the unpack_and_record_mentions pro-cedure. As you can see, it is much more involved than the code required to fetch data. That’s because it contains an INSERT, which means that you have to pay a lot of attention to error processing.

Table 2 includes descriptions of the significant lines of code in Listing 3. These descriptions are out of order (not simply listed from the first to last lines), because I am again using nested subprograms to improve readability. And that usually means that you read from the bottom up: start with the main executable section and then jump to subprograms as needed. Phases 2 and 3: Reset meme statuses. At this point, all meme mentions have been

inserted that can be inserted. In the process, the unpack_and_record_mentions pro-cedure filled up the l_affected_meme_ids collection, so now it’s time to use that col-lection to drive the second FORALL state-ment, performing the updates against the em_memes table.

In the original program, for each mention, the new meme status was computed. If it was NULL, no update was performed. The new program will need to incorporate these steps. The code for reset_meme_statuses is shown in Listing 4, available in the Oracle-hosted online article at bit.ly/RryVWE.

(The code in Listing 4 is also in the em_update_status_new.sql file in the download for this article at bit.ly/QntyHo). Table 3,

also available in the Oracle-hosted online article, presents descriptions of the signifi-cant lines of code in Listing 4.

So, IS It FaSteR?It might be lots of fun to completely reorga-nize one’s program in hopes of improving performance, but we can’t just assume that the resulting code actually does run quickly.

The results the extremememe.info team and I found when we put together and ran a test script (em_test.sql in the download for this article at bit.ly/QntyHo) were unam-biguous: the new em_update_status runs between two and three times as fast as the original procedure.

Not too shabby. The Oracle-hosted online article concludes

with an extremememe.info developer debrief. A stevenfeuersteinonplsql.blogspot.com blog post expands on this article to take you through the extremememe.info code changes in a step-by-step process.

Table 2: unpack_and_record_mentions procedure line descriptions

Line(s) Description

2 and 3 The next set of incoming rows is passed to the procedure, which passes back an updated list of all those meme IDs that have received at least one mention. This collection will drive the final “reset meme status” step.

38 Start of the executable section: make room in the local nested table of mentions to hold all the incoming data.

40–44 A classic Phase 2: for each of the incoming rows, convert it to the mentions format and load it into the array. Notice the use of the same index value for the l_mentions collection as in the incoming_in collection. Because incoming_in was populated with BULK COLLECT, it is either empty or filled sequentially from 1.

46–56 Time to push all that nicely prepared data into the em_mentions table with FORALL. Because the collection is sequentially filled from 1, use the simplest form for the FORALL header:

FORALL indx IN 1 .. l_mentions.COUNT

If I used this form (very similar to a numeric FOR loop) and the collection had gaps (index values between FIRST and LAST that are not defined), the procedure would fail with the “ORA-22160: element at index [N] does not exist” error. To avoid this problem, you can use INDICES OF or VALUES OF; the former is discussed in the “Phases 2 and 3: Reset meme statuses” section.

Next I use the RETURNING clause to capture the IDs of all mentioned memes. I need to use BULK COLLECT for my RETURNING clause, because I am likely to insert more than one row and therefore will return more than one ID.

58 Call the add_to_affected_memes procedure. This is a procedure declared within the parent procedure. Its implementation is very simple:

9 PROCEDURE add_to_affected_memes10 IS11 BEGIN12 affected_meme_ids_out :=13 affected_meme_ids_out14 MULTISET UNION DISTINCT l_affected_this_time;15 END;

It uses the MULTISET UNION operation to add the ID of the newly affected meme to the existing list of previously affected memes. By adding the DISTINCT keyword, I ensure that there will not be duplicates in the resulting nested table.

59–64 Time to handle any errors during insertion into the em_mentions table. The WHEN clause references the bulk_errors exception, which is declared at the top of the procedure. Within the handler, I call the add_to_affected_memes procedure.

17–36 The record_errors procedure iterates through the contents of SQL%BULK_EXCEPTIONS, a pseudocollection of records that contains the index in the collection for which an error was returned by the SQL engine and the error code. It is called a pseudocollection because it is only a partial implementation of an associative array; specifically, only the COUNT method is defined for this collection.

READ Oracle-hosted online article contentbit.ly/RryVWE

DOWNLOAD Oracle Database 12cbit.ly/fherkiscripts for this articlebit.ly/QntyHoTEST your PL/SQL knowledgeplsqlchallenge.comREAD more Feuersteinstevenfeuersteinonplsql.blogspot.combit.ly/omagplsqlREAD more about Oracle Database 12coracle.com/databaseBULK COLLECT and FORALLbit.ly/12k0n8Hbit.ly/1onU8vi

NExT STEPS

Steven Feuerstein ([email protected]) is an architect for Oracle, specializing in PL/SQL. His books, including

Oracle PL/SQL Programming, and more than a thousand PL/SQL quizzes at PL/SQL Challenge (plsqlchallenge.com) provide in-depth resources for PL/SQL developers.

JA14_PLSQL.indd 48 5/23/14 4:02 PM

Page 52: oracle20140708-dl

Database Application Developer and DBA 49

oracle magazine July/august 2014

ask Tom by tom Kyte

On Table Updates and SQL Plan Baselines Our technologist updates tables quickly via CTAS and optimizes queries for evolution.

Due to an application upgrade, we have to change all the records in one of our

tables, based on new data supplied in a tem-porary table. (That table exists just for the upgrade; it is not a global temporary table.) What is the best approach for accomplishing this? The table has millions of records, and we need to complete the upgrade as quickly as possible.

This is a frequently asked question with an answer that might surprise you. The best way to update this table is not to update it but, rather, to re-create it! Because this is part of an application upgrade and the application is scheduled to be offline during the upgrade, re-creating the table will almost certainly be the most efficient way to accomplish this.

Rather than updating every row, which would necessarily generate UNDO for every modification and generate REDO for the table modification as well as more UNDO, simply use CREATE TABLE NEW_TABLE AS SELECT (CTAS). Using this approach, you can definitely skip all generated UNDO, and if you choose, all REDO as well. Additionally, instead of trying to maintain any and all indexes on these modified columns during the application update, simply create fresh indexes after the CREATE TABLE process is complete. If you were to update every row, the index on these modified columns would likely be at least twice as large as it needs to be, so you would almost certainly want to rebuild these indexes anyway.

So, your update steps are as follows: 1. CREATE TABLE NEW_TABLE AS SELECT

<join of old_table with the data to be updated>. This may involve an outer join if most, but not all, of the rows are to be updated. (There might not be a row in the stage table for every row in

the existing table.)2. DROP TABLE OLD_TABLE. Get rid of the

existing table with the old data.3. ALTER TABLE NEW_TABLE RENAME TO

OLD_TABLE. 4. CREATE INDEX. Re-create the indexes. 5. GRANT the appropriate privileges on

the table.If you are in archivelog mode during

the application upgrade, consider using the NOLOGGING clause to prevent REDO from being generated. (But make sure to disable NOLOGGING and back up the database after the upgrade.) If you are in noarchivelog mode, the CREATE TABLE NEW_TABLE AS SELECT and CREATE INDEX commands will not generate any REDO. (And remember, they never create UNDO for the CREATE TABLE or CREATE INDEX commands.) You’ll not only find this CREATE TABLE AS SELECT approach—using data definition language (DDL) instead of data manipulation language (DML)—to be faster for large objects but, in addition, the resulting segments will not be in need of a reorganization, as they probably would be after a MERGE/UPDATE operation.

To see this in action against a large data set, I recommend that you look at the four-part video series at bit.ly/1fXdD8L, bit.ly/1idIpdK, bit.ly/1mO3dwL, and bit.ly/1lIg7yO. These videos show the loading, validating, and transforming (you are interested in the transforming portion most of all) of a large set of data with DDL and compare that approach with trying to use DML to do the same.

IF YOU CAN HINT IT, YOU CAN BASELINE ITI recently had a problem with two SQL state-ments performing semantically equivalent queries but with very different runtimes.

I think I narrowed the problem down to a simple case where the optimizer is wildly off in cardinality estimates. The statistics are up to date and represent the actual data.

When I run the query with a subquery (returning a single constant value) in the WHERE clause, the query is excruciatingly slow—about 350 seconds. If I evaluate the subquery by hand (which takes some milliseconds) and pass the return value as a constant to the query, the query will run in some milliseconds—with a completely dif-ferent plan.

The subquery is a simple MAX(...) query, so why can’t the optimizer use the same plan or predict that a single value will be returned and optimize the query?

[Editor's note: Listing 1 shows the example table, a slow query and plan, and a faster query and plan.]

What is the best way to achieve this faster query plan without having to rewrite the original query?

Although these two queries are semanti-cally equivalent, they present very different challenges to the optimizer. In the first case, the optimizer will have to “guess” at the value returned by the subquery, because it has not yet executed the sub-query. That is, the query

SQL> SELECT *

2 FROM t t1

3 WHERE t1.object_type = 'TABLE'

4 AND t1.object_id > (SELECT

5 MAX(t2.object_id) - 500000

6 FROM t t2);

is very much like

SQL> SELECT *

2 FROM t t1

OrACle DATAbASe

JA14_AskTom.indd 49 5/19/14 1:16 PM

Page 53: oracle20140708-dl

50 Ask Tom

July/august 2014 orAcle.com/orAclemAgAzine

3 WHERE t1.object_type = 'TABLE'

4 AND t1.object_id > ???;

The optimizer cannot see what the constraint against OBJECT_ID will be, and it cannot see what value will ultimately be plugged in there when the query executes. Therefore, the optimizer will guess at the estimated cardinality.

However, when you query with the construct

SQL> SELECT *

2 FROM t t1

3 WHERE t1.object_type = 'TABLE'

4 AND t1.object_id > 19975;

the optimizer has a lot more information to work with. It knows approximately how many rows will come back, due to the predicate with constant values. So what you are dealing with is a query in which the optimizer will have a really hard time obtaining correct cardinality estimates at hard parse time and therefore stands a good chance of not selecting the optimal plan—at least for the first execution. The question is, How can you fix this without rewriting the code to use two queries and, optimally, without using any hints in the production code? The answer is to tempo-rarily use hints to get the plan you desire but then use the SQL Plan Management feature of Oracle Database and query plan baselines to implement the fix, removing the need for hints in the production envi-ronment and ensuring that you get the plan you want, unless and until the opti-mizer discovers a better plan.

The reason you do not want hints in your production code is that it is very difficult to correctly hint a query. To properly hint a query, you must fully, verbosely hint it. You might discover in your testing environment that using hints A, B, and C achieves the plan you want but that in production, after statistics are gathered and the data has changed, or after a database upgrade, hints A, B, and C may no longer do the job. Maybe you didn’t know you also needed hint D to ensure that the optimizer would choose the plan you wanted, even though the query was working well “by accident” before. Or,

Here is the setup for the example table:CREATE TABLE t AS SELECT * FROM all_objects;ALTER TABLE t ADD CONSTRAINT t_id_pk PRIMARY KEY (object_id);CREATE INDEX t_idx_id ON t(object_id);CREATE INDEX t_idx_type ON t(object_type);exec DBMS_STATS.GATHER_TABLE_STATS(user, 'T' );

Here is the slow query I would like to tune, along with its plan:SQL> SELECT * 2 FROM t t1 3 WHERE t1.object_type = 'TABLE' 4 AND t1.object_id > (SELECT MAX(t2.object_id) - 500000 FROM t t2);6115 rows selected.

Execution Plan——————————————————————————————————————————————————————————————————————————————————————————————————————————| Id | Operation | Name | Rows | Bytes |——————————————————————————————————————————————————————————————————————————————————————————————————————————| 0 | SELECT STATEMENT | | 413 | 39235 || 1 | TABLE ACCESS BY INDEX ROWID | T | 413 | 39235 || 2 | BITMAP CONVERSION TO ROWIDS | | | || 3 | BITMAP AND | | | || 4 | BITMAP CONVERSION FROM ROWIDS| | | || 5 | SORT ORDER BY | | | ||* 6 | INDEX RANGE SCAN | T_IDX_ID | 8252 | || 7 | SORT AGGREGATE | | 1 | 5 || 8 | INDEX FULL SCAN (MIN/MAX)| T_IDX_ID | 1 | 5 || 9 | BITMAP CONVERSION FROM ROWIDS| | | ||* 10 | INDEX RANGE SCAN | T_IDX_TYPE | 8252 | |——————————————————————————————————————————————————————————————————————————————————————————————————————————

Predicate Information (identified by operation id):————————————————————————————————————————————————————————————————————————————

6 - access("T1"."OBJECT_ID"> (SELECT MAX("T2"."OBJECT_ID")-500000 FROM "T" "T2")) filter("T1"."OBJECT_ID"> (SELECT MAX("T2"."OBJECT_ID")-500000 FROM "T" "T2")) 10 - access("T1"."OBJECT_TYPE"='TABLE')

Here is the query and the faster plan I would like it to use: SQL> SELECT MAX(t2.object_id) - 500000 FROM t t2;

MAX(T2.OBJECT_ID)-500000———————————————————————————————————— 19975

SQL> SELECT * 2 FROM t t1 3 WHERE t1.object_type = 'TABLE' AND t1.object_id > 19975;6115 rows selected.

Execution Plan ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|————————————————————————————————————————————————————————————————————————————————————————————————————————————————————| 0 | SELECT STATEMENT | | 7198 | 667K| 102 (2)||* 1 | TABLE ACCESS BY INDEX ROWID| T | 7198 | 667K| 102 (2)||* 2 | INDEX RANGE SCAN | T_IDX_TYPE | 8553 | | 6 (0)|————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

Predicate Information (identified by operation id):————————————————————————————————————————————————————————————————————————————

1 - filter("T1"."OBJECT_ID">19975) 2 - access("T1"."OBJECT_TYPE"='TABLE')

Code Listing 1: Example table, slow query and plan, and faster query and plan

JA14_AskTom.indd 50 5/19/14 1:16 PM

Page 54: oracle20140708-dl

51Ask Tom

orAcle mAgAzine July/august 2014

maybe after a database upgrade, the opti-mizer introduces a new query transforma-tion/rewrite that invalidates your hint.

I’ll demonstrate the shortest list of hints you would need to ensure that the above query uses the plan you want, and you’ll see that this list of hints is much longer than any list of hints you would have coded yourself.

Another reason to avoid putting hints into the query and to use SQL Plan Management is that you enable the opti-mizer to evolve your query plan over time. That is, you won’t freeze your query plan, and you’ll have the opportunity to use a better plan in the future. If you fully hinted the query, you’d be stuck with whatever plan you had today. See “Baselines and Better Plans” at bit.ly/PWcxDU for a discussion of this query plan evolution.

Now let’s see how to get the plan you want and then how to use SQL Plan Management to put that plan in place and have it be used transparently by your query. In a testing environment, I discovered that by using either the FIRST_ROWS(1) or the OPT_PARAM( ‘_b_tree_bitmap_plans’, ‘FALSE’ ) hint to disable the use of B-tree bitmap plans for this SQL statement, I get the plan I want, as shown in Listing 2.

Now, if I wanted to ensure that the plan in Listing 2 is, in fact, the plan used by default, I would need more than just a FIRST_ROWS(1) or OPT_PARAM hint. In fact, when I use DBMS_XPLAN to display not only the plans but also the full set of hints neces-sary to reproduce this plan reliably, I see the plan and the outline data in Listing 3.

As you can see in Listing 3, the full list of hints in the outline data that you need is quite extensive—far beyond just the OPT_PARAM hint. I can assure you that properly hinting a query to repeatedly get the same plan is much harder than it looks. Also, I don’t really want to freeze the plan forever, because future releases of Oracle Database will likely be able to rewrite the query or perform some optimization that just doesn’t exist yet, resulting in an even better plan. I’d like to be able to take advan-tage of future features, but if I’ve hinted the query, I won’t be able to.

So, what would the steps be to get the optimizer to choose the desired plan until a

provably better plan comes along? First, I would capture a SQL plan baseline

for the existing query—the query with the “bad” plan. Why would I want to capture the bad plan? To establish a SQL plan baseline for this query (into which I will load the desired plan), I need the plan baseline to exist before I can load the plan into it. I execute the code in Listing 4 to create the baseline.

That is my baseline, and that plan will be used. But it isn’t what I want. The next step is to disable that plan:

SQL> begin

2 dbms_output.put_line(

3 dbms_spm.alter_sql_plan_baseline

4 ( sql_handle =>

'SQL_e738c19a5191e8fd',

5 attribute_name => 'enabled',

6 attribute_value => 'NO' )

7 );

8 end;

9 /

1

The database will still use that plan, but only because it is the only game in town right now. So let’s create something better: the first query plan in Listing 2—the plan for the SELECT /*+ first_rows(1) */ * query.

That is the plan I want. All I need to do is load that plan in place of the bad one, as shown in Listing 5, available in the Oracle-hosted article at bit.ly/1hYmIyb.

There are now two plans loaded for that SQL statement: one—the bad plan—is disabled; the other—the good plan (even though it is for a “different query,” it can work with this query)—is enabled.

When I run the query again, as shown in Listing 6 (available in the Oracle-hosted article at bit.ly/1hYmIyb), I see that it used

SQL> SELECT /*+ first_rows(1) */ * 2 FROM t t1 3 WHERE t1.object_type = 'TABLE' 4 AND t1.object_id > (SELECT MAX(t2.object_id) - 500000 FROM t t2);

Execution Plan——————————————————————————————————————————————————————————————————————————————————————Plan hash value: 1289158178

—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————| Id | Operation | Name | Rows | Bytes | Cost (%CPU)—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————| 0 | SELECT STATEMENT | | 1 | 97 | 4 (0)|* 1 | TABLE ACCESS BY INDEX ROWID| T | 1 | 97 | 2 (0)|* 2 | INDEX RANGE SCAN | T_IDX_TYPE | 1871 | | 1 (0)| 3 | SORT AGGREGATE | | 1 | 5 || 4 | INDEX FULL SCAN (MIN/MAX)| T_ID_PK | 1 | 5 | 2 (0)—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

SQL> select /*+ opt_param( '_b_tree_bitmap_plans', 'FALSE' ) */ * 2 FROM t t1 3 WHERE t1.object_type = 'TABLE' 4 AND t1.object_id > (SELECT MAX(t2.object_id) - 500000 FROM t t2);

Execution Plan——————————————————————————————————————————————————————————————————————————————————————Plan hash value: 1289158178

—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————| Id | Operation | Name | Rows | Bytes | Cost (%CPU)—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————| 0 | SELECT STATEMENT | | 94 | 9118 | 85 (0)|* 1 | TABLE ACCESS BY INDEX ROWID| T | 94 | 9118 | 83 (0)|* 2 | INDEX RANGE SCAN | T_IDX_TYPE | 1871 | | 6 (0)| 3 | SORT AGGREGATE | | 1 | 5 || 4 | INDEX FULL SCAN (MIN/MAX)| T_ID_PK | 1 | 5 | 2 (0)—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

Code Listing 2: Getting a plan by using hints

JA14_AskTom.indd 51 5/19/14 1:16 PM

Page 55: oracle20140708-dl

52 Ask Tom

July/august 2014 orAcle.com/orAclemAgAzine

the query plan baseline for my good plan. With this baseline solution, there is

no permanent hinting—and permanent hinting is much harder to set up and use than you think it is! Many hinted queries out there in production today may be ticking time bombs.

And there are no upgrade issues with this baseline solution. (You may have to com-pletely change all your hints after a database upgrade as you add new query rewrites, access paths, and so on. With this baseline solution, you won’t.)

And, finally, if a better plan comes along, you’ll be able to use it if you are using query plan evolution.

SQL> select * 2 from table(dbms_xplan.display_cursor (sql_id=>'4rg4kcxr83kup', 3 cursor_child_no => 0, format=>'+outline'));

PLAN_TABLE_OUTPUT——————————————————————————————————————————SQL_ID 4rg4kcxr83kup, child number 0———————————————————————————————————————————————————————select /*+ opt_param( '_b_tree_bitmap_plans', 'FALSE' )gather_plan_statistics */ * FROM t t1 WHERE t1.object_type = 'TABLE' AND t1.object_id > (SELECT MAX(t2.object_id) - 500000 FROM t t2)

Plan hash value: 1289158178

———————————————————————————————————————————————————————————————————————————————————————————————————————————————————| Id | Operation | Name | Rows | Bytes| Cost (%CPU)| Time |———————————————————————————————————————————————————————————————————————————————————————————————————————————————————| 0 | SELECT STATEMENT | | | | 83 (100)| ||* 1 | TABLE ACCESS BY INDEX ROWID| T | 91| 8827| 81 (0)| 00:00:01||* 2 | INDEX RANGE SCAN | T_IDX_TYPE| 1823| | 6 (0)| 00:00:01|| 3 | SORT AGGREGATE | | 1| 5| | || 4 | INDEX FULL SCAN (MIN/MAX)| T_ID_PK | 1| 5| 2 (0)| 00:00:01|———————————————————————————————————————————————————————————————————————————————————————————————————————————————————

Outline Data———————————————————

/*+ BEGIN_OUTLINE_DATA IGNORE_OPTIM_EMBEDDED_HINTS OPTIMIZER_FEATURES_ENABLE('11.2.0.2') DB_VERSION('11.2.0.3') OPT_PARAM('_b_tree_bitmap_plans' 'false') ALL_ROWS OUTLINE_LEAF(@"SEL$2") OUTLINE_LEAF(@"SEL$1") INDEX_RS_ASC(@"SEL$1" "T1"@"SEL$1" ("T"."OBJECT_TYPE")) PUSH_SUBQ(@"SEL$2") INDEX(@"SEL$2" "T2"@"SEL$2" ("T"."OBJECT_ID")) END_OUTLINE_DATA */

Code Listing 3: Determining plan and outline info needed to make a better hinted plan

SQL> begin 2 dbms_output.put_line( 3 dbms_spm.load_plans_from_cursor_cache 4 ( sql_id => 'crvk9z6mx9n4d' ) 5 ); 6 end; 7 /1

SQL> select sql_handle, 2 substr(sql_text,1,10)||'...'|| 3 substr(sql_text,length(sql_text)-10) stext, 4 plan_name, enabled 5 from dba_sql_plan_baselines 6 where sql_text like 7 'SELECT%FROM t t1%(SELECT MAX(t2.object_id) - 500000 FROM t t2)';

SQL_HANDLE STEXT PLAN_NAME ENA————————————————————————————— ——————————————————————————————— ———————————————————————————————————————————— ————SQL_e738c19a5191e8fd SELECT * SQL_PLAN_fff61m98t3u7xda64b1bb YES ... FROM t t2)

Code Listing 4: Creating the baseline

Tom Kyte is a database evangelist in Oracle’s Server Technologies division and has worked for Oracle since 1993. He is the author of Expert

Oracle Database Architecture (Apress, 2005, 2010) and Effective Oracle by Design (Oracle Press, 2003), among other books.

ASK Tom Tom Kyte answers your most difficult technology questions. Highlights from that forum appear in this column. asktom.oracle.com READ Oracle-hosted online article contentbit.ly/1hYmIybREAD more Tombit.ly/omagasktomExpert Oracle Database Architectureamzn.to/ckGXaR

DOWNLOAD Oracle Database 12cbit.ly/epBiUG LEARN more about Oracle Database 12coracle.com/database baselines

“Baselines and Better Plans” bit.ly/PWcxDU FOLLOW Tom on Twitter@OracleAskTomFOLLOW Oracle Database on Twitter@oracledatabaseon Facebookfacebook.com/oracledatabase

NExT STEpS

JA14_AskTom.indd 52 5/19/14 1:17 PM

Page 56: oracle20140708-dl

For more information or to place your recruitment

ad or listing contact: [email protected]

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

Find the Most Qualifed Oracle Professional for your Company’s Future

Introducing the Oracle Magazine

Career Opportunities section -

the ultimate technology recruitment resource.

Oracle Magazine is the largest IT publication in the

world with a total circulation of more than 500,000.

Place your advertisement and gain exclusive and

immediate access to top talent including:

IT Managers, DBAs, Programmers and Developers.

Page 57: oracle20140708-dl

54

July/august 2014 Oracle.cOm/Oraclemagazine

in the Field by carol hildebrand

A s Alyssa Johnson takes over the reins at Oracle Applications Users Group

(OAUG), she draws on more than 10 years of user group participation to refine the com-munity’s mission of connection, education, and innovation. Oracle Magazine recently sat down with Johnson to talk about her history with Oracle technology, the mission of OAUG, and collaboration. Oracle Magazine: How did you get started with Oracle technology?Johnson: I got started in technology almost 30 years ago in software development in the scientific field. I took a break from that part of my life to concentrate on family, and when the time was right, I was very fortunate to have the opportunity to go back into technology. It was then that I first focused on Oracle and on the functional side of applications. I was part of a Release 12 team for Oracle E-Business Suite, and we really invested a lot of time in under-standing and implementing the many fea-tures in Release 12, specifically around the financials product family. Oracle Magazine: And that eventually led you to OAUG?Johnson: Exactly. I began leading learning sessions and regional workshops, which led to giving presentations at COLLABORATE. For me, it was about giving back to the OAUG community, because when I first started working in Oracle technology, I leveraged a lot of the education that was provided by OAUG through resources such as OAUG eLearning and the Conference Paper Database.

I currently serve on the OAUG Board of Directors, and I served as president-elect last year. And because I worked very closely with Margaret Wright [Johnson’s predecessor], I will be able to continue with the vision and the strategy that she and the board had.Oracle Magazine: Will you give a little per-spective on that vision?

Johnson: The mission of OAUG is to enhance the return on investment in Oracle Applications for its members by building a global knowledgebase of information. We do that through education and personal development; through unique networking opportunities; and through established channels for communicating with and advocating to Oracle, such as the OAUG Customer Support Council.

As president, one of my focus areas is finding innovative ways to improve the benefits we currently provide. For example, in the past our Conference Paper Database has not been easy to use. But we just released a version that is highly searchable and easy to use.

Another area that I—and the entire board—want to focus on is increased member involvement. We want to chal-lenge each one of our members to be more involved this year than last year. You don’t have to run for president of OAUG, but take a look to see where your involvement helps

you learn. If you didn’t participate in any of our OAUG eLearning events last year, join us this year. Or read an article in our OAUG Insight magazine. Or maybe you’d like to come to COLLABORATE. We want to better communicate to our membership about opportunities and encourage them to be more involved. Oracle Magazine: Speaking of COLLABORATE, tell us about that event. Johnson: COLLABORATE is interesting, because the different user groups [OAUG; Independent Oracle Users Group, or IOUG; and Quest] have different needs. But at the core, all the groups are still about member education, facilitating networking, and communicating with Oracle. I think there were 1,900 COLLABORATE 2014 paper sub-missions just for OAUG. After completing the presentation selection process, there were more than 1,400 sessions across all three user groups. And with almost 200 partners involved, the exhibitor showcase was fantastic.

One thing we did a little differently in 2014 was restructuring the Oracle Meet the Experts session to give attendees the opportunity to talk one-on-one with the experts on certain topics. And we debuted the new COLLABORATE mobile applica-tion, which lets people network with fellow attendees right on the app and search on different and trending topics.

JOIN OAUGoaug.orgFOLLOW OAUG on Twittertwitter.com/OAUG1

NexT STepS

Learning Circle, part 1President Alyssa Johnson talks about OAUG’s evolving mission and commitment to innovation through community.

Carol Hildebrand writes about business, sports, and technology from Wellesley, Massachusetts.

Alyssa Johnson, president of OAUG, talks about enterprise technology, user groups, communication, collaboration, and more.

PAUl

S. H

OWel

l

JA14_InTheField_OAUG_R1.indd 54 6/6/14 9:19 AM

Page 58: oracle20140708-dl

55

oracle magazine July/august 2014

analyst’s corner by DaVID bauM

O racle Magazine spoke with Maureen Fleming, vice president of business

process management and middleware research programs at International Data Corporation (IDC), about the latest innova-tions in application server technology.Oracle Magazine: What do organizations look for in an application server platform?Fleming: Most organizations today are looking for a set of services that improve the ease with which they can deploy scalable, high-performance applica-tions. Application servers such as Oracle WebLogic Server can be purchased as part of a suite with a broad set of additional middleware capabilities such as distributed data caching and identity management. These additional services support mission-critical application deployments.Oracle Magazine: How are open source and proprietary application servers being used today? Fleming: Some organizations are now commingling open source application servers and proprietary application servers, especially for custom-developed applica-tions. You can do some amazing things with open source technology, such as using a lightweight application server embedded in a tablet or in highly distributed scenarios, in addition to serving classic custom applica-tions. When it comes to running packaged applications, you have to make sure your application server is certified to run those applications in an optimal way. It’s impor-tant to pick an application server that is recommended by the application vendor, especially given the investments associated with these applications. Oracle Magazine: How are businesses using application server technology to streamline deployments and simplify maintenance?

Fleming: Companies are virtualizing Java server farms and standardizing management across the farm. Rather than having one application server or server cluster per appli-cation, they are creating shared environments to improve utilization. This permits admin-istrators to spin up or tear down instances as needed and troubleshoot issues across the farm. Development teams can choose the right application server while improving oper-ational consistency and driving down costs.

On the low end or mobile end, companies are starting to use lightweight platforms like Raspberry Pi or even a tablet to serve appli-cations. On the high end, they are turning to engineered systems such as Oracle Exalogic. Engineered systems offer a great deal of scalability in a plug-and-play environment that has been preconfigured to improve speed and performance. They let you run larger applications than you’ve been able to run in the past, so you can dream bigger about the type of application you want to build without hitting prior logical limits. Oracle Magazine: How are application servers evolving in an era of cloud computing?Fleming: Application servers are the least mature of all the tiers of the cloud. For example, SaaS [software as a service] plat-forms predate the cloud as we know it today, and some of these platforms are not con-structed to work with leading application server platforms.

A lot of things have to come together to build a cloud application. This is motivating

middleware vendors to build application plat-form frameworks and services. Java-based cloud application platforms are evolving around standards that will drive some consis-tency in how cloud applications can be built. Oracle Magazine: What does the future hold for application server technology?Fleming: Event-driven design is becoming more and more important with the growth of the Internet of Things and as a way to take advantage of the growing volumes of data that can be harnessed for business value. For example, new digital services are being built using sensors embedded in industrial and consumer products that transmit data to a collector that aggregates and looks for indications that something is going wrong. This prompts a notification to an applica-tion or backbone designed to manage the response. The response may be executed on a mobile device; it may be a task generated by an existing application; it may be built using BPM [business process management]technology; or it may be a custom applica-tion running on an application server or cloud application platform.

Deploy Applications in Different EnvironmentsOrganizations look to today’s application server platforms to run high-performance enterprise applications and services.

READ more about Oracle WebLogic Server 12cbit.ly/1kPVs9y

DOWNLOAD Oracle WebLogic Serverbit.ly/1kPVu19

NExt StEpS

David Baum ([email protected]) is a freelance business writer based in Santa Barbara, California.

IDC (idc.com) is a global provider of market intelligence, advisory services, and events for the information technology, telecommunications, and consumer technology markets.

“A lot of things have to come together to build a cloud application.”

JA14_Analyst.indd 55 5/19/14 11:51 AM

Page 59: oracle20140708-dl

56

JULY/AUGUST 2014 ORACLE.COM/ORACLEMAGAZINE

Flashbacks: Culture. Industry. Oracle. Oracle Magazine.Time Capsule BY RICH SCHWERIN

REM

INGT

ON R

AND,

WIK

IPED

IA C

OMM

ONS

YOUR TURN

FROM 8-INCH FLOPPIES TO 88 TB IN FLASH, tell us about your first storage, your ultimate storage, and where you think storage will be in five years. Visit Facebook/OracleMagazine and let us know. bit.ly/orclmagfb

1951 Tape DriveThe Remington Rand UNISERVO was the primary I/O device on the UNIVAC I computer, and stored up to 224 KB on a 1,200-foot-long metal tape.

Hard DiskThe refrigerator-sized IBM 350 disk drive held 3.75 MB and leased for US$3,200 a month. Inflation adjusted, that’s nearly US$28,000 today—or US$7,400 per MB.

1999SD CardsInitially 64 MB, the Secure Digital (SD) memory card storage from SanDisk, Matsushita, and Toshiba has been getting smaller in size and larger in capacity ever since. (Today’s MicroSD holds 128 GB.) 2000

USB Flash DriveThe first ThumbDrive from Trek Technology plugged into any USB port and offered a whopping 8 MB storage capacity. And within just a few years, thumb drives were making fashion statements. Sushi, anyone?

Storage from A to ZFSOrganizations are optimizing storage with tiered Sun flash, disk, and tape solutions from Oracle and enabling unified storage with the Oracle ZFS Storage Appliance.

2013Extreme MemoryIn a single rack, Oracle’s Exadata Database Machine X4 supports 88 TB of user data in flash—a capacity suffi-cient to hold the majority of online transaction processing databases in flash memory.

1970sFloppy DisksData storage in the ’70s and into the ’80s? Floppy. From 8-inch to 5¼-inch to 3½-inch, these disks of thin, flexible magnetic storage medium were state of the art. Just ask your mom.

of thin, flexible magnetic storage

2000

2011

1956

Storage from A to ZFS

ask your mom.

128 GB.)

JA14_TimeCapsule.indd 56 5/19/14 11:44 AM

Page 60: oracle20140708-dl

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

Oracle CloudApplications

ERPFinancials

Procurement

Projects

Supply Chain

HCMHumanHuman CapitalCaHuman Capital

ReRecruiting

TTalent

CRMSales

SService viceService

Marketing

More Enterprise SaaS Applications

Than Any Other Cloud Services Provider