Mittwoch, 27. Juli 2011

Upgrade SOA/BPM-Suite 11.1.1.4 nach 11.1.1.5

1. Upgrade WLS 10.3.4 -> 10.3.5

Für das Upgrade muss zunächst der WebLogic Server von 10.3.4 auf 10.3.5 upgraded werden. Hierzu benötigt man den Patch von support.oracle.com. Die Patch-Nummern sind
  • 12395517 für Linux 32-Bit
  • 12395560 für Windows 32-Bit
Für alle anderen Plattformen einfach suchen nach Produkt='Oracle WebLogic Server', Release=10.3.5 und die gewünschte Plattform eingeben. Der WLS Patch Installer wird einfach mit den default-Einstellungen durchgeklickt.

2. SOA-Suite 11.1.1.5 Upgrade installieren

Als nächstes wird die SOA-Suite 11.1.1.5 benötigt, erhältlich unter http://www.oracle.com/technetwork/middleware/soasuite/downloads/index.html.

Den Installer für die SOA-Suite startet man dann nach dem Entpacken wie bei einer neuen Installation via .../Disk1/runInstaller. Die Dokumentation dazu findet man unter http://download.oracle.com/docs/cd/E17904_01/doc.1111/e16793/patch_set_installer.htm#insertedID0.


Der Installer erkennt die vorhandene Installation und bietet das Upgrade an, hier mit 'Yes' bestätigen.

3. Repository upgraden

Der nächste Schritt ist das Upgrade des Repositories mit dem Patch Set Assistant, der sich im Oracle_Home der SOA befindet unter z.B. Oracle_SOA1/bin/psa (s. Dokumentation: http://download.oracle.com/docs/cd/E17904_01/doc.1111/e16793/patch_set_assistant.htm#BABEBGEJ). Dieser muss für die Schemata DEV_MDS und DEV_SOAINFRA (Namen ggf. anpassen) analog dem folgenden Beispiel ausgeführt werden.


[oracle@oel5r5 bin]$ ./psa -dbConnectString //localhost:1521/orcl -dbaUserName sys -schemaUserName DEV_SOAINFRA
Oracle Fusion Middleware Patch Set Assistant 11.1.1.5.0

Enter the database administrator password for "sys":
Enter the schema password for schema user "DEV_SOAINFRA":
Log file is located at: /home/oracle/Oracle/Middleware/Oracle_SOA1/upgrade/logs/psa2011-08-03-14-10-17PM.log
Updating the Oracle Fusion Middleware Metadata Schema to release 11.1.1.5.0.
Updating schema for component Oracle SOA.
The command completed successfully

Das Ergebnis kann wie in der Doku beschrieben überprüft werden, oder einfach mit dem folgenden Statement:


SQL>  SELECT version, status, owner FROM schema_version_registry;

VERSION                        STATUS      OWNER
------------------------------ ----------- ------------------------------
11.1.1.4.0                     VALID       DEV_ORABAM
11.1.1.5.0                     VALID       DEV_MDS
11.1.1.2.0                     VALID       DEV_ORASDPM
11.1.1.5.0                     VALID       DEV_SOAINFRA

Zum Schluss noch gemäß Dokumentation die Packages neu compilieren und auf invalid objects prüfen.

SQL> conn / as sysdba
Connected.
SQL> @?/rdbms/admin/utlrp.sql

- - - Haufenweise Zeilen gelöscht - - -

ERRORS DURING RECOMPILATION
---------------------------
0

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

SQL> SELECT owner, object_name FROM all_objects WHERE status='INVALID';

no rows selected


4. Post Patching Tasks

Weiter streng nach Dokumentation müssen alle betreffenden Domains aktualisiert werden wie im folgenden Beispiel:


cd oracle_common/common/bin
./wlst.sh

wls:/offline>upgradeJRF('/home/oracle/Oracle/Middleware/user_projects/domains/bpm_domain')
upgradeJRF: skip, JRF is up-to-date.

Der nächste Schritt ist soa-upgrade.py, der Aufruf führte bei mir allerdings zu folgendem Ergebnis:

cd /home/oracle/Oracle/Middleware/Oracle_SOA1/bin

../common/bin/wlst.sh soa-upgrade.py --username weblogic --password Oracle123 --wlsHost oel5r5 --adminServerListenPort 7001 --targetList AdminServer

... seitenweise gelöscht ...

Current Status of your Deployment:
Deployment command type: deploy
Deployment State       : failed
Deployment Message     : weblogic.deploy.event.DeploymentVetoException: Cannot undeploy library Extension-Name: oracle.soa.worklist.webapp, Specification-Version: 11.1.1, Implementation-Version: 11.1.1 from server AdminServer, because the following deployed applications reference it: HT-01-simple-Form.war, UrlaubsAntragGenehmigen_UI.war, HT-04-Rules-Form.war, HT-02-Simple-Form.war, UrlaubsAntragErstellen_UI.war, HT-03-List-Form.war
No stack trace available.

... noch mehr gelöscht ...

WLSTException: Error occured while performing deploy : Target exception thrown while deploying application: Error occured while performing deploy : Deployment Failed. : Error occured while performing deploy : Deployment Failed.
Use dumpStack() to view the full stacktrace


Die Worklist-Application konnte nicht neu deployed werden, weil noch HumanTask-Anwendungen deployed waren die davon abhängen. Diese liessen sich auch nicht mehr über das Enterprise Manager Fusion Middleware Control undeployen.
In meinem Fall hatte sich während der Script-Ausführung die Datenbank-Verbindung zur Repository-DB irgendwie verknotet, so dass das Undeploy fehlschlug. Die schnelle Lösung war hier ein Neustart mit anschließendem manuellen Undeploy der Anwendungen.

Beim zweiten Versuch lief das Script dann auch fehlerfrei durch:

.Completed the deployment of Application with status completed
Current Status of your Deployment:
Deployment command type: deploy
Deployment State       : completed
Deployment Message     : no message

Fertig!