Tag Archives: Presentation

R12.2 Overview for Developers (Oracle e-Business Suite)

We are upgrading our Oracle e-Business Suite from 12.1.3.6 to 12.2.3.

This is a preparatory session prepared for our Development Team and may be useful to others.  All copyrights reserved; no reproduction without permission.

AUS_R12_2_for_Developers_@jhlui1 (PDF Link)

Contents Outline:

  • R12.2 Overview For Developers
  • May 5, 2014
  • James H. Lui, OCP
  • Sr. Oracle Applications DBA
  • @jhlui1

What’s Covered

  • What’s an Edition?
  • What’s an Online Patch?
  • How is Development Affected?
  • Examples
  • What Can I Do?

What’s an Edition? (Doc ID 1489116.1)

  • An edition is like a workspace or private environment where database objects are redefined. When we are satisfied with the change that we have made, those changes in the edition can be then rolled out to all the application users.
  • With Edition-Based Redefinition you can have two objects with the same name, as long as they are in different Editions.
  • An edition is effectively a version label that can be assigned to all editionable objects in a schema.

–When a new edition is used by a schema, all editionable objects are inherited by the new edition from the previous edition.

–These objects can subsequently then be altered or dropped as desired, but doing so will stop the inheritance of that object.

–From Oracle database 11gR2 onwards, each database has at least one edition, the default being ORA$BASE.

–The default edition can be displayed using the DATABASE_PROPERTIES view.

<illustration>

What Objects Can Be Editioned?

  • (Doc ID 1489116.1)
  • <illustration>

The following object types are editionable:

  • FUNCTION
  • LIBRARY
  • PACKAGE and PACKAGE BODY
  • PROCEDURE
  • TRIGGER
  • TYPE and TYPE BODY
  • SYNONYM
  • VIEW

Review contents of the APPS versus APPS_NE schemas for detai

What are The Rules for Editioning?

  • (Doc ID 1489116.1 – there are more…)

A non-editionedobject cannot depend on an editioned object.

Some examples:

– A public synonym cannot refer to an editioned object.
(why APPS-owned synonyms take precedence)

– A function-based index cannot depend on an editioned function.

– A materialized view cannot depend on an editioned view.
(why a lot of MV’s are invalidated in 12.2)

– A table cannot have a column of a user-defined data type (collection or Abstract Data Type/ADT) whose owner is editions-enabled (APPS is, APPS_NE isn’t.)

– A noneditioned subprogram cannot have a static reference to a subprogram whose owner is editions-enabled.
(APPS_NE.<package> cannot reference APPS.<function>)

Editioning Example: PTCHARMK

  • (adop phase=prepare in-progress)
  • SQL Statement which produced this data:
  • SELECT * FROM dba_editions;
  • <illustration>
  • What’s an Edition? (Doc ID 1489116.1)
  • SELECT property_value
    FROM database_properties
    WHERE property_name = ‘DEFAULT_EDITION’;
    <illustration>
  • ALTER SESSION SET edition=V_20140428_1435;

<illustration>

  • SELECT SYS_CONTEXT(‘USERENV’, ‘SESSION_EDITION_NAME’) AS edition FROM dual;

<illustration>

What’s an Online Patch?(Doc ID 1583902.1)

  • Online patching is a new patching mechanism that allows the application of patches while the system is up and running, and the users are working as normal (…while ensuring object version consistency.)
  • What are the phases that make up the Online Patching cycle?

–Prepare a virtual copy (patch edition) of the running application (run edition).

–Apply patches to the patch edition of the application.

–Finalize the system in readiness for the cutover phase.

–Cutover to the patch edition and make it the new run edition.

–Cleanup obsolete definitions or data to recover space.

  • When a patch is applied, adop will:

Synchronizethe contents of the run file system to the patch file system. (phase=prepare)

Apply patching actions on the patch file system. (phase=apply)

–During the cutover phase, the adoputility (phase=cutover) :

  • Restartsthe application tier services.
  • Swap [Patch FS] <-> [Run FS]

Online Patching: Our Filesystem (note: we moved the $INST_TOP down a level from /u01 to facilitate preservation as a separate NFS mount during refreshes)

  • /u01

–fs1/

–fs2/

–fs_ne/

–inst/

–oraInventory/

  • Online Patching: The Environment

<illustration>

Online Patching: Switching Envs(Doc ID 1545584.1 – Requires 12.2.2 minimum)

Change directory to the Base directory and run script EBSapps.env giving “run” or “patch” as argument, eg:

cd /u01/oracle/EBS122

. ./EBSapps.env run

E-Business Suite Environment Information

—————————————-

RUN File System : <EBS base dir>/fs1/EBSapps/appl

PATCH File System : <EBS base dir>/fs2/EBSapps/appl

Non-Editioned File System : <EBS base dir>/fs_ne

DB Host: <hostname.domain name> Service/SID: <SID>

Sourcing the RUN File System …

Online Patching: Switching Envs(Doc ID 1545584.1 – for PTCHARMK at 12.2.0)

Use fsauto<SID>.sh(already included in the applptch .profile)

cd ~

. ./fsauto${ORACLE_SID}.sh

Running fsauto 1.0 :

Context Name (<SID_host>) : PTCHARMK_aburpaofinm01

RUNEdition APPL_TOP     : /u01/fs1

PATCHEdition APPL_TOP   : /u01/fs2

APPL_TOP environment file : /u01/fs1/EBSapps/appl/APPSPTCHARMK_aburpaofinm01.env

Non-Editioned File System : /u01/fs_ne/EBSapps/appl

Instance Top Directory   : /u01/inst/fs1/inst/apps/PTCHARMK_aburpaofinm01

Admin Scripts Home       : /u01/inst/fs1/inst/apps/PTCHARMK_aburpaofinm01/admin/scripts

Setting RUN Edition APPL_TOP environment for /u01/fs1 …

Current PATCH_TOP: /mnt/nfs/ebs/122postinstall

applptch@aburpaofinm01 $>

What’s an Online Patch?

  • (Checking for Active Patching Sessions)
  • SELECT ADOP_SESSION_ID,
  • PREPARE_STATUS,
  • APPLY_STATUS,
  • FINALIZE_STATUS,
  • CUTOVER_STATUS,
  • CLEANUP_STATUS,
  • ABORT_STATUS,
  • STATUS,
  • ABANDON_FLAG,
  • NODE_NAME
  • FROM AD_ADOP_SESSIONS
  • ORDER BY ADOP_SESSION_ID;

What’s an Online Patch?

  • (Why should I care?)

Q: Based on the below information querying the AD_ADOP_SESSIONS table in PTCHARMK:

<illustration>

  1. Which patching session will go first, and when?
  2. Which filesystem (fs1 or fs2) and edition is Run versus Patch?
  3. Where should my custom object/code/form/report go to test in this instance?
    <illustration>
  • What’s an Online Patch?
    (Why should I care?)

Q: Based on the below information querying the AD_ADOP_SESSIONS table in PTCHARMK:

  1. Which patching session will go first, and when?
  2. Which filesystem and edition is Run versus Patch?
  3. Where should my custom object/code/form/report go to test in this instance?
    <illustration>

Examples: Editioned View
(Why we use APPS.AR_DEBUGinstead of AR.AR_DEBUG)

/* ObjName | ObjType | ObjParent | ObjOwner
AR_DEBUG | TABLE | | AR
AR_DEBUG# |VIEW | | AR
AR_DEBUG | SYNONYM | | APPS

Synonym APPS.AR_DEBUG */
/* Formatted on 5/1/2014 3:26:22 PM (QP5 v5.256.13226.35510) */
CREATE OR REPLACE FORCE EDITIONING VIEW AR.AR_DEBUG#
(
DEBUG_TYPE,
ITEM_TYPE,
ITEM_KEY,
ACTIVITY_NAME,
EXECUTION_DATE,
DEBUG_MESSAGE
)
AS
SELECT DEBUG_TYPE DEBUG_TYPE,
ITEM_TYPE ITEM_TYPE,
ITEM_KEY ITEM_KEY,
ACTIVITY_NAME ACTIVITY_NAME,
EXECUTION_DATE EXECUTION_DATE,
DEBUG_MESSAGE DEBUG_MESSAGE
FROM “AR”.”AR_DEBUG”;
CREATE OR REPLACE SYNONYMAPPS.AR_DEBUGFOR AR.AR_DEBUG#;

GRANT DELETE, INSERT, SELECT, UPDATE, DEBUG ON AR.AR_DEBUG#TO APPS WITH GRANT OPTION;

GRANT SELECT ON AR.AR_DEBUG# TO XXUSR_SELECT_R;

Examples: PL/SQL Package
(APPS.ACCOUNT_MGR)

<illustration>

Examples: PL/SQL Package
(APPS.ACCOUNT_MGR)

<illustration>
How is Development Affected?
(Doc ID 1489116.1)
Not using an APPS.<editioned object synonym>

–Views: disappearing/appearing columns, indexes, even data

–PL/SQL: dropped/altered/changed API’s, usage, references

–Triggers: disappearing/appearing constraints, functional changes

–Types: disappearing/appearing columns, indexes, even data

–Synonyms: pointers change: ViewsóTables, all the above

  • Invalid Objects Appear After Patching
  • Functional Code Behavior Changes After Patching
  • If another Developer is using an Edition:The DEFAULT_EDITION can change without warning

What to Do?

  • Always Be Aware of other Patching or Development activity going on in the instance
  • Stage Filesystem-based Code in both RUN_BASE and PATCH_BASE
  • Scheduling of Data Changes is Critical (changes can vanish)
  • Announce to all other Users if Creating/Cutting-Over a New Edition
  • Flag all Base-Object Customizations for Detection during PPA

How to Flag a Customization

  • (OAM -> Site Map -> [Maintenance] -> Register Flagged Files)
  • <illustration>

How to Flag a Customization

  • (OAM -> Site Map -> [Maintenance] -> Register Flagged Files)
  • <illustration>

MOS References

  • (support.oracle.com – CSI: 19086017)
  • Deploying Customizations in Oracle E-Business Suite Release 12.2 (Doc ID 1577661.1)
  • Master Note: Overview of Oracle Edition-Based Redefinition (EBR) (Doc ID 1489116.1)
  • Oracle E-Business Suite Release 12.2: Online Patching FAQ
    (Doc ID 1583902.1)
  • Oracle Application Framework Release Notes for Release 12.2.3 (Doc ID 1593782.1)
  • Where to Deploy Custom Java [default: $JAVA_TOP/*]
    (Doc ID 1609939.1)
  • Oracle E-Business Suite Release 12.2 Information Center
    (Doc ID 1583153.1)

An in-depth white paper prepared for the NorCalOAUG by John Peters (2/2014):

http://jrpjr.com/paper_archive/12_2_development.pdf

Advertisement

IOUG Podcast 30-APR-2013 Database 12c Beta Revelations at Collaborate 13

For the week of April 30th, 2013:

An Interview with Bobby Curtis and James Lui:

  • Database 12c Revelations at Collaborate
  • A Little Insight into Oracle’s Beta Program

IOUG Podcast 30-APR-2013 Database 12c Beta Revelations at Collaborate 13

Subscribe to this Podcast (RSS) or iTunes

Transcript:

Hi, I’m James Lui,  a senior applications DBA working at Aramark Uniform Services. and I’m Bobby Curtis, a Solution Architect with BIAS Corporation, Oracle Platinum Partner.

[James] We just finished an Introduction to 12c New Features and Functionality. One of the reasons we wanted to bring this to the Users Group’s attention.is that out on the internet, we were Google-ing for the new Database 12c we wanted to find out, it’s not a general release right now; it’s not generally available.  But there are Oracle Beta test partners out there looking at it, whacking it and trying to make it work. But what we did find was a little disturbing.There’s a lot of stuff dating back to early last year (2012) that partners that are on these Betas are blogging about features that may or may not be in the product. They’re putting SQL code out there that is wrong. That came to our attention when we were talking with other Oracle Partners out here (at Collaborate). What do we do about this? So our position on this was to try to start elevating the invisibility of what is happening out there with regard to NDA Beta Partners, like Bobby and I, who are are subject to… You can’t talk about it, or you can’t disclose stuff that isn’t real.

The feature sets in the final release are subject to what Oracle wants to try to present as a solid product that works to end-user customers. Not something that the wheels are going to fall off.just because they tried it (they put some spinners on it) and it ends up falling off and it’s a bad idea.   The whole purpose for this idea is we don’t do GA on an unstable product. Let’s let experts hammer at this thing. See if it works, get an idea from a users group perspective (trying to represent as many people, as possible) what features work, what doesn’t work. and what needs to be fixed before the thing goes live.

[Bobby] That way the users understand what they’re really getting versus what the hearsay out there.. Because everything that’s been posted out there (on the blogs) violates the NDAs. and Oracle can pull things (features) out and nobody really knows it because they’re relying on older postings that were not authorized anyway.  So this session was to provide the users groups with something based upon here’s what we’ve seen, and here’s what we think is going to be in there, but it’s not guaranteed.

[James] Realistically we do know that forward information is good. Telling people that the documentation that will be provided is more massive than ever before. It’s going to give you direction as a DBA, developer or manager trying to make a decision to adopt this product. There is more to read than ever (before.) There’s more room for books to be written than ever. There’s definitely more room for webinars about this product. They’re (Oracle’s) thinking about at least 500+ new feature functionalities that are really exciting stuff. And we covered maybe…

[Bobby] Like, 25 of them — the tip of an iceberg on this product.

[James] But in terms of what that final product ends up being, when Oracle decides it’s ready for market, we had the confidence as users group representatives (ODTUG, IOUG, UKOUG, Australia OUG) when we hammered it to death, these features worked, with the caveat of saying “Fix this ” then we’re (users groups) happy.

That’s the idea behind this session. Telling people that going forward, you may need to go back to the drawing board or to school to find out how to use this product in the best way.

But the exciting part is here at Collaborate, IOUG was able to give those who attended our session a preview of the future in a very substantial technical way.

[Bobby] And so we thought it would be a good idea, so okay there’s a lot of talk about it, everybody’s asking when’s it coming out, what’s going on? So from a users group perspective, let’s give everyone not so much a peek into it, but to say here’s what’s coming from what we know of, from looking at the Betas.

But, again at the same time letting everyone know that just because we say something’s coming, Oracle could pull the plug (on that feature) at some point-in-time and say, “That’s not going to be added in this release. “ So basically, this was a way to give to the users groups, who have been saying, “We’ve been talking about it for six months. But what’s really in it?” And as we alluded to earlier, we’ve only touched the “tip of the iceberg” – we only did 25 of them (the new features). And we didn’t do a Top-10 or anything like that.  We just said, here are the 25 features we tested during Beta testing, and here’s what our thoughts are. So we think we gave the users groups a good base of understanding where it’s (Database 12c) coming from, and what can be potentially looked at, and what they could use.  And from the reaction we got from the crowd, was actually pretty good.

[James] And Bobby represents the partner, implementer, system integrator world of the consultants that are out there who are going to be challenged with actually upgrading (systems), or doing the installations. I represent the existing customer base of Oracle, we’re an Applications e-Business shop; we want to know what does that roadmap affect for us. What does 12c give us to save money basically as an organization? So between the two of us, we actually do cover a big part of that world. and we were very heartened by the (experiences) during the Beta testing (we were Phase 3, probably the last (Beta) before General Availability), we’re pretty happy with the product. Perhaps, shockingly good?

[Bobby] This is actually by far the best release they (Oracle) have come out with on a first release. Because they’ve listened to the users groups, and took a lot of the things that we wanted, put it into it (Database 12c.)

[James] And by being part of the Beta Program, the people behind the Beta Program brought the user groups in confidence, to say you people represent key members of the user community. Hit this thing until it breaks and tell us what it’s going to need for this product to go to General (Availability).. And that’s what we felt we did. We did things that were very unexpected

[Bobby] Any time you get a (Database) developer standing behind your shoulder… because that was one of the really impressive things behind the Beta testing. You had 9 testers, and Oracle put 50 of their people in the room with us. and when we broke it, they literally pulled the code open and looked at it and said, “Here’s why it’s broken.” And that in-turn gave Oracle the insight to say, “Okay what did you guys do?” versus “How did it break?” So that way they can go fix the code and can be more responsive to what users are going to do out in the marketplace.

[James]  And while it’s not a generally-accepted practice, nor a best practice idea, I as an e-Business Suite Customer ended up bringing in a live R12.1.3 version instance. Not certified. Not supposed to be certified. Certainly Oracle’s own (e-Business Suite) Development group behind Applications Technology does not certify you’re supposed to be doing (Database) 12c upgrades. But in the context of a Beta, for me this is the exciting way to do it. You take a sandbox instance, you take a copy of a live R12 instance and you try to do the upgrade. The only things that broke, was the stuff that Oracle told us would break, because they de-support those particular features.  That was the guarantee that makes it whole.

[Bobby] They listened and they fixed it. So that when GA comes out, you can take it to Production if you want.  I think that’s what a lot of people are going to be shocked about, because most organizations wait for Release 2, to be honest. But Release 1 of (Database) 12c, we think, from the user group perspective could be production-ready and be used.

[James] That’s better than most other software companies that try to be first to market with a new feature, and let the user community test it and find out where the bugs are. That was a different philosophy that we met (at Oracle). And we know the Beta 1 and Beta 2 release testings uncovered thousands and tens of thousands of problems that got fixed by the time we got our hands on it. The improvements that Oracle has actually made in that process  That’s a good step in the right direction, and we would hope every software vendor actually does that same thing.  Because IOUG being very agnostic about what the user community needs to make a business solution happen, having Oracle do that just makes their job easier.

See also:

Oracle Enterprise Manager Tips & Best Practices 2013

Speaking at OOW2012 – UGF10409 – Introduction to Oracle Fusion Middleware

Although the session’s almost filled – I guess there’s probably a few seats left after no-shows.

Wondering what the black box of Oracle Fusion Middleware really entails? Not sure what

 UGF10409 -  Introduction to Oracle Fusion Middleware
UGF10409 – Introduction to Oracle Fusion Middleware – Sunday 8-9a 2024 Moscone West

the difference between Oracle Fusion Middleware, Oracle Fusion Applications, cold fusion, and jazz fusion is? Come to this session for help! It gives a high-level overview of which tools are part of Oracle Fusion Middleware and briefly touches on what they do. This session is a lead-in for the rest of the day, in the course of which you can get more-detailed information about some of the Oracle Fusion Middleware products. Start your day at a high level, and begin your Oracle Fusion Middleware learning here.

https://oracleus.activeevents.com/connect/sessionDetail.ww?SESSION_ID=10409

 

SROAUG Conference Call for Papers! 7/22/2012

SROAUG Conference Call for Papers is Open!.