SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Das dreckige Dutzend – 
ADF Migration nach 12c in der IKB 
Torsten Kleiber, DOAG, 19.11.2014
IKB – Bank des Mittelstands 
IKB im Überblick 
Leistungsspektrum 
Regionale Präsenz 
1) Zzgl. 18.000 Kunden im Leasing-Geschäft 
2) Die per 30. Juni 2014 ausgewiesenen Kennziffern stehen unter dem Vorbehalt der Anerkennung der Zwischengewinne im 1. Quartal 2014/15 durch die Bankenaufsicht 
2 
 Seit 90 Jahren Finanzierungspartner des 
Mittelstands 
 2.500 Kunden in Deutschland und Europa1) 
 Aktionäre: Lone Star 91,5 %, 
Streubesitz 8,5 % 
 ca. 1.500 Mitarbeiter 
 Bilanzsumme: 24,6 Mrd. €2) 
 Common Equity Tier 1 ratio: 10,86 %2) (Basel 3) 
Mailand 
London 
Paris 
Madrid 
München 
Stuttgart 
Frankfurt 
Düsseldorf (HQ) 
Berlin 
Hamburg 
Fördermittel 
Konsortial-finanzierung 
Leasing 
Equity 
Capital Markets 
Advisory 
M&A 
Corporate Finance 
Risikomanagement 
Debt Advisory 
Derivate 
Sales & Trading 
Kredit 
Bilaterale 
Finanzierung 
Capital Markets 
Debt 
Capital Markets
Über mich 
Torsten Kleiber 
Software Architekt, Entwickler 
Kreditplattform 
15 Jahre IKB, 18 Jahre Oracle Erfahrung 
von 
Designer / Forms / Reports 
PL/SQL 
zu 
Architektur 
Fusion Middleware 
SOA Mediator 
ADF 
Development Tools 
Development Lifecycle 
Release Management 
3
Agenda 
4 
Ausgangs-lage 
Ziele 
Server 
Entwickler- 
Software 
Migration 
Release 
Bugs 
Betrieb 
??? 
Fazit 
Ausblick 
Q&A
Ausgangslage 
Start ADF vor 3 Jahren mit Lernprojekt 
bis kurz vor Release kein Deployment Server vorhanden 
Zeit, Ressourcen knapp 
SOA Suite 11.1.1.5 für Oracle Mediator vorhanden 
 Deployment ADF auf SOA Suite 
 JDeveloper / ADF 11.1.1.5 
seitdem weitere Anwendungen 
Diverse Bugs gefunden und umgangen 
Support abgelaufen 
5
Ziele 
Ablösung Eigenentwicklung für das Kreditgeschäft 
- > 500 Forms, > 60 Menüs, > 40 Bibliotheken, > 350 Reports 
- 50% in englisch 
- Integration der vorhandenen ADF Anwendungen 
Trennung LifeCycle ADF von SOA Suite 
- Komplexität 
- Patching 
- Ressourcen 
zertifizierte Version (prüfungsrelevant) 
Infrastructure as Code 
Bugbehebung 
Neue Funktionalitäten 
6
Server – Ausgangslage und Lösung 
Ausgangslage: 
- LifeCycle-Tausch Hardware absehbar 
- Hardwareanforderungen 12c nicht absehbar 
- Zusätzliche Hardware vor LifeCycle-Tausch  zusätzliche Kosten 
- Installation bisher 
- manuell und aufwändig 
- Dokumentation nur für Erstinstallation vorhanden 
Lösung: Automatisierung 
- schneller Hardwaretausch 
- reproduzierbare Konfiguration 
- Start auf bestehender Hardware 
7
Server – Proof of Concept 
 „Infrastructure as Code“? 
Womit? 
kostenlose Tools? 
Subjektive Erstauswahl: Puppet 
Proof of Concept Puppet 
- mangelnde Unterstützung für SUSE Linux Enterprise Server 
- veraltete Version 
- Forge-Module laufen auf SLES oft nicht 
- Sicherheit IKB Netzwerk 
- Keine Internetverbindung auf Server 
- Zertifikatsprüfung scheitert 
 Proof of Concept abgebrochen 
8
Server – Konfiguration / Binaries 
Installation und Konfiguration per ANT 
Konfigurationsdatei pro Umgebung 
9 
<?xml version="1.0" encoding="UTF8" ?> 
<project name="properties.conf.Entwicklung"> 
<property name="version.string" value="12.1.3.0.0"/> 
<property name="dba.user" value="sys"/> 
<property name="host.name" value="weblogic.ikb.de"/> 
<property name="host.user" value="osweblogic"/> 
<property name="host.install.dir" value="/install"/> 
<property name="host.admin.dir" value="/admin"/> 
<property name="wl.user" value="weblogic"/> 
<property name="rcu.host" value="rcu.ikb.de"/> 
<property name="rcu.port" value="1521"/> 
<property name="rcu.service" value=rcu"/> 
Bereitstellung der Software Binaries 
<target name="provide.binaries"> 
<scp password="${host.password}" todir="${host.user}@${host.name}:${host.install.dir}"> 
<fileset refid="install.fileset"/> 
</scp> 
</target>
Server – Skript-Parametrisierung 
Parametrisierte Skripte 
10 
Ersetzung der Parameter in den Skripten 
#!/bin/bash 
. HOST_ADMIN_DIR/ADF_VERSIONDIR_ENVIRONMENT.env 
pushd /install 
mkdir -p $ORACLE_HOME 
pushd $ORACLE_BASE 
tar zxvf /install/jdk-7u51-linux-x64.tar.gz 
popd 
java -jar fmw_VERSIONSTRING_wls.jar -silent -responseFile /install/fmw_VERSIONSTRING_wls.rsp 
java -jar fmw_VERSIONSTRING_infrastructure.jar -silent –responseFile 
/install/fmw_VERSIONSTRING_infrastructure.rsp 
... 
<target name="replaces.install"> 
<move todir="target/install" includeemptydirs="false" description="Datei umbenennen"> 
<fileset dir="target/install"/> 
<mapper type="regexp" from="^(.*)(VERSIONSTRING)(.*)" to="1${version.string}3"/> 
</move> 
<replaceregexp match="(VERSIONSTRING)" replace="${version.string}" flags="g" byline="true" 
description="Parameter ersetzen"> 
<fileset dir="target/install"/> 
</replaceregexp> 
... 
</target>
Server – Skript-Ausführung 
Bereitstellung und Ausführung 
11 
<target name="install" depends="clean,provide.admin,provide.install"> 
<sql classpath="${sql.classpath}" driver="oracle.jdbc.OracleDriver" url="${rcu.jdbc.url} 
userid="${dba.user}" password="${dba.password}" description="RCU Tablespaces anlegen" 
src="target/install/rcu_tablespaces.sql"/> 
<sshexec trust="true" host="${host.name}" username="${host.user}" 
password="${host.password}" description="Installation ausführen" 
command="${host.install.dir}/install.sh"/> 
</target> 
WLST-Skripte initialisieren Zustand vor Konfiguration 
startEdit() 
try: 
cmo.destroyJDBCSystemResource(getMBean('/JDBCSystemResources/' + dsNameAdf)) 
except WLSTException: 
print dsNameAdf + " does not exist!" 
activate() 
startEdit() 
cmo.createJDBCSystemResource(dsNameAdf) 
…
Server - Ergebnis 
12 
Ausgewählte gelöste Probleme 
- RCU Tablespace-Ablage  Tablespaces vor RCU anlegen 
-RCU Passworte  Eingabeumleitung aus Datei 
rcu silent -f < /install/pw.txt 
- Laufzeitprobleme wg. Zufallszahlen  rng-tools installieren und konfigurieren 
Ergebnis 
- Server-Installation und -Konfiguration (WebLogic mit ADF) in unter 30 Minuten 
- Server-Installation JDeveloper ebenfalls automatisiert
Entwicklersoftware - Ausgangslage 
ADF PM empfiehlt Standardisierung des Entwickler PC 
- JDeveloper Version 
- Patches 
- Anzahl und Version der Extensions 
Installation von Software durch den Anwender bei IKB nicht erlaubt 
Paketierung für Silent Installation 
13
Entwicklersoftware – JDeveloper Silent Installation 
Via Oracle Universal Installer 
Installer herunterladen 
Response File erzeugen 
- Manuelle Installation starten 
- Im „Installation Summary“ Bildschirm 
„Save Response File“ auswählen 
- Installation abbrechen 
Silent Installation 
14 
[ENGINE] 
Response File Version=1.0.0.0.0 
[GENERIC] 
INSTALL_TYPE=Typical 
ORACLE_HOME=C:OracleJDev121300 
jdev_suite_121300_win64.exe -silent -waitforcompletion 
-responseFile [Pfad]response.rsp 
response.rsp 
install.cmd
Entwicklersoftware - JDeveloper Silent Patching 
Via OPatch 
OPatch in JDeveloper Installation enthalten 
Patch herunterladen und entpacken 
Silent Patching 
15 
set oracle_home=C:OracleJDev121300 
pushd [path][patch nummer] 
%oracle_home%OPatchopatch apply silent 
popd 
patch.cmd
Entwicklersoftware - JDeveloper Silent Installation Extensions 
Via ojwebupdate 
 nicht dokumentiert: „ojwebupdate /?“ 
Download Extensions 
- Check for Updates in manueller Installation 
- URL‘s aus [JDEV_USER_DIR ]systemXXXo.ideupdatecenters.xml öffen 
- Passende Version herunterladen (Abhängigkeiten prüfen!) 
abhängige Extensions in richtiger Reihenfolge installieren 
Bei Nicht-Admin-Kennungen letzte Extension 2x als Admin installieren (= Restart) 
16 
set oracle_home=C:OracleJDev121300 
%oracle_home%jdeveloperjdevbinojwebupdate – 
zips=[Path]junit.zip 
%oracle_home%jdeveloperjdevbinojwebupdate – 
zips=[Path]junit-j2ee.zip 
extensions.cmd
Entwicklersoftware - JDeveloper Konfiguration 
Anpassung Installation 
- ide.conf (z.B. Memoryoptionen: -Xms, -Xmx) 
- jdev.conf (z.B. HeapMonitor : -DMainWindow.MemoryMonitorOn=true) 
Konfiguration Benutzereinstellungen 
- silent Konfiguration nicht vorgesehen 
- Einstellungs-Verzeichnis wird bei erstem Start erzeugt 
- Ort übersteuerbar per Umgebungsvariable JDEV_USER_DIR 
- Proof of Concept: Extension für Einstellungen der IKB 
- Auf viele Dateien verteilt 
- Erzeugung teilweise erst beim Setzen (z.B. Namenskonventionen ADF BC) 
-  Einstellung der Entwicklung 
-  manuelle Konfiguration nach erstem Start lt. Wiki 
- Konfiguration des WebLogic-Server über WLST-Skript 
- Alternative?: selbes Verzeichnis über JDEV_USER_DIR 
17
Entwicklersoftware – weitere Software 
Tortoise SVN 1.7 Client 
- JDeveloper SVN Plugin teilweise mangelhaft 
- Version X.X muss zur JDeveloper SVN Version passen 
- Upgrade SVN Repository erst, wenn alle Applikationen migriert sind! 
18
Migration - Migrationspfad 
Ermittlung Migrationspfad 
- 12.1.2/12.1.3 
19 
- nur von 11.1.1.7 supported 
- 11.1.1.7: 
von 11.1.1.5 supported 
 Migrationspfad: 11.1.1.5  11.1.1.7  12.1.2/12.1.3
Migration – Prinzipieller Ablauf 
Migration nach 11.1.1.7 
- Manuelles Öffnen aller Anwendungen 
- Bestätigung aller Migrationsassistant-Abfragen 
- Anpassungen 
- Test der Anwendung 
Migration nach 12.1.2/12.1.3 
- Manuelles Öffnen aller Anwendungen 
- Bestätigung aller Migrationsassistant-Abfragen 
- Anpassungen 
- Test der Anwendung 
20 
for /r [path] %%i in (*.jws) do ( 
[Oracle Home]jdeveloperjdevbinojmigrate %%i 
) 
ojmigrate: nicht dokumentiert: „ojmigrate /?“
Migration – Anwendung „Marktdaten“ 
- Kleine Anwendung für kleinen Nutzerkreis 
- DVT-Komponenten führten wg. Bug zum Serverabsturz unter 11.1.1.5/7 
- Hoher Einsatzdruck aufgrund Prüfungsfeststellung 
- März 2014 auf 12.1.2 
- seitdem produktiv 
- August 2014 auf 12.1.3 
21
Migration – Migration andere Anwendungen 
 Iterative Test-Migrationen seit November 2013 
Ablauf pro JDeveloper-Version erweitert um 
- Anpassungen Variablen für ANT Build 
- Anpassung Classpath für ANT Build über JDevLibsForAnt 
- Umstellung Build auf ojserver 
- Bei 12c „TODO 12c“ Kommentare abarbeiten 
- Build 
- automatischer Test mit Set von Unit- und GUI-Tests 
- Backport Änderungen nach 11g Trunk direkt oder als „TODO 12c“ Kommentar 
- Commit Zwischenstand 
JDeveloper IDE 12.1.2 sehr stark fehlerbehaftet 
12.1.3 im Juli 2014 erschienen 
Kleine Anpassungen der Installationsskripte für Server und Entwicklungssoftware 
Migrationsbeginn September 2014 
Intensiver manueller Test 
22
Release 
Release am 12.09.2014 
Umstellung von Deployment / Überwachung / Administration auf neue Server 
Merge Migrations-Branch in den Trunk 
Deployment aller Anwendungen 
manuelle Migration des MDS Repositories über den Enterprise Manager 
Umstellung aller Zugriffe/Links 
- Neue logische Aliase im DNS verweisen auf 
- Reale Links der Anwendung per F5 Load Balancer Forwarding 
Stoppen der Anwendungen auf den 11.1.1.5/12.1.2 Servern 
Umstellung Jobs für Continous Integration 
 Verteilung TortoiseSVN 1.7 auf Entwickler PC‘s 
23
Auswahl an Bug‘s / Notes / SR‘s 12.1.3 
- 18489410: svn: “Switch working copy” Befehl wie in TortoiseSVN 
- 18163751: svn: Zugriff per HTTP Proxy mit Authorization 
- JSP Precompile funktioniert nicht für jspx/jsff in ADF Libraries 
- 19525523: JSP Precompile funktioniert nicht im IntegratedWebLogicServer 
- 18704469: Task Tags werden in XML- or Text-Dateien nicht mehr markiert 
- 19434883: Reihenfolge von Code Editor Save Actions wird nicht gespeichert 
- 19347286: Order by kann in Expert Mode VO’s nicht geändert werden 
- 19353293: Code Insight : Statt Return Type wird Methoden-Signatur angezeigt 
- 776277.1: DVT: X11-Server oder JVM-Parameter für java.awt.* wird benötigt 
- 19823554: Custom Filter funktionieren nicht, wenn Suchergebnis > Fetch Size 
- 19529827: IE 8/9: Fokusverlust bei 2. Klick in selbe Tabellenspalte 
- 19724439: Search-LOV mit großen Feldern wird nicht dynamisch vergrößert 
- 19771991: Filter auf Date/ArrayList Spalten - ClassCastException 
- 19855915: Filter auf Number Spalten - Fehler bei Eingabe Nachkommastellen 
- NotConnectedEcxeptions in (nested?) AM’s in (isolated?) TF’s 
Bitte SR öffnen und eskalieren! Oder haben Sie Lösungen für diese Probleme? 
24 
Workaround Patch wird nicht gefixt
Betrieb – Fire Fighting 
25
??? - Das dreckige Dutzend? 
Bugs vor Einsatz als vertretbar eingestuft 
kein Last-Test wg. fehlender Infrastruktur 
 NotConnectedException’s führen zu 
Destabilisierung unter Produktionslast 
nach einer Woche Betrieb Fallback 
durchgeführt für diese Anwendung 
Vorläufig Weiterentwicklung unter 11.1.1.5 
Anwendung nicht verworfen, Backport der 
Änderungen wo möglich 
26
Ausblick 
Weitere Analyse der zurückgerollten 12c-Anwendung 
- WebLogic Logs 
- Lasttests 
- Debugging 
Entscheidung über neue Migration abhängig von 
- Ergebnissen der Analyse 
- Rollout Internet Explorer 11 (supportet erst ab 11.1.1.6 / 11.1.2.3 / 12.1.2) 
27
Fazit 
 Projektziel wurde nicht erreicht 
 Scheitern hatte negative Außenwirkung 
Scheitern als Chance für Erweiterung 
Entwicklungsprozess 
- Mehr automatisierte Tests 
- Last-Test 
- Fehler-Monitoring 
- … 
Ist ADF 12.1.3 wirklich produktionsreif? 
28
Fragen & Antworten 
29

Weitere ähnliche Inhalte

Was ist angesagt?

Java magazin9 2012_wls 12c_das_dutzend_ist_voll
Java magazin9 2012_wls 12c_das_dutzend_ist_vollJava magazin9 2012_wls 12c_das_dutzend_ist_voll
Java magazin9 2012_wls 12c_das_dutzend_ist_vollWolfgang Weigend
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrants0enke
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
May the forge be with you
May the forge be with youMay the forge be with you
May the forge be with youSandro Sonntag
 
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScriptJSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScriptOPEN KNOWLEDGE GmbH
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang BarthNETWAYS
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerSandro Sonntag
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerPatrick Baumgartner
 
Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenQAware GmbH
 
Deploy Magento Shops with Capistrano v3
Deploy Magento Shops with Capistrano  v3Deploy Magento Shops with Capistrano  v3
Deploy Magento Shops with Capistrano v3Roman Hutterer
 
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Informatik Aktuell
 
Zend Framework
Zend FrameworkZend Framework
Zend Frameworkluckec
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Wiest Simon
 
Gameduell Glassfish Migration
Gameduell Glassfish MigrationGameduell Glassfish Migration
Gameduell Glassfish Migrationdehms
 

Was ist angesagt? (20)

Java magazin9 2012_wls 12c_das_dutzend_ist_voll
Java magazin9 2012_wls 12c_das_dutzend_ist_vollJava magazin9 2012_wls 12c_das_dutzend_ist_voll
Java magazin9 2012_wls 12c_das_dutzend_ist_voll
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
May the forge be with you
May the forge be with youMay the forge be with you
May the forge be with you
 
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScriptJSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
Die Java Plattform Strategie
Die Java Plattform StrategieDie Java Plattform Strategie
Die Java Plattform Strategie
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM Server
 
Jenkins Acceleration
Jenkins AccelerationJenkins Acceleration
Jenkins Acceleration
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als Entwickler
 
Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 Minuten
 
Deploy Magento Shops with Capistrano v3
Deploy Magento Shops with Capistrano  v3Deploy Magento Shops with Capistrano  v3
Deploy Magento Shops with Capistrano v3
 
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
 
Best Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in ContainernBest Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in Containern
 
Gameduell Glassfish Migration
Gameduell Glassfish MigrationGameduell Glassfish Migration
Gameduell Glassfish Migration
 

Andere mochten auch

Die Zukunft verkauft sich nicht von alleine: SaaS-Vertrieb für StartUps
Die Zukunft verkauft sich nicht von alleine: SaaS-Vertrieb für StartUpsDie Zukunft verkauft sich nicht von alleine: SaaS-Vertrieb für StartUps
Die Zukunft verkauft sich nicht von alleine: SaaS-Vertrieb für StartUpsSteffen Ritter
 
Phnom Penh: Orussey Market
Phnom Penh: Orussey MarketPhnom Penh: Orussey Market
Phnom Penh: Orussey MarketF. Ovies
 
The Best Of Deutschland
The Best Of DeutschlandThe Best Of Deutschland
The Best Of Deutschlandalex
 
Master Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule SalzburgMaster Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule SalzburgBrigitte Jellinek
 
Link Building für Anfänger SEOCAMPIXX
Link Building für Anfänger SEOCAMPIXXLink Building für Anfänger SEOCAMPIXX
Link Building für Anfänger SEOCAMPIXXNina Baumann
 
Über die Wertschöpfung hinaus ... Future EduTech im Dialog von Wirtschaft und...
Über die Wertschöpfung hinaus ... Future EduTech im Dialog von Wirtschaft und...Über die Wertschöpfung hinaus ... Future EduTech im Dialog von Wirtschaft und...
Über die Wertschöpfung hinaus ... Future EduTech im Dialog von Wirtschaft und...e-teaching.org
 
Zend Framework 2.0
Zend Framework 2.0Zend Framework 2.0
Zend Framework 2.0Ralf Eggert
 
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...e-teaching.org
 
Fallstudien erstellen mit CaSim
Fallstudien erstellen mit CaSimFallstudien erstellen mit CaSim
Fallstudien erstellen mit CaSime-teaching.org
 
Animalices
AnimalicesAnimalices
Animalicesalex
 
Change Management in Tageszeitungsredaktionen - Vortrag DGPuK Jahrestagung 20...
Change Management in Tageszeitungsredaktionen - Vortrag DGPuK Jahrestagung 20...Change Management in Tageszeitungsredaktionen - Vortrag DGPuK Jahrestagung 20...
Change Management in Tageszeitungsredaktionen - Vortrag DGPuK Jahrestagung 20...Christopher Buschow
 
Blended Assessment - Universitäres Assessment in Zeiten des Web 2.0.
Blended Assessment - Universitäres Assessment in Zeiten des Web 2.0.Blended Assessment - Universitäres Assessment in Zeiten des Web 2.0.
Blended Assessment - Universitäres Assessment in Zeiten des Web 2.0.e-teaching.org
 
mmwd_über mich
mmwd_über michmmwd_über mich
mmwd_über mich4ck_steyr
 

Andere mochten auch (20)

Die Zukunft verkauft sich nicht von alleine: SaaS-Vertrieb für StartUps
Die Zukunft verkauft sich nicht von alleine: SaaS-Vertrieb für StartUpsDie Zukunft verkauft sich nicht von alleine: SaaS-Vertrieb für StartUps
Die Zukunft verkauft sich nicht von alleine: SaaS-Vertrieb für StartUps
 
Phnom Penh: Orussey Market
Phnom Penh: Orussey MarketPhnom Penh: Orussey Market
Phnom Penh: Orussey Market
 
The Best Of Deutschland
The Best Of DeutschlandThe Best Of Deutschland
The Best Of Deutschland
 
Master Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule SalzburgMaster Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule Salzburg
 
Link Building für Anfänger SEOCAMPIXX
Link Building für Anfänger SEOCAMPIXXLink Building für Anfänger SEOCAMPIXX
Link Building für Anfänger SEOCAMPIXX
 
Über die Wertschöpfung hinaus ... Future EduTech im Dialog von Wirtschaft und...
Über die Wertschöpfung hinaus ... Future EduTech im Dialog von Wirtschaft und...Über die Wertschöpfung hinaus ... Future EduTech im Dialog von Wirtschaft und...
Über die Wertschöpfung hinaus ... Future EduTech im Dialog von Wirtschaft und...
 
Zend Framework 2.0
Zend Framework 2.0Zend Framework 2.0
Zend Framework 2.0
 
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
 
Green Meetings - Why?
Green Meetings - Why?Green Meetings - Why?
Green Meetings - Why?
 
Fallstudien erstellen mit CaSim
Fallstudien erstellen mit CaSimFallstudien erstellen mit CaSim
Fallstudien erstellen mit CaSim
 
Animalices
AnimalicesAnimalices
Animalices
 
Mediengerechtes Webdesign
Mediengerechtes WebdesignMediengerechtes Webdesign
Mediengerechtes Webdesign
 
Nachhaltigkeit
NachhaltigkeitNachhaltigkeit
Nachhaltigkeit
 
Obst
ObstObst
Obst
 
Green Meetings - How?
Green Meetings - How?Green Meetings - How?
Green Meetings - How?
 
Change Management in Tageszeitungsredaktionen - Vortrag DGPuK Jahrestagung 20...
Change Management in Tageszeitungsredaktionen - Vortrag DGPuK Jahrestagung 20...Change Management in Tageszeitungsredaktionen - Vortrag DGPuK Jahrestagung 20...
Change Management in Tageszeitungsredaktionen - Vortrag DGPuK Jahrestagung 20...
 
Wedekind Ag Med PäD
Wedekind Ag Med PäDWedekind Ag Med PäD
Wedekind Ag Med PäD
 
Blended Assessment - Universitäres Assessment in Zeiten des Web 2.0.
Blended Assessment - Universitäres Assessment in Zeiten des Web 2.0.Blended Assessment - Universitäres Assessment in Zeiten des Web 2.0.
Blended Assessment - Universitäres Assessment in Zeiten des Web 2.0.
 
mmwd_über mich
mmwd_über michmmwd_über mich
mmwd_über mich
 
Define 2
Define 2Define 2
Define 2
 

Ähnlich wie Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.

Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...LeanIX GmbH
 
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentationbneselov
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenHendrik Lösch
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOpsAndreas Koop
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrGunther Pippèrr
 
Roadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesRoadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesDigicomp Academy AG
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationGWAVA
 
Rapid Deploy von OS, Virtualsierung und Applikation
Rapid Deploy von OS, Virtualsierung und ApplikationRapid Deploy von OS, Virtualsierung und Applikation
Rapid Deploy von OS, Virtualsierung und ApplikationJomaSoft
 
B3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite ApplicationsB3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite ApplicationsAndreas Schulte
 
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...NETWAYS
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
JBoss AS 7 als Plattform moderner Enterprise-Anwendungen
JBoss AS 7 als Plattform moderner Enterprise-AnwendungenJBoss AS 7 als Plattform moderner Enterprise-Anwendungen
JBoss AS 7 als Plattform moderner Enterprise-Anwendungengedoplan
 
Migration zum Zend Framework 3
Migration zum Zend Framework 3Migration zum Zend Framework 3
Migration zum Zend Framework 3Ralf Eggert
 
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektOPITZ CONSULTING Deutschland
 

Ähnlich wie Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014. (20)

Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
Fehleranalyse in SCCM
Fehleranalyse in SCCMFehleranalyse in SCCM
Fehleranalyse in SCCM
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
 
Automatisierte Oracle Middleware Installation
Automatisierte Oracle Middleware InstallationAutomatisierte Oracle Middleware Installation
Automatisierte Oracle Middleware Installation
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
 
Roadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesRoadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & Features
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
Rapid Deploy von OS, Virtualsierung und Applikation
Rapid Deploy von OS, Virtualsierung und ApplikationRapid Deploy von OS, Virtualsierung und Applikation
Rapid Deploy von OS, Virtualsierung und Applikation
 
B3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite ApplicationsB3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite Applications
 
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
JBoss AS 7 als Plattform moderner Enterprise-Anwendungen
JBoss AS 7 als Plattform moderner Enterprise-AnwendungenJBoss AS 7 als Plattform moderner Enterprise-Anwendungen
JBoss AS 7 als Plattform moderner Enterprise-Anwendungen
 
Migration zum Zend Framework 3
Migration zum Zend Framework 3Migration zum Zend Framework 3
Migration zum Zend Framework 3
 
Automatisierung mit grunt
Automatisierung mit gruntAutomatisierung mit grunt
Automatisierung mit grunt
 
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
 

Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.

  • 1. Das dreckige Dutzend – ADF Migration nach 12c in der IKB Torsten Kleiber, DOAG, 19.11.2014
  • 2. IKB – Bank des Mittelstands IKB im Überblick Leistungsspektrum Regionale Präsenz 1) Zzgl. 18.000 Kunden im Leasing-Geschäft 2) Die per 30. Juni 2014 ausgewiesenen Kennziffern stehen unter dem Vorbehalt der Anerkennung der Zwischengewinne im 1. Quartal 2014/15 durch die Bankenaufsicht 2  Seit 90 Jahren Finanzierungspartner des Mittelstands  2.500 Kunden in Deutschland und Europa1)  Aktionäre: Lone Star 91,5 %, Streubesitz 8,5 %  ca. 1.500 Mitarbeiter  Bilanzsumme: 24,6 Mrd. €2)  Common Equity Tier 1 ratio: 10,86 %2) (Basel 3) Mailand London Paris Madrid München Stuttgart Frankfurt Düsseldorf (HQ) Berlin Hamburg Fördermittel Konsortial-finanzierung Leasing Equity Capital Markets Advisory M&A Corporate Finance Risikomanagement Debt Advisory Derivate Sales & Trading Kredit Bilaterale Finanzierung Capital Markets Debt Capital Markets
  • 3. Über mich Torsten Kleiber Software Architekt, Entwickler Kreditplattform 15 Jahre IKB, 18 Jahre Oracle Erfahrung von Designer / Forms / Reports PL/SQL zu Architektur Fusion Middleware SOA Mediator ADF Development Tools Development Lifecycle Release Management 3
  • 4. Agenda 4 Ausgangs-lage Ziele Server Entwickler- Software Migration Release Bugs Betrieb ??? Fazit Ausblick Q&A
  • 5. Ausgangslage Start ADF vor 3 Jahren mit Lernprojekt bis kurz vor Release kein Deployment Server vorhanden Zeit, Ressourcen knapp SOA Suite 11.1.1.5 für Oracle Mediator vorhanden  Deployment ADF auf SOA Suite  JDeveloper / ADF 11.1.1.5 seitdem weitere Anwendungen Diverse Bugs gefunden und umgangen Support abgelaufen 5
  • 6. Ziele Ablösung Eigenentwicklung für das Kreditgeschäft - > 500 Forms, > 60 Menüs, > 40 Bibliotheken, > 350 Reports - 50% in englisch - Integration der vorhandenen ADF Anwendungen Trennung LifeCycle ADF von SOA Suite - Komplexität - Patching - Ressourcen zertifizierte Version (prüfungsrelevant) Infrastructure as Code Bugbehebung Neue Funktionalitäten 6
  • 7. Server – Ausgangslage und Lösung Ausgangslage: - LifeCycle-Tausch Hardware absehbar - Hardwareanforderungen 12c nicht absehbar - Zusätzliche Hardware vor LifeCycle-Tausch  zusätzliche Kosten - Installation bisher - manuell und aufwändig - Dokumentation nur für Erstinstallation vorhanden Lösung: Automatisierung - schneller Hardwaretausch - reproduzierbare Konfiguration - Start auf bestehender Hardware 7
  • 8. Server – Proof of Concept  „Infrastructure as Code“? Womit? kostenlose Tools? Subjektive Erstauswahl: Puppet Proof of Concept Puppet - mangelnde Unterstützung für SUSE Linux Enterprise Server - veraltete Version - Forge-Module laufen auf SLES oft nicht - Sicherheit IKB Netzwerk - Keine Internetverbindung auf Server - Zertifikatsprüfung scheitert  Proof of Concept abgebrochen 8
  • 9. Server – Konfiguration / Binaries Installation und Konfiguration per ANT Konfigurationsdatei pro Umgebung 9 <?xml version="1.0" encoding="UTF8" ?> <project name="properties.conf.Entwicklung"> <property name="version.string" value="12.1.3.0.0"/> <property name="dba.user" value="sys"/> <property name="host.name" value="weblogic.ikb.de"/> <property name="host.user" value="osweblogic"/> <property name="host.install.dir" value="/install"/> <property name="host.admin.dir" value="/admin"/> <property name="wl.user" value="weblogic"/> <property name="rcu.host" value="rcu.ikb.de"/> <property name="rcu.port" value="1521"/> <property name="rcu.service" value=rcu"/> Bereitstellung der Software Binaries <target name="provide.binaries"> <scp password="${host.password}" todir="${host.user}@${host.name}:${host.install.dir}"> <fileset refid="install.fileset"/> </scp> </target>
  • 10. Server – Skript-Parametrisierung Parametrisierte Skripte 10 Ersetzung der Parameter in den Skripten #!/bin/bash . HOST_ADMIN_DIR/ADF_VERSIONDIR_ENVIRONMENT.env pushd /install mkdir -p $ORACLE_HOME pushd $ORACLE_BASE tar zxvf /install/jdk-7u51-linux-x64.tar.gz popd java -jar fmw_VERSIONSTRING_wls.jar -silent -responseFile /install/fmw_VERSIONSTRING_wls.rsp java -jar fmw_VERSIONSTRING_infrastructure.jar -silent –responseFile /install/fmw_VERSIONSTRING_infrastructure.rsp ... <target name="replaces.install"> <move todir="target/install" includeemptydirs="false" description="Datei umbenennen"> <fileset dir="target/install"/> <mapper type="regexp" from="^(.*)(VERSIONSTRING)(.*)" to="1${version.string}3"/> </move> <replaceregexp match="(VERSIONSTRING)" replace="${version.string}" flags="g" byline="true" description="Parameter ersetzen"> <fileset dir="target/install"/> </replaceregexp> ... </target>
  • 11. Server – Skript-Ausführung Bereitstellung und Ausführung 11 <target name="install" depends="clean,provide.admin,provide.install"> <sql classpath="${sql.classpath}" driver="oracle.jdbc.OracleDriver" url="${rcu.jdbc.url} userid="${dba.user}" password="${dba.password}" description="RCU Tablespaces anlegen" src="target/install/rcu_tablespaces.sql"/> <sshexec trust="true" host="${host.name}" username="${host.user}" password="${host.password}" description="Installation ausführen" command="${host.install.dir}/install.sh"/> </target> WLST-Skripte initialisieren Zustand vor Konfiguration startEdit() try: cmo.destroyJDBCSystemResource(getMBean('/JDBCSystemResources/' + dsNameAdf)) except WLSTException: print dsNameAdf + " does not exist!" activate() startEdit() cmo.createJDBCSystemResource(dsNameAdf) …
  • 12. Server - Ergebnis 12 Ausgewählte gelöste Probleme - RCU Tablespace-Ablage  Tablespaces vor RCU anlegen -RCU Passworte  Eingabeumleitung aus Datei rcu silent -f < /install/pw.txt - Laufzeitprobleme wg. Zufallszahlen  rng-tools installieren und konfigurieren Ergebnis - Server-Installation und -Konfiguration (WebLogic mit ADF) in unter 30 Minuten - Server-Installation JDeveloper ebenfalls automatisiert
  • 13. Entwicklersoftware - Ausgangslage ADF PM empfiehlt Standardisierung des Entwickler PC - JDeveloper Version - Patches - Anzahl und Version der Extensions Installation von Software durch den Anwender bei IKB nicht erlaubt Paketierung für Silent Installation 13
  • 14. Entwicklersoftware – JDeveloper Silent Installation Via Oracle Universal Installer Installer herunterladen Response File erzeugen - Manuelle Installation starten - Im „Installation Summary“ Bildschirm „Save Response File“ auswählen - Installation abbrechen Silent Installation 14 [ENGINE] Response File Version=1.0.0.0.0 [GENERIC] INSTALL_TYPE=Typical ORACLE_HOME=C:OracleJDev121300 jdev_suite_121300_win64.exe -silent -waitforcompletion -responseFile [Pfad]response.rsp response.rsp install.cmd
  • 15. Entwicklersoftware - JDeveloper Silent Patching Via OPatch OPatch in JDeveloper Installation enthalten Patch herunterladen und entpacken Silent Patching 15 set oracle_home=C:OracleJDev121300 pushd [path][patch nummer] %oracle_home%OPatchopatch apply silent popd patch.cmd
  • 16. Entwicklersoftware - JDeveloper Silent Installation Extensions Via ojwebupdate  nicht dokumentiert: „ojwebupdate /?“ Download Extensions - Check for Updates in manueller Installation - URL‘s aus [JDEV_USER_DIR ]systemXXXo.ideupdatecenters.xml öffen - Passende Version herunterladen (Abhängigkeiten prüfen!) abhängige Extensions in richtiger Reihenfolge installieren Bei Nicht-Admin-Kennungen letzte Extension 2x als Admin installieren (= Restart) 16 set oracle_home=C:OracleJDev121300 %oracle_home%jdeveloperjdevbinojwebupdate – zips=[Path]junit.zip %oracle_home%jdeveloperjdevbinojwebupdate – zips=[Path]junit-j2ee.zip extensions.cmd
  • 17. Entwicklersoftware - JDeveloper Konfiguration Anpassung Installation - ide.conf (z.B. Memoryoptionen: -Xms, -Xmx) - jdev.conf (z.B. HeapMonitor : -DMainWindow.MemoryMonitorOn=true) Konfiguration Benutzereinstellungen - silent Konfiguration nicht vorgesehen - Einstellungs-Verzeichnis wird bei erstem Start erzeugt - Ort übersteuerbar per Umgebungsvariable JDEV_USER_DIR - Proof of Concept: Extension für Einstellungen der IKB - Auf viele Dateien verteilt - Erzeugung teilweise erst beim Setzen (z.B. Namenskonventionen ADF BC) -  Einstellung der Entwicklung -  manuelle Konfiguration nach erstem Start lt. Wiki - Konfiguration des WebLogic-Server über WLST-Skript - Alternative?: selbes Verzeichnis über JDEV_USER_DIR 17
  • 18. Entwicklersoftware – weitere Software Tortoise SVN 1.7 Client - JDeveloper SVN Plugin teilweise mangelhaft - Version X.X muss zur JDeveloper SVN Version passen - Upgrade SVN Repository erst, wenn alle Applikationen migriert sind! 18
  • 19. Migration - Migrationspfad Ermittlung Migrationspfad - 12.1.2/12.1.3 19 - nur von 11.1.1.7 supported - 11.1.1.7: von 11.1.1.5 supported  Migrationspfad: 11.1.1.5  11.1.1.7  12.1.2/12.1.3
  • 20. Migration – Prinzipieller Ablauf Migration nach 11.1.1.7 - Manuelles Öffnen aller Anwendungen - Bestätigung aller Migrationsassistant-Abfragen - Anpassungen - Test der Anwendung Migration nach 12.1.2/12.1.3 - Manuelles Öffnen aller Anwendungen - Bestätigung aller Migrationsassistant-Abfragen - Anpassungen - Test der Anwendung 20 for /r [path] %%i in (*.jws) do ( [Oracle Home]jdeveloperjdevbinojmigrate %%i ) ojmigrate: nicht dokumentiert: „ojmigrate /?“
  • 21. Migration – Anwendung „Marktdaten“ - Kleine Anwendung für kleinen Nutzerkreis - DVT-Komponenten führten wg. Bug zum Serverabsturz unter 11.1.1.5/7 - Hoher Einsatzdruck aufgrund Prüfungsfeststellung - März 2014 auf 12.1.2 - seitdem produktiv - August 2014 auf 12.1.3 21
  • 22. Migration – Migration andere Anwendungen  Iterative Test-Migrationen seit November 2013 Ablauf pro JDeveloper-Version erweitert um - Anpassungen Variablen für ANT Build - Anpassung Classpath für ANT Build über JDevLibsForAnt - Umstellung Build auf ojserver - Bei 12c „TODO 12c“ Kommentare abarbeiten - Build - automatischer Test mit Set von Unit- und GUI-Tests - Backport Änderungen nach 11g Trunk direkt oder als „TODO 12c“ Kommentar - Commit Zwischenstand JDeveloper IDE 12.1.2 sehr stark fehlerbehaftet 12.1.3 im Juli 2014 erschienen Kleine Anpassungen der Installationsskripte für Server und Entwicklungssoftware Migrationsbeginn September 2014 Intensiver manueller Test 22
  • 23. Release Release am 12.09.2014 Umstellung von Deployment / Überwachung / Administration auf neue Server Merge Migrations-Branch in den Trunk Deployment aller Anwendungen manuelle Migration des MDS Repositories über den Enterprise Manager Umstellung aller Zugriffe/Links - Neue logische Aliase im DNS verweisen auf - Reale Links der Anwendung per F5 Load Balancer Forwarding Stoppen der Anwendungen auf den 11.1.1.5/12.1.2 Servern Umstellung Jobs für Continous Integration  Verteilung TortoiseSVN 1.7 auf Entwickler PC‘s 23
  • 24. Auswahl an Bug‘s / Notes / SR‘s 12.1.3 - 18489410: svn: “Switch working copy” Befehl wie in TortoiseSVN - 18163751: svn: Zugriff per HTTP Proxy mit Authorization - JSP Precompile funktioniert nicht für jspx/jsff in ADF Libraries - 19525523: JSP Precompile funktioniert nicht im IntegratedWebLogicServer - 18704469: Task Tags werden in XML- or Text-Dateien nicht mehr markiert - 19434883: Reihenfolge von Code Editor Save Actions wird nicht gespeichert - 19347286: Order by kann in Expert Mode VO’s nicht geändert werden - 19353293: Code Insight : Statt Return Type wird Methoden-Signatur angezeigt - 776277.1: DVT: X11-Server oder JVM-Parameter für java.awt.* wird benötigt - 19823554: Custom Filter funktionieren nicht, wenn Suchergebnis > Fetch Size - 19529827: IE 8/9: Fokusverlust bei 2. Klick in selbe Tabellenspalte - 19724439: Search-LOV mit großen Feldern wird nicht dynamisch vergrößert - 19771991: Filter auf Date/ArrayList Spalten - ClassCastException - 19855915: Filter auf Number Spalten - Fehler bei Eingabe Nachkommastellen - NotConnectedEcxeptions in (nested?) AM’s in (isolated?) TF’s Bitte SR öffnen und eskalieren! Oder haben Sie Lösungen für diese Probleme? 24 Workaround Patch wird nicht gefixt
  • 25. Betrieb – Fire Fighting 25
  • 26. ??? - Das dreckige Dutzend? Bugs vor Einsatz als vertretbar eingestuft kein Last-Test wg. fehlender Infrastruktur  NotConnectedException’s führen zu Destabilisierung unter Produktionslast nach einer Woche Betrieb Fallback durchgeführt für diese Anwendung Vorläufig Weiterentwicklung unter 11.1.1.5 Anwendung nicht verworfen, Backport der Änderungen wo möglich 26
  • 27. Ausblick Weitere Analyse der zurückgerollten 12c-Anwendung - WebLogic Logs - Lasttests - Debugging Entscheidung über neue Migration abhängig von - Ergebnissen der Analyse - Rollout Internet Explorer 11 (supportet erst ab 11.1.1.6 / 11.1.2.3 / 12.1.2) 27
  • 28. Fazit  Projektziel wurde nicht erreicht  Scheitern hatte negative Außenwirkung Scheitern als Chance für Erweiterung Entwicklungsprozess - Mehr automatisierte Tests - Last-Test - Fehler-Monitoring - … Ist ADF 12.1.3 wirklich produktionsreif? 28