2010-03-23

Caching-Problem der BISE1

 

Herausforderung

Mit Hilfe einer Datenbanktabelle sollen dynamisch vom im Dashboard eigeloggtem Benutzer Daten auf die Benutzerberechtigungen, die Datensätze sehen zu dürfen, geprüft werden.

Die Idee war mit der evaluate-Funktion eine Funktion in der Datenbank aufzurufen, die als Parameter ValueOf(NQ_SESSSION_USER) erhält und so seine Berechtigungen für jeden einzelnen Datensatz prüfen kann.

image

image

Dieser Mechanismus funktioniert auch einwandfrei, hat allerdings den Nachteil das ValueOf(NQ_SESSSION_USER) dynamisch ist und so der Bi Server keine Caching Einträge für die Abfragen schreibt.

In der BISE Dokumentation findet sich auch ein Hinweis auf diese Einschränkung:

Non-cacheable SQL element:

If a SQL request contains Current_Timestamp, Current_Time, Rand, Populate, or a parameter marker then it is not added to the cache.

 

Lösung

Da wir sehr große Abfragen auf die Datenbank machen und auf das Caching nicht verzichten können, haben wir uns von dieser Idee verabschiedet und pflegen die Berechtigungen nun statisch für jeden Benutzer / jede Gruppe im BI Server.

image

Ausblick

Im Laufe des Projekts wollen wir mit einem Script versuchen die Berechtigungen jedes Benutzer aus der Datenbank zu lesen und diese per Script auch in das Security-Modell der rpd-Datei zuschreiben.

Oracle ADF Community on Xing

1

Der eine oder andere hat es schon vor ein paar Tagen gemerkt das sich auf der Xing – Plattform eine Gruppe mit dem Thema Oracle ADF gegründet hat. Heute sind die offiziellen Einladungen an Interessenten per Mail verschickt worden.

Die Oracle ADF Community setzt sich das Ziel, Informationen und Erfahrungen zu Oracle ADF auszutauschen und damit die Entwicklungs-Plattform Oracle Application Development Framework (ADF) unter Entwicklern, Anwendern und IT-Dienstleistern bekannter zu machen.

Wir wollen diese Gruppe speziell dazu nutzen, um:

• uns gegenseitig auf interessante Veranstaltungen (Vorträge, Web-Seminare etc.) hinzuweisen
• im Forum Fragen zu diskutieren und Informationen zu verbreiten
• Kontakte zwischen interessierten Mitgliedern zu knüpfen
• über Neuigkeiten im Umfeld von Oracle ADF zu informieren

Die Community steht allen Personen offen, die am Austausch zum Thema Oracle ADF interessiert sind.

Also jeder der Interesse hat hier ist der Link:

http://www.xing.com/group-51945.6145a6

2010-03-22

Neue ADF Mobile Browser Demos

Oracle hat neue ADF Mobile Demo Applikationen ins Netz gestellt. Anschauen kann man sich die Demos über folgenden Link:

 

http://stshld.oracle.com:8888/demo/faces/main.jspx

 

Es ist aber durchaus sinnvoll dies mit einem mobilen Endgerät auszuprobieren,  wie zum Beispiel ein iPhone. :)

 

 image_thumb2

2010-03-12

ADF BC: Cleaning Up Temporary Storage Tables (JBO-28030)

1Im Oracle® Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework 11g Release 1 (11.1.1) im Abschnitt 39.5 wird beschrieben wie ADF BC abgelegte Application Module States aus den PassivationStore innerhalb der Datenbank wieder entfernt.
Die Konfiguration bzgl. der verwendeten PS_TXN und PS_TXN_SEQ – Datenbank Objekte ist von sehr großer Bedeutung für einen fehlerfreien Betrieb einer ADF Fusion Applikation mit ADF BC als Persitent Layer. Es gibt zahlreiche Einträge zu diesem Thema im Netz:


[1] http://www.oracle.com/technology/products/jdev/htdocs/bc4j/bc4j_temp_tables.html
[2] http://one-size-doesnt-fit-all.blogspot.com/2009/08/jdevadf-importance-of-getting-pstxn-and.html
[3] http://www.pascalalma.net/2007/01/02/jbo-28006-exceptions-when-running-adf-bc-application/

Folgende Hinweise möchte ich an dieser Stelle ergänzen:

a.) Verweis auf die BC4J SQL Scripte innerhalb der Fusion Development Guide

Die SQL Scripte befinden sich im Verzeichnis:
C:\oracle\product\11.1.1.2\middleware\oracle_common\modules\oracle.adf.model_11.1.1\bin
MW_HOME = C:\oracle\product\11.1.1.2\middleware

Die Dokumentation ist an dieser Stelle falsch und wird sicherlich in Zukunft korrigiert.

b.) Berechtigungen an den Schema Objekten PS_TXN und PS_TXN_SEQ
In manchen Umgebungen ist es notwendig über einen Proxy Schema, das keinerlei DDL Berechtigung besitzt, auf das Application Schema zuzugreifen. Es ist NICHT ausreichend dem Proxy Schema die folgenden Berechtigungen zu geben:


GRANT SELECT ON APP_SCHEMA.PS_TXN_SEQ TO PROXY_SCHEMA;
GRANT SELECT,INSERT,UPDATE,DELETE ON APP_SCHEMA.PS_TXN TO PROXY_SCHEMA;
[DON’T WORK]

Inklusive der benötigten Synonyme (Vgl. Link [3])

Nur mit dieser Berechtigungen kann es passieren, dass ein JBO-28030 auftritt.

 2
Ursache dafür ist. dass innerhalb der Implementierung OraclePersistManager “alter sequence” Statements zum Modifikation des nächsten Wertes durchgeführt werden.
Dies Kommando kann nicht ausgeführt werden und der OraclePeristentManager erhält eine ColId, die ggfs. bereits verwendet wurde und in der Tabelle PS_TXN existiert.
Im Development Guide ist dokumentiert, dass die Berechtigung “create sequence” benötigt wird. (RTFM and belief)


Lösung / Workaround

a.) Proxy Schema erhält die notwendigen Berechtigungen (Darf aber vom Grundsatz keine DDL ausführen.)

b.) State Managment Schema einführen

Vgl. Section 40.5, "What Model State Is Saved and When It Is Cleaned Up"

2010-03-10

SE2010: Vortrag – How we do it – Business Application Entwicklung

Auf der SE2010 in Paderborn habe ich einen Vortrag über unsere Vorstellung gehalten, welche Methodik und Plattform wir verwenden, um schnell und zielsicher Business Applikationen zu entwickeln. 1

Der eine oder andere kann sich schon denken welche Plattform / Framework ich hier angesprochen habe.

Leider war bei der Tagung auf dem Industrietag die Vortragsdauer sehr knapp bemessen. Also nicht zu viel erwarten…

Den Vortrag gibt es hier.

 

Das Foto ist von Fabian Christ.

2010-03-07

Bertold Maier’s Weblog: ADF Task Flow – Web Component Development

Im Weblog von Bertold Maier (Oracle Deutschland) gibt es einen Eintrag der noch einmal deutlich darauf hinweist, dass es überaus sinnvoll ist sich mit ADF Task Flow auseinander zu setzen. Ich teile diese Meinung..1

Erkennt man die Möglichkeit der Wiederverwendung von ADF Task Flows im folgendem Sinne:

Anwendungsfälle werden als ADF Library publiziert.

Die eigentlichen Anwendung  wird aus solchen Web Components “assembled”.

Geht man diesen Weg so wird man schnell seine Vorgehensweise und Sichtweise innerhalb der Entwicklung im Bezug  zu Oracle ADF ändern. Bringt man jetzt noch Oracle MDS hinzu so gelingt es hier Varianten von Anwendungsfällen zu erzeugen, die eine weitere Möglichkeit innerhalb der Realisierung bzw. Implementierung eines Anwendungsfall verwendet werden können.

Hier gibt’s mehr:
ADF Task Flow – Web Component Development, Bertold Maier’s Weblog
Metadata Services (MDS) in Fusion Middleware 11g, Oracle White Paper
Oracle ADF News Session – Mein erstes Projekt

2010-03-02

Generierung Ant Buildskript zu einem JDeveloper-Projekt

Aufgetreten in JDeveloper Version: 10.1.3.4

Problembeschreibung

Bei dem Versuch aus dem JDeveloper heraus zu einem Projekt ein Ant-Skript zu generieren, tritt folgende Fehlermeldung auf:

1

java.lang.NullPointerException
    at oracle.ide.net.URLFactory.newURL(URLFactory.java:85)
    at oracle.ide.net.URLFactory.newUniqueURL(URLFactory.java:164)
    at oracle.jdeveloper.builder.SourceModel.generateDefaultFileName(SourceModel.java:135)
    at oracle.jdevimpl.ant.wizard.GenerateBuildfileModel.initializeFromContext(GenerateBuildfileModel.java:83)
    …

Ursache

Das Projektverzeichnis ist nicht unter den Projektressourcen (Project Properties>Project Content>Resources) gelistet.

Lösung

Projekteigenschaften öffnen und unter Project Content>Resources das Projektverzeichnis hinzufügen.

2

Nach dieser kleinen Änderung funktioniert der Wizard zum Generieren des Ant-Skriptes wie gewünscht.