einblick in online patching der oracle e-business suite 12.2
TRANSCRIPT
© 2017 APPS ASSOCIATES LLC1 appsassociates.com
Einblick in Online Patching der Oracle E-Business Suite 12.2.x
November 22, 2017
© 2017 APPS ASSOCIATES LLC2 © 2017 APPS ASSOCIATES LLC2
The content of this document is proprietary, confidential information pertaining to Apps Associates’
products, services, solutions and methods. Information herein is intended for use by the client or
prospective client only and must not be shared with any third party without consent from Apps
Associates.
Confidentiality
© 2017 APPS ASSOCIATES LLC3 © 2017 APPS ASSOCIATES LLC3
Über Sprecher
Kai Glittenberg
Senior DBA Consultant
• >10 Jahre Erfahrung in Oracle Technologien
• EBS 12.2.x seit Beta und Early Adaptor
• seit 2009 tätig für Apps Associates
© 2017 APPS ASSOCIATES LLC4 © 2017 APPS ASSOCIATES LLC4
Performance. Growth. Excellence.
Global Reach – US, Europe, India• Founded in 2002 in Boston, MA
• 800+ Associates
Mature Delivery Model• CMMI Level 3 Appraised & SOC 1 Audited
• Certified AWS Managed Services Partner
Long Term Focus on Customers and Associates• 23 customers 5-10 year, 6 customers 10+ year
relationships
• 120 associates 5-10 year, 40 associates 10+ year tenures
• 4% of revenue invested in Learning & Development
Integrated Delivery Processes • Projects & Managed Services
• Flexible Global Delivery Model
Our Strategic Partners
© 2017 APPS ASSOCIATES LLC5 © 2017 APPS ASSOCIATES LLC5
Portfolio of Services
AnalyticsProduct
Development
Custom Dev &
Integration
Infrastructure &
Cloud Services
ManageAdvise Implement Integrate GovernUpgrade Train Host
Business
Applications
© 2017 APPS ASSOCIATES LLC6
Agenda
• Architektur-Überblick 12.2.x
• Online Patching - allgemein
• Edition Based Redefiniton
• 12.2.x DBA insights
• 12.2.x Developer insights
• Fazit
© 2017 APPS ASSOCIATES LLC7
ArchitekturWelche technischen Komponenten gibt es in 12.2.x?
© 2017 APPS ASSOCIATES LLC8 © 2017 APPS ASSOCIATES LLC8
Architektur #1
Ab RI StartCD 51
Bis RI StartCD 51
Key Komponenten
• Fusion Middleware
• Edition Based
Redefiniton
© 2017 APPS ASSOCIATES LLC9 © 2017 APPS ASSOCIATES LLC9
Architektur #2
© 2017 APPS ASSOCIATES LLC10 © 2017 APPS ASSOCIATES LLC10
Architektur #3 – 12.0 vs. 12.2.x
© 2017 APPS ASSOCIATES LLC11
Online Patching – allgemeinWie sieht der Online Patching Prozess aus?
© 2017 APPS ASSOCIATES LLC12 © 2017 APPS ASSOCIATES LLC12
Online Patching – allgemein
© 2017 APPS ASSOCIATES LLC13 © 2017 APPS ASSOCIATES LLC13
Online Patching – Workflow ▪ Beispiel standard patching cycle:
▪ Nur auf “Primary master“Knoten:
▪ adop phase=prepare
▪ adop phase=applypatches=12345,67890
▪ adop phase=finalize
▪ adop phase=cutover
▪ adop phase=cleanup
© 2017 APPS ASSOCIATES LLC14
Edition Based RedefinitonWas ist Edition Based Redefintion?
Wie wird es in der Oracle EBS 12.2.x genutzt?
© 2017 APPS ASSOCIATES LLC15 © 2017 APPS ASSOCIATES LLC15
Edition Based Redefinition
EBR – Wie funktioniert es?
Beispiel EBR: „Altering a column“ auf einer Tabelle, während eines Patch
cycles
Tabelle
© 2017 APPS ASSOCIATES LLC16 © 2017 APPS ASSOCIATES LLC16
Edition Based Redefiniton #2
• Wichtige DBA Views:
– DBA_OBJECTS_AE („All Editions“ View mit Spalte „edition_name“)
– DBA_SOURCE_AE (“All Editions” View mit Spalte “edition_name”)
– DBA_EDITIONS
– GV$SESSION -> Spalte: SESSION_EDITION_ID
Gleiche Objekte in verschiedenen Versionen durch “Editions” in der DB.
Standard views ohne “_AE” zeigen nur die Objektversion der “Edition”, mitder die Session an der DB angemeldet ist.
© 2017 APPS ASSOCIATES LLC17
12.2.x DBA insightsWas muss ich als DBA noch berücksichtigen?
Welche Fallstricke gibt es?
© 2017 APPS ASSOCIATES LLC18 © 2017 APPS ASSOCIATES LLC18
• Wichtige zusätzliche Parameter:
– adop phase=prepare
– adop phase=applypatches=12345,67890 workers=20
Speed up apply Phase
– adop phase=finalize
– adop phase=cutover cm_wait=10Warte x Minuten bis CMs down / default (99999mins)
Nicht < 5
– adop phase=cleanup
12.2.x DBA insights
• Beispiel standard patching cycle:– adop phase=prepare
– adop phase=applypatches=12345,67890
– adop phase=finalize
– adop phase=cutover
– adop phase=cleanup
anpassen
© 2017 APPS ASSOCIATES LLC19 © 2017 APPS ASSOCIATES LLC19
12.2.x DBA insights #2
Andere Phasen des Online Patchings
• fs_clone: Sync Run auf Patch FS
• force=(yes|no) default is no; Restart eines fehlgeschlagenen fs_clone
• Beispiel: adopphase=fs_clone force=yes
Immer fs_clone ausführen nachdem Techstack Patches eingespielt wurden (FMW, Weblogic, 10.1.2)!
• abort: Abbrechen eines Patch cycles
• adop phase=prepare
• adop phase=apply patches=12345
• ### serious unfixable error reported ###
• adop phase=abort
• adop phase=cleanup cleanup_mode=full
• adop phase=fs_clone
Immer “Full cleanup” nach einemabort ausführen! Gefolgt von einem fs_clone!
© 2017 APPS ASSOCIATES LLC20 © 2017 APPS ASSOCIATES LLC20
12.2.x DBA insights #3
Datenbank Clean Up: Löschen alter „Editions“ • Löschen aller alten Editions aus der Datenbank
Durch einen “Patching cycle”:▪ adop phase=prepare▪ adop phase=actualize_all▪ adop phase=finalize finalize_mode=full▪ adop phase=cutover▪ adop phase=cleanup cleanup_mode=full
Achtung: Dieser Prozess läuft lang!
Hinweis: Niemals zu viele Editions im System halten. Zu viele Editions wirken sich negative auf die Performance aus! Max. 20-30 editions!
Regelmäßiges checken von: DBA_EDITIONS
© 2017 APPS ASSOCIATES LLC21 © 2017 APPS ASSOCIATES LLC21
12.2.x DBA insights #4 – Custom Code
Wie verhält sich Custom Code im Online Patching Cycle?
phase=prepare:
• „Custom Sync“ für „XXCUS Code“
– $APPL_TOP_NE/ad/custom/adop_sync.drv
Aber „Was ist mit…?“
Templateanpassungen: $FND_TOP/admin/template/custom
• Not detected: Alle Templates in Custom SyncDriver hinzufügen
Custom Code der autocfg benötigt
• Manually run AutoCfg in Patch Edition or addautocfg to sync driver
JSPs are included in XXCUS code
Beispiele sind falsch in der mitgelieferten Datei! Nutzt falsche Umgebungsvariablen und kompiliert mit „run edition config“ Parametern!
© 2017 APPS ASSOCIATES LLC22 © 2017 APPS ASSOCIATES LLC22
12.2.x DBA insights #5 – Cutover
Cutover-Phase im Online Patching?
phase=cutover:
• Kritischste Phase:– Downtime
– Kein Abort mehr möglich
– Kein Standard Rollback möglich
Aber „Wie…?“
…gehe ich mit „ point-of-no-return“ um? – Nutzen von DB Flashback, zurücksetzen auf
„restore point“ vor cutover
• File System wird nicht berücksichtigt– Nutzen von Storage/File System snapshots,
zum Zurücksetzenm auf Status vor Cutover• File system berücksichtigt
• Ggf. DB Recovery nötig
…verfolge ich den Cutover-Status?
– Auswerten des cutover status aus der Tabelle „ad_adop_sessions“, Spalte „cutover_status“
Hinweis: Sorgfältiges Testen einer Rollback-Strategie!
Cutover phase – status codes in ad_adop_sessions:
▪ 'Y' 'COMPLETED'
▪ not in ('N','Y','X') and status='F' 'FAILED'
▪ '0' 'CUTOVER STARTED'
▪ '1' 'SERVICES SHUTDOWN COMPLETED'
▪ '3' 'DB CUTOVER COMPLETED'
▪ Point-of-no-return (in DB)
▪ 'D' 'FLIP SNAPSHOTS COMPLETED'
▪ DB editions flipped
▪ Point-of-no-return (im FS), da FS cutover gestartet
▪ '4' 'FS CUTOVER COMPLETED'
▪ '5' 'ADMIN STARTUP COMPLETED'
▪ '6' 'SERVICES STARTUP COMPLETED'
▪ 'N' 'NOT STARTED'
▪ 'X' 'NOT APPLICABLE'
Hint: Statuswechsel können als Rollback Trigger dienen!
© 2017 APPS ASSOCIATES LLC23 © 2017 APPS ASSOCIATES LLC23
12.2.x DBA insights #6 – Know your log file
MOS note:
1366187.1
© 2017 APPS ASSOCIATES LLC24
12.2.x Developer insightsWas muss ich als Entwickler beachten?
Was ändert sich in 12.2.x?
© 2017 APPS ASSOCIATES LLC25 © 2017 APPS ASSOCIATES LLC25
12.2.x Developer insights
Logical view Data Model:
▪ EBR als Hauptkonzept muss verstanden werden!
Achtung: Falsche Edition!
© 2017 APPS ASSOCIATES LLC26 © 2017 APPS ASSOCIATES LLC26
12.2.x Developer insights #2
Falsche Edition? Wie, wo, was …?
• Selektieren der Edition aus dem DB Sys Context:– sys_context('USERENV','CURRENT_EDITION_NAME’)
• 12.2.x AD Funktionen nutzen:– ad_zd.get_edition();– ad_zd.set_edition(‘RUN’); or ad_zd.set_edition(‘PATCH’);
• Aus der Tabelle gv$session auslesen:– select session_edition_id from gv$session;
• ID ist object_id aus dba_objects
• Setzen für die Session:– alter session set edition = ‘V_20150725_0245’;
• Edition Name aus dba_editions
Hinweis: Im Regelfall sind die 12.2.x ad_zd Funktionen ausreichend!
© 2017 APPS ASSOCIATES LLC27 © 2017 APPS ASSOCIATES LLC27
12.2.x Developer insights #3
Was ist mit meinem Custom Code während eines Patching Cycles?
phase=prepare:
Aber „Was ist wenn…?“
...die „prepare“ Phase auf Dev ausgeführt wird?
Backup des aktuellen Codes machen! DB seitig wie auch Filesystem seitig, wie z.B. PLLs, etc.
– Aktueller Status wird auf Patch Edition gesynced aber
– Es ist möglich das der Code der zwischen Prepare und Cutover entwickelt wurde nach dem Cutover verloren geht!
– Code muss ggf. nach dem Cutover neu eingespielt werden!
– Hinweis: DBAs müssen Entwickler benachrichtigen wenn ein Cycle ausgeführt wird!
...prepare abgebrochen wird im Dev System?– Nichts! Die Run Edition bleibt wie sie ist. Und Development findet
normalerweise auf der laufenden Run Edition statt!
© 2017 APPS ASSOCIATES LLC28 © 2017 APPS ASSOCIATES LLC28
12.2.x Developer insights #4
Was ist mit meinem Custom Code während eines Patching Cycles?
phase=prepare:
Aber „Was ist wenn…?“
...die cutover phase auf dem Dev System ausgeführt wird?– File System wird gewechselt
– DB Edition wird gewechselt
– Alle DB Verbindungen werden gekillt! Check Edition nach reconnect!
...Package „xxcus_pkg“ zuvor in Run und Patch Edition kompiliert wurde?– Patch Edition „xxcus_pkg“ ist der neue Run Code! Selbst wenn das letzte
Kompilieren von „xxcus_pkg“ in run stattgefunden hat!
…Package „xxcus_pkg“ in run kompiliert wurde, aber nicht in Patch Edition?– Package „xxcus_pkg“ bleibt wie es ist!
Hinweis: File system Code wie PLLs wird beim Cutover immer gewechselt! DB Code nur wenn in der DB Patch Edition eine kompilierte Version exisitiert.
© 2017 APPS ASSOCIATES LLC29 © 2017 APPS ASSOCIATES LLC29
12.2.x Developer insights #5 – adop Status?
Wie kann ich den aktuellen Patch Status checken?
General reports:
– $AD_TOP/bin
– perl adzdreport.pl apps
• Menu point: “4. Developer Information”
Welche Patche sind in der aktuellen Patch Edition eingespielt?
– Tabelle: ad_adop_session_patches
• Spalten:
– bug_number: zeigt patch id, oder adadmin Aktionen
– patch_top: Verzeichnis wo die Patchsources liegen
– adpatch_options: Benutzte Optionen für das Patching oder adadmin
Kann ich meinen Code in der Patch Edition Testen vor dem Cutover?
– Nein! Aktuell ist es nicht supported die Applikation auf der Patch Edition zu testen.
© 2017 APPS ASSOCIATES LLC30
Fazit
© 2017 APPS ASSOCIATES LLC31 © 2017 APPS ASSOCIATES LLC31
Fazit
DBA DEV
Allgemein: adop ermöglicht Application Maintenance während die Applikation läuft.
ABER adop braucht einen neuen “Change Management Prozess und -Strategie”!
Online
Patching Cons:
▪ Neue komplexe
Technologie
▪ Vollständig neue
Developer Guides
Cons:
▪ Komplex und
herausfordernd
▪ Neue komplexe
Technologie
Pros:
▪ Einfacher adop Prozess
▪ Apps läuft während der
Maintenance Prozesse
Pros:▪ EBR hält alten Code
in der DB verfügbar
© 2017 APPS ASSOCIATES LLC32 © 2017 APPS ASSOCIATES LLC32
Scope Alliance – Besuchen Sie uns!
Ebene 1
Stand 130
© 2017 APPS ASSOCIATES LLC33
Danke!
Kai Glittenberg
+49-160-36 555 44
© 2017 APPS ASSOCIATES LLC34 © 2017 APPS ASSOCIATES LLC34
Appendix
Beispiel: Korrektes JSP Compile im Custom Sync Driver
perl %s_other_base% /EBSapps/appl/fnd/12.0.0/patch/115/bin/ojspCompile.pl --compile -s 'xxcus%' --flush - conf
%s_other_base% /inst/apps/ %s_contextname% /appl/admin/ojspCompile.conf
Links:Oracle E-Business Suite Release 12.2: Backup and Recovery Guidelines For Online Patching (adop) Cutover (Doc ID 1584097.1)
1366187.1 - Oracle Applications E-Business Suite 12.2 Fusion Middleware Log Files: Locate,View, and Control
Oracle E-Business Suite Release 12.2: Online Patching FAQ (Doc ID 1583902.1)
Guidance for Integrating Custom and Third-Party Products With Oracle E-Business Suite Release 12.2 (Doc ID 1916149.1)
Oracle E-Business Suite Release 12.2: Validations Performed By the adop Online Patching Utility (Doc ID 1678355.1)
1366187.1 – complete log file Overview
Oracle E-Business Suite Applications DBA and Technology Stack Release Notes for R12.AD.C.Delta.10 and R12.TXK.C.Delta.10 (Doc ID 2295390.1)
12.2.x Maintenance Guide: http://docs.oracle.com/cd/E26401_01/doc.122/e22954.pdf
12.2.x Developer Guide:
http://docs.oracle.com/cd/E26401_01/doc.122/e22961.pdf
12.2.x Doc Library:
http://docs.oracle.com/cd/E26401_01/index.htm