Oracle Fusion Middleware Blog

Deutsche Informationen rund um Oracle Fusion Middleware

Archive for the ‘Appserver’ Category

JDeveloper 12c, ADF und die Datenbank-Abhängigkeiten

leave a comment »

Bei der Entwicklung und dem Deployment von ADF-Applikationen stößt man immer wieder auf das Thema, dass es zwingende Abhängigkeiten zur Datenbank gibt. Im JDeveloper 12.1.x und 12.2.x wird beim Start des eingebetteten WebLogic Servers zugleich eine Derby Database gestartet, die auf den Port 1527 horcht. Die Derby Database ist ein Teil der WebLogic Server-Installation. Im Blog Post Derby DB lässt sich nicht starten .. wird beschrieben, wie man das Problem lösen kann, das durch fehlende Rechte (Java Policy) beim Start entsteht. Allerdings ist es auch möglich, den Start gänzlich zu unterdrücken, indem man in der Datei setDomainEnv.sh des eingebetteten WebLogic Servers nach dem String „DERBY_FLAG“ sucht und die entsprechende if-Schleife komplett auskommentiert. Man findet diese Datei im Verzeichnis DefaultDomain/bin unter dem Systemverzeichnis des installierten JDevelopers.

Eine weitere Abhängigkeit zu einer Datenbank besteht beim Deployment von ADF-Applikationen in der Version 12c.  Die Abhängigkeit betrifft in diesem Fall die Fusion Middleware Infrastruktur, konkret die Oracle Platform Security Services (OPSS). Sie benötigen für den Betrieb im Cluster eine Datenbank, die beim Anlegen einer JRF (Java Require Files) Extended Domain zwingend erforderlich ist. Die Certification Matrix für das jeweilige Release der Fusion Middleware 12c gibt an, welche Datenbanken und welche Versionen dafür zum Einsatz kommen können.

Duncan Mills hat in seinem Blog Setting up a standalone WebLogic 12c install for ADF Without a Database  beschrieben, wie man diese Anforderung in einer Entwicklungs- oder Test-Umgebung umgehen kann.
Mit dem neuen Release 12.2.1 der Oracle Fusion Middleware ist es nun möglich, eine sogenannte Restricted JRF Domain anzulegen, die keine Abhängigkeit mehr zu einer Datenbank für OPSS aufweist.

<JM>

Advertisements

Written by fmtechteam

12/11/2015 at 13:33

Veröffentlicht in ADF, Appserver, Jürgen Menge

Tagged with ,

Installation der ADF Runtime 12c (12.1.2.0.0)

leave a comment »

Um ADF-Applikationen auf dem WebLogic Server 12c deployen zu können, müssen die ADF Runtime-Bibliotheken auf dem WLS installiert werden. Eine sehr gute Darstellung findet man in diesem Artikel.
Hier eine kurze Übersicht der notwendigen Schritte:

  • Installation der Fusion Middleware Infrastructure
    Dabei wird nur die Software installiert, die die ADF Runtime 12c enthält.
  • Das Repository Creation Utility (RCU) aufrufen und in einer bereits vorhandenen Datenbank das Repository für die Metadata Services (MDS) anlegen. Den dabei verwendeten Präfix bzw. die Namen der Schemata und der Passworte sollte man sich notieren, da sie im nächsten Schritt gebraucht werden.
  • In diesem Schritt wird mit dem Configuration Wizard die Domain erzeugt. Der Wizard wird mit  ../oracle_common/common/bin/config.sh aus dem Oracle Home-Verzeichnis aufgerufen, das im ersten Schritt angelegt wurde.
    Der Wizard erlaubt die Auswahl der zu konfigurierenden Komponenten. Die ADF Runtime ist in den Java Required Files (JRF) enthalten.

    Image

    WLS Configuration Wizard

    Nach den Angaben zur Domain sollte man die Server konfigurieren (Advanced Configuation). Wurde der Oracle Web Service Policy Manager bei der Konfiguration ausgewählt, muss man hier die Gruppen JRF-MAN-SVR und WSMPM-MAN-SVR auswählen.

  • Nach dem Anlegen der Domain kann der Server gestartet und das Deployment einer ADF-Applikation getestet werden.

<JM>

Written by fmtechteam

26/01/2014 at 20:08

Veröffentlicht in ADF, Jürgen Menge, WebLogic

Session Timeout im BI Publisher

leave a comment »

Wer kennt diese Nachricht nicht, arbeitet man als Entwickler mit dem Oracle BI Publisher und wurde einige Zeit durch ein Gespräch oder Telefonat abgelenkt.

BIP Session Timeout

BI Publisher Session Timeout

War es im BI Publisher 10g noch relativ einfach, diese Zeit heraufzusetzen, gestaltet sich das in der aktuellen Version 11g nicht ganz so einfach.
Ein erster Versuch, den Parameter Session Timeout (in seconds) über die WLS Console in der Konfiguration des Deployments zu ändern bringt jedenfalls nicht das gewünschte Ergebnis.

Session Timeout Configuration

Session Timeout in der WLS Console

Dieser Wert beträgt standardmäßig 3600 (Sekunden). Da der Timeout wesentlich früher zuschlägt, zieht dieser Wert offenbar nicht. Tatsächlich findet man in der Datei web.xml folgende Einstellung (Angaben in Minuten)

<session-config>
  <session-timeout>20</session-timeout>
</session-config>

Offensichtlich kommt die erste Warnung vor dem Timeout 5 Minuten bevor der Benutzer abgemeldet wird.
Die Datei web.xml befindet sich in Abhängigkeit von der installierten Version des BI Publisher an unterschiedlichen Stellen. Man muss aber nicht mühsam danach suchen, da wir die Einstellung ohnehin nicht in der Datei ändern werden.
Stattdessen werden wir einen Deployment Plan erzeugen und den gewünschten Wert dort eintragen.
Es gibt verschiedene Möglichkeiten, einen Deployment Plan zu erzeugen (Oracle JDeveloper, Oracle Enterprise Pack for Eclipse, WLS Scripting Language, WLS Console).
Wir verwenden in diesem Fall die Web Console des WLS (http://host:port/console) und rufen zunächst die Applikation des BI Publisher (bipublisher bzw. xmlpublisher) unter dem Punkt Deployments auf.

BIP Deployment

BI Publisher Deployment

Dann wählen wir einen beliebigen Parameter, z.B. den (wirkungslosen) Session Timeout unter Configuration aus, ändern den Wert und speichern die Änderung ab. Der WLS fordert uns nun auf, einen Deployment Plan unter dem Namen Plan.xml anzulegen.

Deployment Plan

Deployment Plan

Wir akzeptieren sowohl den Namen als auch das Verzeichnis und können danach die Console schließen. Das der WebLogic Server im laufenden Betrieb eine Kopie der Plan.xml vorhält, müssen wir zunächst den Server herunterfahren, bevor wir Änderungen in der Datei vornehmen.
Bevor wir manuelle Änderungen in der Datei Plan.xml vornehmen, sollte unbedingt eine Sicherheitskopie der Datei  erzeugt werden. Sind die Änderungen fehlerhaft, startet in vielen Fällen die Anwendung nicht mehr und wir können notfalls auf die Sicherheitskopie zurückgreifen.

In der Datei Plan.xml sind folgende Ergänzungen vorzunehmen:

  1. In der Sektion <variable-definition>
    <variable>
    <name>NewSessionValue</name>
    <value>150</value>
    </variable>
    

     

  2. In der Sektion <module-override>
    <module-descriptor external="false">
    <root-element>web-app</root-element>
    <uri>WEB-INF/web.xml</uri>
    <variable-assignment>
    <name>NewSessionValue</name>
    <xpath>/web-app/session-config/session-timeout</xpath>
    </variable-assignment>
    </module-descriptor>
    

Da wir direkt im Text ändern, muss sehr sorgfältig auf die korrekte Schachtelung der Tags und die Syntax geachtet werden.
Anschließend kann der WLS wieder gestartet werden. Danach sollte man noch einmal das Deployment der Applikation in der WLS Console auf eventuelle Fehlermeldungen überprüfen.
Im Beispiel ist der Wert auf 150 Minuten gesetzt. Hier wäre es sinnvoll, zunächst mit einem kleinen Wert (z.B. 5 Minuten) zu testen. Taucht nach dieser Zeit das Fenster mit dem Warnhinweis auf, war unser Vorgehen offensichtlich erfolgreich und wir können den Wert hochsetzen.
Ein besonderer Dank geht an unseren Kollegen Michael Fuhr, der  diesen Lösungsvorschlag  entwickelt hat.

<JM>

Written by fmtechteam

15/10/2013 at 17:10

Veröffentlicht in BI Publisher, Jürgen Menge, WebLogic

Änderung des Hostnamens einer FMW Domain inklusive WebTier

leave a comment »

Manchmal kommt es vor, dass eine Fusion Middleware Domain (SOA, BPM, WebCenter, …) umziehen muss und sich der Hostname dadurch ändert. Das kann zum Beispiel notwendig werden, wenn man eine virtuelle Umgebung vervielfältigt bzw. verschiebt, oder man im Rahmen einer Cloudlösung eine neue FMW Instanz auf Basis eines Templates anlegt und im zugrundeliegenden Template ein anderer Hostname konfiguriert wurde.

In der Fusion Middleware Dokumentation ist beschrieben, wie eine solche Änderung der Netzwerkkonfiguration vorgenommen wird. Das betrifft im Wesentlichen

  • ein Umzug der Datenbank mit dem FMW Repository
  • ein Umzug des Nodemanagers
  • ein Umzug der Managed Server
  • ein Umzug der WebTier

Darüber hinaus muss man auch die Registratur der WebTier Instanz im Fusion Middleware Control (EM Website) aktualisieren. Diese Registratur wird vom chgiphost Script nicht angefasst. Der EM spricht den OPMN der Instanz über den in der topology.xml eingetragenen Hostnamen an, was dazu führt, dass entweder ein Fehler beim Starten/Stoppen der Instanz über die EM Website geworfen wird oder im schlimmeren Fall, wenn der alte Hostname noch existiert, der OPMN der alten Instanz angesprochen wird. Man muss also die Registratur der WebTier Instanz auch noch korrigieren. Dazu geht man wie folgt vor.

  1. Aktualisierung <DOMAIN_HOME>/opmn/topology.xml mit dem richtigen Hostnamen
  2. Wechsel ins Verzeichnis <MW_HOME>/<WT_HOME>/instances/<INSTANCE>/bin/
  3. Instanz stopppen,
    ./opmnctl stopall
  4. Instanz aus der Domain deregistrieren (Domain mus gestartet sein),
    ./opmnctl unregisterinstance –instanceName <INSTANCE> –adminHost <DOMAINHOST> –adminPort <ADMIN PORT>
  5. Instanz neu registrieren,
    ./opmnctl registerinstance –adminHost <DOMAINHOST> –adminPort <ADMIN PORT>
  6. Instanz starten,
    ./opmnctl startall
  7. Instanz überprüfen,
    ./opmnctl status

In der EM Website müsste nun die aktualisierte WebTier verwaltet werden können.

Schießlich müssen auch noch, je nach Ausstattung der Domain, diverse Korrekturen in den installierten Anwendungen bzw. FMW Produkten  vorgenommen werden. Im Falle des Content Server sollte man das Setup aller outgoing providers überprüfen und ggf. korrigieren, zum Beispiel für den Inbound Refinery Server. Auch die Konfigurationsparameter HTTServerAddress in der config.cfg des Content Servers bzw. Inbound Refinery Servers muss aktualisiert werden (<DOMAIN_HOME>/ucm/cs/config/config.cfg, <DOMAIN_HOME>/ucm/ibr/config/config.cfg). Sollte WebCenter Portal (aka WebCenter Spaces) in der Domain vorhanden sein, so muss man auch die Registratur der WebCenter Services ggf. korrigieren (EM Website). Man sollte schließlich auch nicht vergessen, in die httpd.conf des OHS zu schauen und den Hostnamen dort ggf. aktualisieren.

Diese Thematik kann unter Umständen sehr komplex werden. Je komplexer die Domain aufgesetzt ist (Produkte, Clustering, Verteilung usw.), desto aufwendiger wird auch ein solcher Serverumzug.

<DM>

Written by fmtechteam

10/10/2013 at 17:40

Veröffentlicht in BPM, Detlef Müller, SOA, WebCenter, WebLogic

Ankündigung: Oracle WebLogic Server 12.1.2 Rocks

leave a comment »

Hiermit möchten wir eine  Serie  von praktischen Übungen/Artikeln unter dem Titel „Oracle WebLogic Server 12.1.2 Rocks“ ankündigen.  Wir werden den neuen WebLogic Server 12.1.2 vorstellen.

Zum Nachbauen/Ausprobieren ist das Aufsetzen eines Oracle VM Virtual Box Images notwendig. Dies wird Teil des ersten Artikels Oracle WebLogic Server 12.1.2 Rocks – Teil 1: Aufbau eines Oracle Linux 6 Oracle VM Virtual Box Images sein.

<MB>

Written by fmtechteam

19/09/2013 at 20:44

GlassFish vom Quellcode selber bauen

leave a comment »

Java EE Anwendungsentwickler haben selten den Bedarf, den Application Server, den sie nutzen, selber vom Quelltext zu kompilieren. Das geht sowieso nicht, wenn die Quellen nicht öffentlich zugänglich sind. Falls es sich aber um einen Open-Source Application Server wie GlassFish handelt, der auch viele und gut dokumentierte Erweiterungspunkte anbietet, gerät man früh oder später in die Versuchung, sie für eigene Experimente zu nutzen. Oder man möchte einem bestimmten Problem auf den Grund kommen und den verwendeten Application Server entsprechend anpassen oder instrumentalisieren.

In der Vergangenheit haben mich meistens die langen und komplizierten Build-Instruktionen davon abgeschreckt. Nach der Freigabe von GlassFish 4.0 am 12 Juni habe ich doch einen Versuch unternommen und mit Überraschung festgestellt, dass ich meinen eigenen GlassFish unter 2 Stunden gebacken gekriegt habe, während ich zwischendurch meine RSS-Feeds und Emails auswerten konnte.

Entwicklungsumgebung

Ich arbeite mit Windows 7 64-bit, SP1. Zum Auschecken des GlassFish Source-Code und seine Kompilierung habe ich NetBeans 7.3.1 genutzt, da es eine integrierte Unterstützung für Subversion (der Repository-Typ von GlassFish) und Maven (das GlassFish Build-System) anbietet. Die verwendete JDK-Version war 1.7.0_25.

Auschecken der GlassFish-Sourcen

Der GlassFish Quelcode ist unter https://svn.java.net/svn/glassfish~svn zu erreichen. In NetBeans wird zunächst der Menüpunkt Team –> Subversion –> Checkout selektiert:

image

Im nächsten Schritt kann man durch Browsen von Repository-Folder die Auswahl von Branches, Tags und Revisions der gewünschten GlassFish-Version bestimmen. Man muss sicherstellen, dass das selektierte Verzeichnis die Unterverzeichnisse appserver, copyright und nucleus sowie das pom.xml enthält. Ich habe durch trunk/main und HEAD die aktuellste Entwicklung, die GlassFish 4.0.1 entspricht, ausgewählt:

image

Das Auschecken dauert eine Weile, abhängig von der Bandbreite, die man kriegt. Bei mir hat es etwa 20 min. gedauert.

Der Build-Prozess

Zunächst das GlassFish-Projekt öffnen. NetBeans erkennt es als ein Maven-Projekt anhand der pom.xml Datei:

image

Damit Maven genug Speicher für den GlassFish-Build hat, muss eine Umgebungsvariable am Anfang von <netbeans_home>\java\maven\bin\mvn.bat gesetzt werden:

set MAVEN_OPTS=-Xmx1024M -XX:MaxPermSize=512m

Dann im Context-Menü den Build-Prozess anstoßen:

image

Das dauert etwas länger, bei mir ca. 60 – 80 min., weil alle Maven-Abhängigkeiten heruntergeladen und sämtliche Source-Dateien kompiliert werden müssen. Wenn etwas schief gehen sollte, ist es hilfreich die Maven Debug-Option einzuschalten: Tools –> Options –> Java –> Maven und dann als Global Execution Options –debug setzen. Wenn man hinter einem Proxy ist, muss das Proxy in <user_home>\.m2\settings.xml eingetragen werden, das auch beim Aufklappen von Project Files in NetBeans erscheint. Der Inhlat meiner settings.xml Datei ist folgender(host name geändert!):

<settings>
<proxies>
<proxy>
<id>emea-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>emea-proxy.com</host>
<port>80</port>
</proxy>
</proxies>
</settings>

Testen der erzeugten GlassFish-Distribution

Wenn der Build-Prozess erfolgreich zu Ende gegangen ist, erscheint die fertige GlassFish-Distribution als zip-File unter main\appserver\distributions\glassfish\target. Man kann nun das zip-Archive in einem Verzeichnis auspacken. Dort wird ein Unterverzeichnis glassfish4 angelegt. Der neue GlassFish kann dann gestartet werden: “glassfish4\bin\asadmin start-domain” und über die Konsole (http://localhost:4848) zum Deployment und Test der eigenen Web-Anwendungen getestet werden. Das einzige was fehlt ist das GlassFish Update Tool.

Detailliertere, wenn auch etwas veraltete Informationen zum Builden von GlassFish vom Quellcode gibt es auf https://wikis.oracle.com/display/GlassFish/FullBuildInstructions.

<PD>

Written by fmtechteam

15/07/2013 at 11:06

Veranstaltung: HTML5 aus Oracle Sicht

leave a comment »

Veranstalter: JUG Saxony

Sprecher: Peter Doschkinow (Oracle Deutschland B.V. & Co KG) und Shaun Smith (Oracle Canada)
Ort: HTW Dresden, Friedrich-List-Platz 1, 01069 Dresden, Hörsaal Z 211
Datum: 05. Juli 2013, 18:00 – 21:00 Uhr

HTML5 und Bleeding-Edge Java Enterprise Technologien aus Oracle Sicht
Sprecher: Peter Doschkinow, Oracle Deutschland

Kann Java für HTML5 genutzt werden? In dieser Veranstaltung wird gezeigt wie aktuelle Java Technologien die Erstellung von HTML5 Anwendungen vereinfachen. Zu ihnen gehören auf der Server-Seite JAX-RS, WebSocket, Server Sent Events und JSON API. Auf der Client-Seite ermöglicht JavaFX die Entwicklung von anspruchsvollen hybriden Java-JavaScript HTML5 Clients. Und NetBeans 7.3 verblüfft mit vertieften HTML5 Unterstützung.

From NoSQL to HTML5 (Vortrag in Englisch)
Sprecher: Shaun Smith, Oracle Canada

Data is the fuel enterprises run on and the data access requirements of today’s Java applications have grown to include JSON REST services for HTML5 and mobile clients, NoSQL database persistence, and multi-tenancy. Most developers use an assortment of independent frameworks to cope with each of these disparate requirements often having to copy and transform data from one format into another as it makes its way from database to browser and back again. Or they have to craft custom extensions to frameworks to provide features they were never designed to support. Meanwhile EclipseLink, best known as an open source provider of JPA for database access on the backend and JAXB for web services on the front end, has evolved to simplify the entire path from front to back. EclipseLink has added JSON binding to support HTML5 clients, zero code JAX-RS REST service support, NoSQL database persistence, and has integrated JPA with JAXB to make it easy to move data from database to XML or JSON and back again without data loss.

In this session we’ll dive into EclipseLink’s new services and build an application that goes from browser to database leveraging EclipseLink both in the back end for data persistence and on the front end for JSON over REST to HTML5 and JavaScript clients.

Anmeldung hier.

<MB>

Written by fmtechteam

01/07/2013 at 17:09