Immer wieder stösst man während der tägliche Arbeit auf diverse Problem. So ist diesmal beim kompilieren von Forms-Modulen folgender Fehler aufgetreten
folgende Kommunikation fand gestern Abend statt:
„Ich kaempfe auch gerade mit WLS auf Linux. Die Installation von Oracle ist total kaputt. Ich kann nicht einmal comiliere“
„erzähl mal nutzt du aus dem INST/bin den compiler
prüfe mal die ENV / SET es darf nichts gesetzt sein“
„ich benutze das Script das ich immer verwende. im env ist viel Oracle gesetzt, aber das funktioniert auch sonst immer. ich bekomme immer diese meldung“
„/app/Oracle/Middleware/Oracle_FRHome1/bin/frmcmp_batch: error while loading shared libraries: /app/Oracle/Middleware/Oracle_FRHome1/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied“
Ja ja, der geneigte Leser wird natürlich sofort wissen was hier falsch ist:
ich habe die Rechte schon auf 777 gesetzt (verzweiflung)
damit stossen meine Linux kentnisse an ihre grenze. Der Server wurde von Oracle installiert ich wollte die Anwendung nur kompilieren. Allerdings ist der Typ in einem Meeting und ich warte. Keine Ahnung ob ein xwindow laeuft. Ich bein ueber Putty angemeldet
ist selinux eingeschaltet ?
[20.09.2012 20:28:56] Timmermann: ist firewall aktiv ?
[20.09.2012 20:29:01] Timmermann: bitte beides ausschalten
[20.09.2012 20:29:40] Timmermann: was für ein linux
Red Hat 5.
ok kannst du dich als root anmelden ?
nein
alle dokumente weisen aus SELinux hin das ist eingeschaltet und muss aus
ja ich lasse gerade den Admin holen, damit er das macht.
der Admin schaltet es gerade permanent aus. Sie hatten es bei der Installation ‚vergessen‘ (facepalm)
ach nee 😦 wie lange hast du jetzt geflucht ?
kurz, da mein Spanish so schlecht ist
sei waren viel schneller als ich dachte. Es funktioniert nun. Zeit zum Essen. Guten Abend.
So also was lernen wir daraus. Bitte alles so installieren wie Oracle es haben möchte. SELinux bitte disable und nicht auf enforce oder … setzen.
Immer wieder wird das Thema Tuning von Oracle Forms und Reports Anwendungen diskutiert. Ich möchte mit diesen Beiträgen versuchen einen kleinen Überblick der Möglichkeiten offen zu legen. Es wird nicht immer alles getroffen werden, aber es sollte einem doch schon die eine oder andere Idee liefern.
Im ersten Teil haben wir uns damit auseinandergesetzt was ist überhaupt der Heap-Size bei einer JVM.
In diesem Teil möchte ich klären wie wir den Heap-Size bei einer Forms Umgebung anpassen können.
Ich habe mir eine Umgebung aufgebaut, die nur Standard Parameter verwendet. Dies sind
-Xms256m
-Xmx512m
-XX:PermSize=256m
-XX:MaxPermSize=512m
Mit diesen Parametern habe ich meine Umgebung gestartet und einige Zeit „ruhen“ lassen.
Ich habe mir über Visual GC die Daten anzeigen lassen.

Das bedeutet für mich erst einmal, daß meine Parameter die in der Standard Konfiguration vorhanden sind erst einmal recht großzügig sind, da hier sehr viel Luft nach oben ist.
Also starte ich jetzt erst einmal meine 100 User – Session. Dazu nutze ich die Oracle Application Testing Suite. Ich habe eine Maske mit der 10.000 Datensätze angezeigt werden.

Die Einstellungen sehen vor, das nach drei Durchläufen der Test beendet wird, es werden alle 10 Sekunden 10 User gestartet.

Die Ausgabe Free liefert mir zur Zeit folgende Werte:
Total: 8194456 used 4813848 free 3380608
Swap: 6094840 used 0 free 6094840
Top liefert :

Also ein recht ruhiges System:
um 19:55 starte ich Oracle Load Testing:
Ende 20:05 starten von 90 Usern mal drei Durchläufe
Statistik:
| Name | Value | Min | Max | Avg |
| Active Virtual Users | 0 | 0 | 90 | 71.841 |
| Virtual Users with Errors | 0 | 0 | 0 | 0 |
| Transactions Per Second | 0.016 | 0.014 | 0.767 | 0.406 |
| Pages Per Second | 0.867 | 0 | 2.4 | 1.241 |
| Hits Per Second | 0.067 | 0.067 | 54.8 | 32.769 |
| Kilobytes Per Second | 3.933 | 3.933 | 2378.094 | 1170.259 |
Die Ausgabe Free liefert mir zur Zeit folgende Werte:
Total: 8194456 used 5848132 free 2346324
Swap: 6094840 used 0 free 6094840
Das sind für 90 Session im Durchschnitt: 11MB Pro Maske

Wenn ich jetzt den Heap vergleiche stelle ich fest, das
Der Old sich um 47MB verschoben hat sowie der Perm um ca 1MB bei 90 Usern.
Also steht für mich fest, das ich hier Speicher frei geben kann, denn ich nutze diesen in der WLS_FORMS nicht.
Kann ich jetzt die Parameter so verändern, das ich den Durchsatz erhöhe? Weiter im Teil3
Die Teilnehmer meines Kurse mögen bitte nicht weiter lesen, da dieses auch eines der Schulungsthemen sein wird. Schulung
Immer wieder wird das Thema Tuning von Oracle Forms und Reports Anwendungen diskutiert. Ich möchte mit diesen Beiträgen versuchen einen kleinen Überblick der Möglichkeiten offen zu legen. Es wird nicht immer alles getroffen werden, aber es sollte einem doch schon die eine oder andere Idee liefern.
Warum eigentlich Tuning Weblogic / Oracle Fusion Middleware 11g. Bei jedem Kunden Gespräch oder bei jeder Kundeninstallation kommen gerade im Umfeld von Oracle Forms und Reports immer wieder dieselben Fragen zum Tragen. Das fängt an mit der Frage nach der Hardware, geht dann über welches Betriebssystem bis hin wie groß muss der Heap Size von dem WLS_FORMS Manged Server sein.
Um in dieses Thema einzusteigen bediene ich mich erst einmal des Vortrages, der Thomas Robert von der Oracle am 29. August 2012 in Köln auf der SIG Middleware gehalten hat. Ich möchte an dieser Stelle erst einmal verstehen wie das Layout des Java Memory aussieht.
Was bedeuten eigentlich die Heap-Size Parameter inerhalb einer JVM von Oracle / Sun. Wie ich in der Veranstaltung gelernt habe verwaltet eine JVM unterschiedliche Speicherbereiche. Warum ist das eigentlich so?
Diese beiden Bereiche werden „Generations“ genannt.
In der Java HotSpot Virtual Machine, sind die Gruppen unterteilt
Heap Speicher
Eden Space (young generation): Pool von Objekten, deren Speicher gerade erst allokierd wurde (noch kein GC Lauf)
Survivor Space 0 (young generation): Pool von Objekten, die den GC Lauf des Eden Space überlebt haben
Survivor Space 1(young generation): Pool von Objekten, die den GC Lauf des Eden Space überlebt haben
Tenured (Old) Generation: Pool von Objekten, die eine bestimmte Anzahl GC Läufe des Survivor Spaces überlebt haben
Permanent Generation (PermGen) Non Heap
Speicherort für die Klassen
Nicht im Heap
Kein JVM Standard

Quelle: Thomas Robert Tuning Oracle Fusion Middleware 11g 29.August 2012 SIG Köln
Die wichtigsten Befehle um den Heap zu beeinflussen sind:
-XX:NewRatio=[Verhältnis]
Verhältnis zwischen young und old Generation
-XX:NewRatio=3 erzeugt ein Verhältnis 1:3
-XX:SurviverRatio=[Verhältnis]
Verhältnis zwischen eden und survivor Generation
-XX:SurviverRatio=3 erzeugt ein Verhältnis 1:3
-XX:GCTimeRatio=[n]
Zeit, die der Garbage Collector in der gesamten application time
verwenden darf (berechnung 1/(1+n))
-XX:GCTimeRatio=19 führt also zu 1/20 also 5% der Gesamtzeit. Defaut ist 99, also 1%.
In dem nächsten Beitrag werde ich versuchen zu klären ob ich das ganze eigentlich für Forms/Reports gebrauchen kann.
Die Teilnehmer meines Kurse mögen bitte nicht weiter lesen, da dieses auch eines der Schulungsthemen sein wird. Schulung
Am Mittwoch, dem 29. August 2012 war es wieder einmal so weit, die DOAG SIG Middleware hat sich versammelt. Das Thema dieses Mal war Administration und Monitoring:
Wir hatten sechs Spannende Vorträge die sich mit diesem Thema beschäftigten. Auf sehr starkes Interesse ist der Vortrag „Administration & Deployment mit WLST“ von Andreas Koop von der enpit Consulting OHG gestoßen, der die Möglichkeiten von Weblogic WLST vorstellte. Ich persönlich fand diesen Vortrag ebenfalls sehr gut, da er einem wieder einmal die Möglichkeiten einer Skriptsprache, die im Weblogic vorhanden ist näher brachte. Danke Herr Koop für diesen fachlich sehr fundierten Vortrag.
Der Vortrag zum Thema „Weblogic Server 11g Clustering und Hochverfügbarkeit in Theorie und Praxis“ von Thorsten Michels MT AG hat einem noch einmal die Möglichkeiten der Clustertechnologie vor Augen geführt.
Volker Linz von der Oracle Deutschland B.V. & Co.KG zeigte uns dann einen Überblick über Cloud Control 12c bevor Jens Zwer Oracle Deutschland B.V. & Co.KG uns einen sehr sehr guten Einblick in das Thema Real User Experience Insight verschaffte.
Zu dem Thema Oracle Fusion Middleware gehört ja auch der gesamte Bereich der Hardware. Hier hat uns Marcel Amende von Oracle Deutschland B.V. & Co.KG einen sehr tiefen Einblick in die Exalogic Insight verschafft.
Mit diesen bisherigen Themen hatten wir uns nun einen sehr guten Einblick über Cluster, Skript, Performance Monitoring sowie der Hardware verschafft. Das was nun eigentlich noch fehlt ist die Möglichkeit Tuning Maßnahmen zu tätigen.
Hier hatte wir die Möglichkeit mit Thomas Robert von der Oracle Deutschland B.V. & Co.KG sowie Jan-Peter Timmermann von der Pitts GmbH Stuttgart einem gemeinsamen Vortrag „Tuning des Weblogic /Oracle Fusion Middleware 11g “ zu lauschen. Ok. Der Vortrag ging nicht ganz so tief in das Tuning wie einige es sich erhofft hatten.
Ich persönlich fand aber den ersten Teil über den Garbage Collector hoch spannend und bin dankbar dafür, dass Thomas Robert uns dieses bereitgestellt hat.
Ich selber habe mich auf die Speicherparameter für WLS_FORMS konzentriert und habe selber sehr viele Überraschungen erlebt. Dazu mehr in einem weiterem Blog auf meiner Seite.
Was mich allerdings überrascht hat war die Diskussion, das viele Teilnehmer gar nicht darüber informiert sind, das es für Umsteiger von Forms 6i / OAS10g auf die aktuelle Version 11gR(1)/2 Kurse gibt die es den Administratoren erleichtern sich in der neuen Struktur zurecht zu finden.
Es gibt in Deutschland soweit mir bekannt ist zurzeit drei Anbieter, die hier ein Training anbieten. OK einer davon ist die Firma PITSS mit dem Kurs WeblogicServer Forms & Reports für Administratoren .
Oracle Forms Upgrade – Reduction of estimated Effort
Posted on July 18, 2012 by Patrick
Last week I started a Upgrade Project for around 250 Forms and Libraries. The original Estimate was 23 Days with our Tool PITSS.CON.
Before I started the Upgrade, I did a unused Code analyze and that droped around 10% Lines of Code. Even more amazing was, that the Upgrade analyze now reduced the Effort by 25%. The cleaning of the Code just took me one day but I saved over 5 days.
I think it is worth for any Modernisation Project to think about Re-Engineering.
For me this a mind blowing Project.
Leider ist es auch mir wieder einmal passiert, das ich versucht habe mit einer Formsmaske zu arbeiten die Word/Excel ansprechen möchte. Also das alte Vorgehen: einbinden von webutil und Jacob. Leider habe ich das aus der Gewohnheit heraus mit den mir vorliegenden Komponenten gemacht. Und natürlich läuft es nicht.
Oracle hat hierzu am 12. Mai 2012 ein Dokument erstellt welches unter der ID 1093985.1 im Metalink zu finden ist. Hierdraus geht eindeutig hervor, das sich die Webutil Installation mit Jacob in der Version 11g deutlich unterscheidet.
Es ist mittlerweile Notwendig geworden die richtige Jacob Version mit der richtigen Oracle Fusion Middleware Version zusammen zu bringen.
So ist für die Oracle Fusion Middleware 11gR1 (11.1.1.x) nur die Jacob 1.10.1 zulässig. Für die Oracle Fusion Middleware der Version 11gR2 (11.1.2.x) muss es die Version 1.14.3 sein. Unter gar keinen Umständen die aktuelle Version 1.16.x nutzen.
Ich habe die zur Zeit gültigen Download Url’s mal hier mit hinterlegt:
| Forms Version | Jacob Version | Download | Download New |
|---|---|---|---|
| 10gR1 und 10gR2 | Jacob 1.10.1 | hier | |
| 11gR2 | Jacob 1.14.3 | hier | |
| 12.2.1.0 | Jacob 1.18-M2 | hier | |
| 12.2.1.2 | Jacob 1.18-M2 | hier | |
| 12.2.1.3 und 12.2.1.4 | Jacob 1.18-M2 | hier | New |
In der 1.14.3 Version gibt es dann auch für die *.dll Dateien zwei unterschiedliche Verzeichnisse. Eines für die 32Bit und eines für die 64bit Welt.
Die während der Installation mit gelieferten webutil.pll / webutil.olb liegen default mäßig im ORACLE_HOME/forms Verzeichnis. Hier ist beim Anwendungs Deployment darauf zu achten, das in der Anwendung diese genutzt werden. Also wer den ORACLE_HOME Pfad aus seiner Konfiguration austrägt sollte dafür sorgen, dass die Webutil Komponenten in der aktuellen Version genommen werden.
Forms 12c benötigt: Forms 12c Application Supports JACOB Version 1.18-M2
Oracle Forms 12c, when configured with Webutil at runtime, supports JACOB version 1.18-M2 in order to perform the client side OLE integration. Note that this version of JACOB is different from the versions supported in the previous releases of Oracle Forms.
JACOB is a JAVA-COM bridge that allows you to call COM automation components from Java. It uses JNI to make native calls to the COM libraries. JACOB runs on x86 and x64 environments supporting 32 bit and 64 bit JVMs.
In der httpd.conf werden folgenden Module eingebunden (zusätzlich zu den normalen)
LoadModule proxy_module
LoadModule proxy_balancer_module
LoadModule proxy_http_module
LoadModule status_module
Anschließend erstelle ich mir einen Virtuellen Host auf dem meine Forms Anwendung laufen soll
<VirtualHost 192.168.140.133:80>
ServerName prodforms
ServerAlias prodforms
UseCanonicalName On
<IfModule proxy_module>
<Location / >
ProxyPass balancer://service_prodforms/ stickysession=JCLUSTERID
ProxyPassReverse balancer://service_prodforms/
</Location>
</IfModule>
</VirtualHost>
Und dann noch die Proxy Konfiguration
##########################################################
### service_prodforms = webforms1 192.168.140.101 ###
### webforms2 192.168.140.101 ###
##########################################################
<Proxy balancer://service_prodforms/>
BalancerMember http://webforms1:8888/ loadfactor=1 timeout=3 route=webforms1
BalancerMember http://webforms2:8888/ loadfactor=1 timeout=3 route=webforms2
ProxySet lbmethod=byrequests stickysession=JCLUSTERID
</Proxy>
<IfModule headers_module>
Header add Set-Cookie „JCLUSTERID=sess.%{BALANCER_WORKER_ROUTE}e;path=/“ env=BALANCER_ROUTE_CHANGED
</IfModule>
Der Cookie sorgt dafür, dass die Session auf einen Server gebunden wird.
Über die Direktive
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from all
</Location>
Kann ich dann einen einen kleinen Manager local nutzen um die eine Seite ein oder auszuschalten
Seit dem Jahre 2010 gibt es bei Oracle die OMA (Oracle Modernization Alliance).
Zitat : „OMA defines automated migration as the ability to transform legacy technologies into more modern ones with an automation rate of approximately 80% or higher.
Automated migrations are particularly useful when there is no desire to make major architectural changes to an application itself. Thus transforming code to make use of new databases or transforming 4th generation languages that are less „legacy reliant“ to start with are good potential candidates for automated migration.
Additionally, automated migration is a useful modernization technique for cleaning up legacy environments by performing code restructuring and other modernizations where the source and target language are the same.“
Pitss GmbH in Stuttgart ist einer der 14 Mitglieder dieser Alliance mit dem Schwerpunkt der Forms/Reports Modernisierung. Mit unseren PITSS Forms to ADF Migration Days: 22.-23. Mai 2012, Stuttgart
wollen wir zeigen wie das geht und das man Erfolge erzielen kann.
Über das Thema Migrationen wird sehr viel philosophiert, wir machen das seit über 10 Jahren. Für uns ist immer wieder wichtig zu betonen, dass es sich hierbei um ein Projekt handelt und eine Umstellung nicht mal so nebenbei erfolgen kann. Leider muss ich persönlich immer wieder feststellen, dass die Oracle DBA’s damit beauftragt werden die Applikation Server zu betreiben. Das war im Oracle 10g Umfeld durchaus noch denkbar (obwohl ich das nicht befürworte). Aber den DBA’s jetzt die OFM 11gR2 Welt anzuvertrauen. Ich persönlich habe mittlerweile über 20 Umstellungen von 10g aus 11g hinter mir. Habe mich mit knapp über 80 Teilnehmern meiner Kurse über die Unterschiede von 10 zu 11 auseinander gesetzt. Alle Teilnehmer waren (ok einer nicht) einhellig der Meinung, dass sie nach dem Kurs wirklich in der Lage sind die Umgebung zu installieren, konfigurieren und auch zu administrieren. Aus diesem Grunde: an alle die in naher Zukunft mit OFM 11gR2 Forms/Reports zu tun haben. Versuchen Sie einen Kurs zu besuchen.
Erfahren Sie in diesem 2-tägigen Hands-on Workshop von PITSS alles über die intelligente Art der Modernisierung. Aufgrund des großen Erfolges im Vorjahr legt PITSS diesen Event auch in diesem Jahr auf. Sehen Sie Schritt für Schritt wie Sie zielorientiert und messbar zur modernen, vielfältigen ADF Anwendung gelangen!
Informationen & Anmeldung:
Für alle die sich damit beschäftigen ihre Forms Anwendung zu modernisieren ist dies ein seht guter Einstieg
Patrick's Oracle Modernization Experience
The new PITSS.CON Feature: Source Code Analytics
Get a quick View inside of you Oracle Forms Application. Make the invisible visible. PITSS.CON Source Code Analytics analysis all Level of a complex Oracle Forms and Reports Application on Source Code Level. The module delivers information about Quality and Complexity. You get a lot of Key Data like most used objects, Lines of Code, Comment Ratio and a lot of others. Problems will be visible, Progress will be measurable.
PITSS.CON Source Code Analytics – Profile
Ursprünglichen Post anzeigen 207 weitere Wörter
Die Trainingsseiten bei Pitss sind neu gemacht und sehen sehr gut aus. Ein Blick auf das vielfältige Angebot lohnt sich