April 2025
Aufgabe: Die letzte der finalen Versionen des Oracle Report Server unter Windows 2025 in Betrieb nehmen und betreiben.
Für die Vorgänger Version siehe hier ⇒ Oracle Reports Server 12.2.1.3.0 "The last and final_release" mit Oracle WebLogic auf einem Windows 2016 Server installieren und betreiben.
Siehe auch https://www.oracle.com/middleware/technologies/fusion-certification.html
Zertifizierung überprüfen (aktuell ist aber 2022 unterstützt!):
Da aber aktuell schon Windows 2025 Server zur Verfügung steht und das Ziel ist diese Finale Final-Version wieder die nächsten 5 Jahre final zu betreiben, wird getestet, ob sich die Installation auch unter 2025 durchführen lässt.
Ergebnis:
Genereller Ablauf:
Zeitlicher Ablauf:
Im Prinzip kann eine Installation in ca. 8h bis 10h durchgeführt werden, eine der aufwendigen Parts der Installation ist das Einrichten des AutoStarts unter Windows als Dienst, hier treten immer noch recht viele Fehler auf.
Software bereitstellen:
https://www.oracle.com/middleware/technologies/forms/downloads.html
Download über Oracle edelivery ⇒ http://edelivery.oracle.com/
Oracle Fusion Middleware 14c (14.1.2.0.0) Forms and Reports for Microsoft Windows x64 (64-bit) for (Microsoft Windows x64 (64-bit)), 1.2 GB
V1045122-01.zip Oracle Fusion Middleware 14c (14.1.2.0.0) Forms and Reports for Microsoft Windows x64 (64-bit) for (Microsoft Windows x64 (64-bit)), 1.2 GB SHA-1 B27C55A56B6481BB648E9A82A0E3CB932FC1FCEF SHA-256 26478C4DC2EDB4A897226F07D7AEC6F675754853F00495D4BAF2AAC1D9B8D2CE
über Die Seite https://www.oracle.com/middleware/technologies/forms/downloads.html unter „Fusion Middleware Infrastructure 14.1.2.0.0“ über den Link Download über Oracle edelivery ⇒ http://edelivery.oracle.com/ starten.
Oracle WebLogic Server 14.1.2.0.0 - Standard Oracle License Agreement - Microsoft Windows x64 (64-bit) 654.8 MB
V1045135-01.zip Oracle Fusion Middleware 14c (14.1.2.0.0) Infrastructure for Linux x86-64 and Microsoft Windows x64 (64-bit) for (Microsoft Windows x64 (64-bit)), 2.1 GB SHA-1 F2FD0F9CBDEFEAB5857736609FCF65C32F0E4604 SHA-256 1AAE35167BDED101E7194AA3D75C26B292010035A36C289A3F90B663D84E68BD
Download Visual Studio Runtime 32/64 bit ⇒ Microsoft Visual C++ Redistributable latest supported downloads unter https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
Die erste Test Installation ob es funktionieren kann erfolgt auf einer Eval Data Center Edition 2025 Maschine.
MS-Windows 2025 (https://www.microsoft.com/de-de/evalcenter/download-windows-server-2025) steht im vhdx Format als virtuelle Maschine zur Verfügung.
Um diese Disk in VMWare Workstation zu verwenden muss diese Disk erst in das alte vhd Format umgewandelt werden.
Dazu kann das Tool qemu-img ( mehr dazu unter https://www.qemu.org/ und Download für Windows unter https://cloudbase.it/qemu-img-windows/) verwendet werden. Ein direkte Wandeln in das VMDK Format hat nicht auf anhieb funktioniert, daher nicht weiter so getestet da VMWare auch das VHD Format lesen kann.
Umwandeln mit den Format „VPC“:
PS C:\tools\qemu-img-win-x64-2_3_0> ./qemu-img.exe convert D:\vmware\WINSERVER2025\windows_server_2025.vhdx -O vpc D:\vmware\WINSERVER2025\windows_server_2025.vhd
Virtuelle Maschine mit der Platte als erste Platte anlegen und als Bios UEFI verwenden.
Für die Report Installation wird ein E Platte mit 20GB hinzugefügt.
Empfohlen ist die Verwendung der englischen Variante von Windows 2025, oft lässt sich im Support Fall mit deutschen Fehlermeldungen nicht viel anfangen!
Die Installation muss unter dem OS-User (in meinen Fall ORASYSTEM ) stattfinden, unter dem auch der Reports Service betrieben werden soll, ein entsprechenden User wird zuvor mit lokalen Admin Rechten anlegt.
Die IP Adresse und vor allen der Name des Servers sollte sich nach der Reports Installation NIE wieder ändern! Dies vorab verbindlich mit der IT vereinbaren und viel Ärger und Mühen einzusparen!
Es ist zu empfehlen einen PostScript Drucker wie eine HP 5000 als „Dummy“ auf dem Server einzurichten um Problem beim Erstellen von Dokumenten mit Oracle Reports aus dem Weg zu gehen, allerdings kann diese Empfehlung aus den alten Release inzwischen veraltet sein, schaden kann es jedenfalls nicht .-).
Wie https://support.hp.com/us-en/drivers/hp-universal-print-driver-series-for-windows/model/503550 Treiber herunterladen (wie aus Datei hpcu315v den Universal HP PS Driver ) und bei den manuellen Drucker Dialog über LPT1 aus Default Drucker einrichten (Und auf a4 in den Properties einstellen!)
Nochmal überprüfen ob der Maschinen Namen und die IP Adresse nun definitiv sich nie wieder ändern bzw. auf die letztendlichen Settings setzen!
Herunterfahren und Snapshot setzen.
Alle Weiteren Arbeiten werden nun unter dem User ORASYSTEM durchgeführt!
Für die Metadaten der Fusion Middleware Umgebung wird eine Datenbank benötigt, am besten eine einfache 19c Umgebung.
Falls der Server genug Reserven besitzt nun eine normale 19c Datenbank ohne große Besonderheiten installieren, ähnlich wie ⇒ Umstellen auf Oracle 19c - Upgrade einer Oracle Single Instance Datenbank 18c auf Oracle 19c unter MS Server 2019 oder einer Podman Installation wie Oracle Datenbank 23ai Free Edition über ein Container Image unter Linux 9 als Testumgebung für AI Vector Search verwenden
Für das Debugging und auch die spätere Entwicklung auf der Maschine den Instant Client installieren.
Download über https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html , alles in ein Verzeichnis wie C:\oracle\product\23\instantclient_23_7 entpacken.
Im ersten Schritt wird NUR die Weblogic Software installiert, erst mit der Reports/Forms Installation erfolgt das Aufsetzen einer WebLogic Domain!
Um die Pfadangaben zu vereinfachen, werden die folgenden Pfade verwandt:
Ablauf:
Get-FileHash -Algorithm SHA1 -Path .\V1045135-01.zip Algorithm Hash Path --------- ---- ---- SHA1 F2FD0F9CBDEFEAB5857736609FCF65C32F0E4604 C:\SW-Archive\V1045135-01.zip
Vergleichen ob es auch stimmt!
Expand-Archive -Path .\V1045135-01.zip -DestinationPath .
mkdir E:\oracle\fmw
cd C:\SW-Archive E:\Java\jdk\bin\java -jar .\fmw_14.1.2.0.0_infrastructure.jar
Alle 8 Screen durcharbeiten, wichtigste Einstellung: Wahl der Oracle Homes „E:\oracle\fwm“ und Fusion Middleware Infrastucture!
Die Konfiguration einer Domain im WebLogic wird später nach der Reports Installation durchgeführt!
Mehr zur Installation siehe auch unter ⇒ https://docs.oracle.com/en/middleware/fusion-middleware/14.1.2/infin/installing-and-configuring-oracle-fusion-middleware-infrastructure.pdf
Der Installationspfad darf unter Windows nicht zu lang werden, da sonst die Reports Patch Variable zu lang wird!
Der Reports Server wird gleich bei der Installation in der Option „Deployment“ aufgesetzt und konfiguriert ( Option Install and Configure ) .
Dowload zip prüfen, Software entpacken und setup_fmw_14.1.2.0.0_fr_win64.exe aufrufen (in der Powershell z.B.):
# Datei prüfen cd C:\SW-Install Get-FileHash -Algorithm SHA1 -Path .\V1045122-01.zip Algorithm Hash Path --------- ---- ---- SHA1 B27C55A56B6481BB648E9A82A0E3CB932FC1FCEF C:\SW-Archive\V1045122-01.zip # prüfen ob es auch passt! # Datei extrahieren Expand-Archive -Path .\V1045122-01.zip -DestinationPath . #Setup aufrufen .\setup_fmw_14.1.2.0.0_fr_win64.exe
Alle 9 Screens durcharbeiten
Zu beachten:
Nach der Installation der reinen Software müssen die nächsten Schritte ausgeführt werden:
Als Repostitory Datenbank kann eine Oracle 19c dienen, allerdings kann meiner Erfahrung nach pro DB nur ein Repository pro FWM Umgebung angelegt werden. Evtl. ist das aber inzwischen besser geworden.
E: cd E:\oracle\fmw\oracle_common\bin rcu.bat
Ablauf:
Screenshots der Installation - Siehe ⇒ Screenshots der Installation Oracle Infrastructure Repository 14c Fusion Middleware
Aufruf von config.cmd in einer administrativen DOS Schell:
e: cd E:\oracle\fmw\oracle_common\common\bin config.cmd
Unsere Domain heißt in unseren Beispiel „SPAReport“.
Screens:
Siehe auch den Screen Flow für die Version 14 ⇒ Oracle Report 14c Domain Wizard to setup a Weblogic Domain for Reports
Nun wurde unter E:\oracle\fmw\user_projects\domains\SPAReport die Domain angelegt, über http://14cwin2025rep01:9002/console kann NACH dem Start der Domain auf die Admin Oberfläche zugegriffen werden.
Wichtig! Nur mit einer gestarteten Domain kann das Setup zu Ende geführt werden, die eigentliche Report Server Instance wird nicht von dem Domain Setup angelegt.
Ins Verzeichnis (Domain Home ) E:\oracle\fmw\user_projects\domains\SPAReport\bin die WebLogic Umgebung starten:
cd E:\oracle\fmw\user_projects\domains\SPAReport\bin rem start Admin Server start startWebLogic.cmd rem warten bis der Server auch gestartet ist! rem User und Password eingeben! rem Letzte Zeile im Log "<Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.>"
start NodeManager
rem start NodeManager start startNodeManager.cmd
start Mananged Server - Start Fehler kann zu Beginn ignoriert werden
rem start Mananged Server rem User und Password eingeben! start startManagedWebLogic.cmd WLS_REPORTS t3s://14cwin2025rep01:7002
Jeweils beim Start den den Usernamen und das Passwort des Weblogic Administrators angeben (Weblogic/admin1234 in meinem Beispiel).
Später wird dann das Passwort noch hinterlegt, um diese Eingabe zu vermeiden.
In älteren Umgebungen kann über die Datei $ORACLE_HOME\install\portlist.ini genau geprüft werden, welche Ports bei der Installation vergeben wurde, in dieser Version ist die Datei leider leer, ärgerlich, auch in 14c ist diese Datei nicht vorhanden!
Nach der Installation ist der SSL Port : 7002 und der Admin Oberflächen Port ist der 9002, auf das Protokoll t3s für den Zugriff auf 7002 achten!
Produkt oder Komponente | URL Schema | Beispiel |
---|---|---|
Administration Server Console | http://host:port/console | http://14cwin2025rep01:9002/console |
Enterprise Manager Console | http://host:port/em | http://14cwin2025rep01:9002/em |
Oracle Forms | http://host:port/forms/frmservlet | nicht installiert |
Oracle Reports | http://host:port/reports/rwservlet | http://14cwin2025rep01:7002/reports/rwservlet |
Über die EM Console http://14cwin2025rep01:9002/em kann der Status der gesamten „Farm“ ReportSPA überprüft werden (Anmelden mit WebLogic und dem bei der Installation verwendeten Passwort):
Leider legt der Domain Wizard dann zum Schluss doch nicht alle benötigten Komponenten auch in der Version 14c für Oracle Reports nicht an.
siehe auch ⇒ Oracle Reports 12c: First Step to Complete After a New Forms/Reports 12c Install and Configuration Environment (Doc ID 2072671.1)
Zuvor aber WLS_REPORTS herunterfahren über die EM console stoppen!
Nacharbeiten:
cd E:\oracle\fmw\oracle_common\common\bin rem Umgebung setzten setwlstenv.cmd rem SSL Parameter setzten set WLST_PROPERTIES= -DORACLE_HOME=E:\oracle\fmw\oracle_common -Dweblogic.security.TrustKeyStore=DemoTrust -Dweblogic.security.SSL.ignoreHostnameVerification=true rem wlst starten und auf das SSL t3s Protokoll und den richtigen Port achten! wlst.cmd connect('weblogic','admin1234','t3s://localhost:9002') # Instance anlegen mit: createReportsToolsInstance(instanceName='rep_wls_reports_gpi01',machine='AdminServerMachine') Location changed to edit custom tree. This is a writable tree with No root. For more help, use help('editCustom') Starting an edit session ... Started edit session, be sure to save and activate your changes once you are done. Saving all your changes ... Saved all your changes successfully. Activating all your changes, this may take a while ... The edit lock associated with this edit session is released once the activation is completed. Activation completed Reports Tools instance "rep_wls_reports_gpi01" was successfully created. exit()
Über die EM Console wieder den WLS_REPORTS starten und über showenv http://14cwin2025rep01:7002/reports/rwservlet/showenv prüfen!
Bzw über Console (Evlt. beim ersten mal ein Fehler, dann über EM starten!):
cd E:\oracle\fmw\user_projects\domains\SPAReport\bin rem start Mananged Server rem User und Password eingeben! start startManagedWebLogic.cmd WLS_REPORTS t3s://14cwin2025rep01:7002
Über die Oracle WebLogic Administration Server Console http://14cwin2025rep01:7002/console prüfen ob die Domain erreichbar und konfigurierbar ist.
Ins Verzeichnis (Domain Home ) E:\oracle\fmw\user_projects\domains\SPAReport\bin wechseln und von dort die WebLogic Server stoppen (erste den Managend Server und dann den Admin Server):
cd E:\oracle\fmw\user_projects\domains\SPAReport\bin REM Managed Server stopManagedWebLogic.cmd WLS_REPORTS t3s://14cwin2025rep01:7002 REM AdminServer stopWebLogic.cmd REM NodeManager stopNodeManager.cmd
Siehe auch Oracle Reports Server 12g 12.2.1.3.0 mit SSL über Port 443 aufrufen und zum erstellen einen passenden Zertifikates mit einer eigenen CA Oracle Linux 9 - Zentrakes Erstellen und Verwalten der Zertifikate einer Oracle Datenbank/Reports/APEX Umgebung
<************************************************************** * Demonstration CA was found in use in this environment. * * This deployment may be vulnerable to security attacks. * * Replace the Demonstration CA with a custom CA immediately. * ****************************************************************>>
siehe dazu auch „Demonstration CA was Found Even Though Custom Certs are Configured in WebLogic Server (Doc ID 2636227.1)“
Lösung: 1. If you do not want to use the Demo certs for OPSS Keystore Service, then uncheck the check box for „Use KSS For Demo“. Log into WebLogic Server Administration Console, navigate to the Domain → Security → Advanced page, and verify that the „Use KSS For Demo“ check box is unchecked. or 2. Replace demo certs with the DomainCA or third party certs
Die Berechtigung wird an einem User über folgende Zuordnungs-Kette vergeben: Berechtigung (Application Policies ) zu Rolle ( Application Roles ) zu User ( Security Realms / myrealm ) )
Siehe auch für mehr Details ⇒ REP-56071 When Attempt to Access In-Process Reports Server in Reports 12c (Doc ID 2072876.1)
Über die Url https://14cwin2025rep01/reports/rwservlet/getserverinfo kann der Status der Umgebung überwacht werden, diese Oberfläche muss geschützt werden, ansonsten stellt es ein erhebliches Sicherheits-Risiko da.
Um die Report Jobs nun besser überwachen zu können, die Reports Web Oberfläche der Servlets auch unseren administrativen User Weblogic über die Reports Rolle RW_ADMINISTRATOR erlauben.
Ablauf:
Über eine URL wie http://14cwin2025rep01:9002/reports/rwservlet/getserverinfo?authid=monPrtgUser/admin1234&statusformat=XML kann ein System Monitoring Tool wie PRTG den Status der Report Engine überwachen.
Dieser User soll aber nur den Status abfragen können und keine Berichte!
User anlegen:
Dem User eine Rolle zuordnen, dazu diese angelegten bzw. die vorhandene Rolle RW_MONITOR verwenden:
Die Rolle RW_MONITOR mit einer Application Policies verknüpfen:
Der Nachteil des Sichern des Aufrufes des Report Servlets ist nun aber, das wir einen User für den Aufruf auch von ganz normalen Berichten benötigen. Dieser User kann in der URL mitgeben oder aber auch in der cgicmd.dat Datei hinterlegt werden.
Run Report User anlegen:
Dem User eine Rolle zuordnen, dazu die Rolle RW_EXECREPORTS angelegen:
Die Rolle EXECREPORTS mit einer Application Policies verknüpfen:
Damit nun aber der User und das Passwort nicht in der URL übergeben werden muss (Parameter authid=EXECREPORTS/rufeMirMeinenBerichtAufPWD ) wird in der KeyFile Datei cgicmd.dat unter z.B. E:\oracle\fmw\user_projects\domains\ReportSPA\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.1.2\configuration\cgicmd.dat in dem bestehenden Key der User mit dem Parameter authid mit aufgenommen, darauf achten das es nach dem %2 erfolgen muss! wie:
.. SalesDEPRep: %1 userid=salesRep/Kaufmann@KostenDB01 destype=cache desformat=pdf %2 authid=EXECREPORTS/rufeMirMeinenBerichtAufPWD ..
Domain WLS_REPORTS neu starten!
Die gesamte Installation ist dann doch teilweise etwas unübersichtlich.
In meine Falls sind folgende Homes entstanden:
Konfigurationsdatei: ($DOMAIN_HOME\nodemanager\nodemanager.properties) Wie ⇒ E:\oracle\fmw\user_projects\domains\SPAReport\nodemanager\nodemanager.properties
Konfigurationsdatei: $DOMAIN_HOME\applications\reports_14.1.2\configuration\rwserver.conf
Wie ⇒ E:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.1.2\configuration\rwserver.conf
Konfigurationsdatei: $DOMAIN_HOME\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.2.1\configuration\rwservlet.properties
Wie ⇒ E:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.1.2\configuration\rwservlet.properties
Parameter Datei für Reportaufrufe
Konfigurationsdatei: $DOMAIN_HOME\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.1.2\configuration\cgicmd.dat
Wie ⇒ E:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.1.2\configuration\cgicmd.dat
siehe diese Support Node ⇒ New 12c Directory Paths for Reports Configuration Files (Doc ID 2071812.1)
Unter Windows sollten die Fonts auf dem System oder vom Drucker zwar automatisch gefunden werden, das Font Mapping muss aber in der Datei „uifont.ali“ hinterlegt werden.
Mehr dazu ⇒ https://docs.oracle.com/middleware/1221/formsandreports/use-reports/pbr_font003.htm#i1009745
Ein Suchpfad für die „uifont.ali“ dazu ist unter Windows $DOMAIN_HOME\config\fmwconfig\components\ReportsToolsComponent\<reports_tools_name>\tools\common
⇒ „E:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\components\ReportsToolsComponent\reptools1\tools\COMMON“
Siehe auch ⇒ https://docs.oracle.com/middleware/12211/formsandreports/use-reports/pbr_font003.htm#i1009745
Die Datei kann auch über dem EM administriert werden, siehe in der Doku ⇒ https://docs.oracle.com/middleware/12211/formsandreports/use-reports/pbr_adminem004.htm#RSPUB0511
Ablauf:
Problem: Font wird nicht angezeigt bzw. verwendet - keine Fehlermeldung
uifont.ali an diesen Stellen abgelegt:
Keine Besserung nach dem Neustart des WLS_REPORTS, ABER nach dem Neustart des ganzen Servers hat es funktioniert! Evlt. treten hier Cache Effekte auf, es kann daher sein das eine der obigen Locations unnötig ist.
Problem: REP-1924: Font file GPISymbol.pfm cannot be found.
Lösung ⇒ Fonts müssen im Reports Path liegen, wie E:\oracle\fmw\reports\printers
Problem: Font wird nicht gefunden
BUG! ⇒ On Windows Platform, the In-Process Reports Server Reads Uifont.ali From Incorrect Directory in Version 11g/12c (Doc ID 965582.1)
Die uifont.ali muss auch im Verzeichnis $ORACLE_HOME\tools\common wie ⇒ E:\oracle\fmw\tools\common liegen
Bei Problemen Test Report über rwclient auf rufen und Log File unter „$DOMAIN_HOME/servers/<reports_server_name>/logs/reports/rwEng-id_diagnostics.log“ prüfen, und über http://14cwin2025rep01:9002/reports/rwservlet/showenv prüfen auf was die REPORTS_PATH Variable zeigt!
Tracing einschalten über E:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.1.2\configuration\logging.xml ⇒NOTIFICATION:1 auf TRACE:32 im Abschnitt „logger name='oracle.reports.engine'“
Logs liegen unter:
Siehe auch ⇒ https://blogs.oracle.com/proactivesupportdevtools/tracing-in-oracle-reports-12c bzw. https://blogs.oracle.com/fusionmiddlewaresupport/post/tracing-in-oracle-reports-12c
Nach der Installation kann nun der erste Testbericht erstellt und aufgerufen werden
Den Datenbank Connect für den Report Builder wird konfigurieren indem die sqlnet.ora und entsprechende tnsnames.ora unter “%DOMAIN_HOME%\config\fmwconfig„ anlegt wird.
Der Pfad wird in der Datei „E:\oracle\fmw\user_projects\domains\SPAReport\reports\bin\reports.bat“ über die Umgebungsvariable TNS_ADMIN gesetzt, diese zeigt über “%DOMAIN_HOME%\config\fmwconfig„ in unseren Fall auf E:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig.
cd E:\oracle\fmw\user_projects\domains\SPAReport\reports\bin E:\oracle\fmw\user_projects\domains\SPAReport\reports\bin\rwbuilder.bat
Über das „Stecker Symbol“ an der Datenbank anmelden und über den Report Wizard einen einfachen Bericht wie „select * from scott.emp“ anlegen und speichern unter zum Beispiel D:\app\reports.
Bei einer Single Server Oracle Reports Installation liegt die Konfigurationsdatei rwserver.conf unter „ORACLE_INSTANCE_Home\config\ReportsServerComponent\server_name“.
In unseren Fall E:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.1.2\configuration\rwserver.conf
Da unser Bericht unter d:\app\reports liegt, in der Datei das Attribute „sourceDir“ anpassen (zuvor Sicherungskopie anlegen!):
<engine id="rwEng" class="oracle.reports.engine.EngineImpl" maxEngine="1" minEngine="1" engLife="50"> <property name="sourceDir" value="d:\app\reports" /> <property name="tempDir" value="D:\temp"/> <property name="keepConnection" value="yes"/> </engine> <!-- Folder Access gleich mit konfigurieren --> <folderAccess> <read>D:\app\reports</read> <write>D:\app\output</write> </folderAccess>
Performance Einstellung können hier auch hier getätigt werden wie “<engine id=„rwEng“ class=„oracle.reports.engine.EngineImpl“ maxEngine=„50“ minEngine=„1“ engLife=„50“ jvmOptions=„-Xms1024m -Xmx2048m“>„ WLS_REPORT über EM neu starten
Der rwclient kann sich nicht am Report Server anmelden, wir benötigen dazu eine User (siehe Abschnitt Weblogic User weiter oben)
siehe ⇒ Rwclient.sh Fails With REP-0238: Authentication Failed in Oracle Report 12c (Doc ID 2162851.1) Lösung: authid=weblogic/<password> Parameter mit übergeben!
Alternativ Securtiy ausschalten ⇒ How to Disable Security For The Reports Server 12C and Execute Webcommands (Doc ID 2108256.1)
Dazu auch in der rwserver.conf die SecurityID auf <job JobTyle=„report“ …> entfernden und in rwservlet.properties wieder für den Zugriff auf die Admin Oberfläche “<webcommandaccess>L2</webcommandaccess>„ einfügen.
UNSICHER! Nur für Training oder wenn man weiß was man tut!! Nicht zu empfehlen!
Mit der KeyMap Datei kann zum Beispiel der User Login in der URL zum Aufruf eines Reports „verborgen“ werden.
Dazu liegt unter “%DOMAIN_HOME%/config/fmwconfig/servers/<WLS_SERVER_NAME>/applications/reports_<version>/configuration/„ die Datei cgicmd.dat. In unserem Beispiel unter E:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.1.2\configuration
Um unser Beispiel nun ohne den User und das Password angeben zu können, folgenden Eintrag in der Datei hinzufügen:
emp_user: userid=scott/tiger@vds desformat=pdf DESTYPE=cache %*
Auf das %* am Ende achten!
URL:
http://12cwin2016rep01:9002/reports/rwservlet?emp_user&server=rep_wls_reports_12cwin2016rep01&report=emp_rep01.rdf
Problem *REP-52005: The specified key emp_user does not exist in the key map file.
Seht in der rwservlet.properties für die Eigenschaft reloadkeymap ein „no“ oder ist dort nicht im Detail definiert (Default ist „no“), wird die Keymap Datei nur beim Start neu ausgelesen, d.h. der Managed Server WLS_REPORTS muss neu über die Admin Console gestartet werden.
Soll das vermieden werden, in der rwservlet.properties die Eigenschaft reloadkeymap auf „yes“ setzen, das geht allerdings ein wenig zu Lasten der Performance, da nun bei jedem Aufruf die Keymap Datei ausgelesen wird. Bei Entwicklung System ist das aber wohl die bessere Einstellung.
Datei rwservlet.properties:
<reloadkeymap>yes</reloadkeymap>
Dokumentation:
Problem REP-50004: No report is specified on the command line.
Auf das %* am Ende in der Zeile in der cgicmd.dat achten!
Sollen Bericht zum Beispiel vom *rdf Format in das *.rep Format über die Kommandozeile neu übersetze werden, hilft dabei das Programm „rwconverter.exe“.
Die dazu notwendigen Parameter können über die GUI eingegeben oder die Kommando Zeile aufgerufen werden.
GUI:
E:\oracle\fmw\user_projects\domains\SPAReport\reports\bin\rwconverter.bat
Batch Aufruf (alles dann in einer Zeile!):
E:\oracle\fmw\user_projects\domains\SPAReport\reports\bin\rwconverter.bat
userid=scott/tiger@gpi
batch=yes
source=D:\app\old_reports\emp_rep01.rdf
dest=D:\app\reports\emp_rep03.rep
stype=rdffile
dtype=repfile
overwrite=yes
compile_all=yes
logfile=d:\temp\converter.txt
Wie finden sich die Reports Server untereinander?
E:\oracle\fmw\user_projects\domains\SPAReport\reports\bin> .\rwdiag.bat -findAll Reading the rwnetwork.conf from :E:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\components\ReportsToolsC omponent\reptools1\rwnetwork.conf Broadcast mechanism used to locate servers ------------------------------------------ Channel address = 228.5.6.7 Channel port = 14021 (1) Name = rep_wls_reports_14cwin2025rep01 : Type = server : Host = 142cWIN2025REP01
siehe auch Fusion Middleware Publishing Reports to the Web with Oracle Reports Services E.1 Overview of rwdiag
Über ein Monitor Tool wie PRTG Network Monitor Status Info des Servers über ein XML Format aufrufen.
Dazu haben wir zuvor einen User monPrtgUser angelegen und die RW_MONITOR Rolle mit dem Principal zum Aufruf der Servlet-Befehle gegrantet.
http://14cwin2025rep01:9002/reports/rwservlet/getserverinfo?authid=monPrtgUser/admin1234&statusformat=XML <serverInfo name="rep_wls_reports_14cwin2025rep01" version="14.2.1.0.0"> <host>12cWIN2016REP01</host> <startTime>1510925427808</startTime> <queue maxQueueSize="1000"/> <engine id="rwEng" activeEngine="1" runningEngine="0" totalBusyEngines="0" totalIdleEngines="1"> <engineInstance name="rwEng-0" processId="3508" status="1" runJobId="-1" curJobExecTime="-1" idleTime="2033" numJobsRun="3" lifeLeft="47" nls="AMERICAN_AMERICA.WE8MSWIN1252" totalRunTime="2" totalIdleTime="43"/> </engine> <engine id="rwURLEng" activeEngine="0" runningEngine="0" totalBusyEngines="0" totalIdleEngines="1"/> <performance> <property name="successfulJobs" value="33"/> <property name="currentJobs" value="0"/> <property name="futureJobs" value="0"/> <property name="transferredJobs" value="0"/> <property name="failedJobs" value="15"/> <property name="longRunningJobs" value="0"/> <property name="potentialRunawayJobs" value="0"/> <property name="averageResponseTime" value="1512.24"/> <property name="averageElapsedTime" value="0.0"/> <property name="avgQueuingTime" value="91.94"/> </performance> <connection connectionsUsed="1" connectionsAvailable="49"/> <isSecure>1</isSecure> <engineInfo maxEnginesUsed="1" avgEnginesUsed="1.0"/> <avgAuthTime>5.14</avgAuthTime> </serverInfo>
Über diesen Aufruf kann nun der PRTG die entsprechenden Metriken abfragen.
Leider lässt sich ein WebLogic Service unter MS Windows nicht so einfach aufsetzen, hier ist Geduld gefragt und etwas Scripting und Fehlersuche ist dazu notwendig!
Vorbereitung: Sicherheitshalber in der Umgebung für den aktuellen USER (nur hier!!) die Environment Variable „ORACLE_HOME=E:\oracle\fwm“ hinterlegen
Die Services müssen in der folgenden Reihenfolge starten:
Ablauf:
In einer produktiven Umgebung fragt WebLogic beim Start nach dem Passwort.
Passwort Nachfrage beim Start abschalten in dem in der Datei boot.properties User und Password hinterlegt werden.
Pfad in unseren Fall für den WebLogic Admin Server unter „E:\oracle\fmw\user_projects\domains\SPAReport\servers\AdminServer\security“ und den „Managed Server (Reports)“ unter „E:\oracle\fmw\user_projects\domains\SPAReport\servers\WLS_REPORTS\security“:
Anlegen mit:
cd E:\oracle\fmw\user_projects\domains\SPAReport\servers\AdminServer mkdir security cd security REM Passwörter und User in Klarschrift eingeben, wird beim nächsten Start verschlüsselt notepad boot.properties username=WebLogic password=admin1234 cd E:\oracle\fmw\user_projects\domains\SPAReport\servers\WLS_REPORTS\ mkdir security cd security notepad boot.properties username=WebLogic password=admin1234
Nach dem Start wird das Passwort verschlüsselt und die Datei neu geschrieben.
Für das Anlegen des Service unter Windows hat Oracle dem WebLogic Server Home im „$FMW_HOME/wlserver\server\bin“ Verzeichnis das das Skript installSvc.cmd und installNodeMgrSvc.cmd zur Verfügung gestellt.
Allerdings muss das Skript E:\oracle\fmw\wlserver\server\bin\installSvc.cmd noch um einige Punkte angepasst werden:
rem *** Install the service "%WL_HOME%\server\bin\%WLSVC_EXE_TO_USE%" -install -svcname:"Oracle Weblogic %DOMAIN_NAME%_%SERVER_NAME%" ....
REM Line 91 REM Aufruf der commEnv.cmd auskommentieren @rem call "%WL_HOME%\..\oracle_common\common\bin\commEnv.cmd" REM Umgebung Variablen der Domain einarbeiten call E:\oracle\fmw\user_projects\domains\SPAReport\bin\setDomainEnv.cmd
set CLASSPATH=%WEBLOGIC_CLASSPATH%;%CLASSPATH% REM um Line 144 herum REM Classpath in eine Datei schreiben und diesen Pfad in die Classpath Variable kopieren rem *** save the Classpath echo %CLASSPATH% > E:\oracle\fmw\user_projects\domains\SPAReport\%DOMAIN_NAME%_%SERVER_NAME%.classpath.txt set CLASSPATH=@E:\oracle\fmw\user_projects\domains\SPAReport\%DOMAIN_NAME%_%SERVER_NAME%.classpath.txt
REM Line 28 Rem Zeile mit PRODUCTION_MODE= auskommentieren und hardcodiert auf true setzen set PRODUCTION_MODE=true
Auch das Script E:\oracle\fmw\wlserver\server\bin\installNodeMgrSvc.cmd kann noch um einige Punkte optimiert werden:
REM Line 66 REM Classpath in eine Datei schreiben und diesen Pfad in die Classpath Variable kopieren rem *** save the Classpath echo %CLASSPATH% > E:\oracle\fmw\user_projects\domains\SPAReport\%DOMAIN_NAME%_%SERVER_NAME%_nodemanager.classpath.txt set CLASSPATH=@E:\oracle\fmw\user_projects\domains\SPAReport\%DOMAIN_NAME%_%SERVER_NAME%_nodemanager.classpath.txt
Skript zum Anlegen des Dienstes erstellen
Für die eigene Domain unter dem „Oracle Domain Home“ wie „E:\oracle\fmw\user_projects\domains\SPAReport“ für das Anlegen des Services folgende cmd Datei anlegen und aufrufen, die doppleten Passagen dienen dazu besser beim Debuggen nur einen Service nacheinander anzulegen
SETLOCAL set DOMAIN_NAME=ReportPisa set USERDOMAIN_HOME=E:\oracle\fmw\user_projects\domains\SPAReport set PRODUCTION_MODE=true set JAVA_VENDOR=Sun set JAVA_HOME=E:\Java\jdk set WLS_HOME=E:\oracle\fmw\wlserver set WL_HOME=E:\oracle\fmw\wlserver set MW_HOME=E:\oracle\fmw set SERVER_NAME=AdminServer set MEM_ARGS=-Xms512m -Xmx1024m call "E:\oracle\fmw\user_projects\domains\SPAReport\bin\setDomainEnv.cmd" call "E:\oracle\fmw\wlserver\server\bin\installSvc.cmd" ENDLOCAL SETLOCAL set DOMAIN_NAME=ReportPisa set USERDOMAIN_HOME=E:\oracle\fmw\user_projects\domains\SPAReport set PRODUCTION_MODE=true set JAVA_VENDOR=Sun set JAVA_HOME=E:\Java\jdk set WLS_HOME=E:\oracle\fmw\wlserver set WL_HOME=E:\oracle\fmw\wlserver set MW_HOME=E:\oracle\fmw set SERVER_NAME=WLS_REPORTS set MEM_ARGS=-Xms512m -Xmx2024m set ADMIN_URL=https://14cwin2025:9002 call "E:\oracle\fmw\user_projects\domains\SPAReport\bin\setDomainEnv.cmd" call "E:\oracle\fmw\wlserver\server\bin\installSvc.cmd" ENDLOCAL SETLOCAL set DOMAIN_NAME=ReportPisa set USERDOMAIN_HOME=E:\oracle\fmw\user_projects\domains\SPAReport set PRODUCTION_MODE=true set JAVA_VENDOR=Sun set JAVA_HOME=E:\Java\jdk set WLS_HOME=E:\oracle\fmw\wlserver set WL_HOME=E:\oracle\fmw\wlserver set MW_HOME=E:\oracle\fmw set MEM_ARGS=-Xms256m -Xmx512m set NODEMGR_HOME=E:\oracle\fmw\user_projects\domains\ReportSPA\nodemanager call "E:\oracle\fmw\wlserver\server\bin\installNodeMgrSvc.cmd" ENDLOCAL
Aufrufen in einer administrativen DOS Session:
cd E:\oracle\fmw\user_projects\domains\SPAReport installServiceSPAReport.cmd
Erzeugt die folgenden Dienste:
Nun die Abhängigkeiten der beiden Dienste anlegen (Administrative DOS Shell!):
sc config "Oracle WebLogic SPAReport_WLS_REPORTS" depend= "Oracle WebLogic NodeManager (D_oracle_fmw_wlserver)/Oracle WebLogic SPAReport_AdminServer" [SC] ChangeServiceConfig SUCCESS
(auf das Leerzeichen nach dem “=“ achten!)
Pfad Angabe unter „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleWebLogic SPAReport_WLS_REPORTS“ prüfen und „E:\oracle\fmw\bin“ mit in den Pfad aufnehmen falls es fehlt!
Fehler beim Start eines WebLogic Service debuggen.
Kann ein eingerichtet Dienst nicht gestartet werden, kann mit “ wlsvcX64.exe„ (E:\oracle\fmw\wlserver\server\bin) der Dienst getestet werden.
Aufruf des Diensts mit dem Schalter Debug über:
cd E:\oracle\fmw\wlserver\server\bin> .\wlsvcX64.exe -debug "Oracle WebLogic NodeManager (D_oracle_fmw_wlserver)"
Um die Dienst wieder zu löschen (DOS Shell!):
sc delete "Oracle WebLogic ReportSPA_AdminServer" sc delete "Oracle WebLogic ReportSPA_WLS_REPORTS" sc delete "Oracle WebLogic NodeManager (D_oracle_fmw_wlserver)"
Beispiel dazu im Netz:
Unter E:\oracle\fmw\user_projects\domains\ReportSPA\reports\bin\ mit rwdiag.bat -findAll die Umgebung analysieren
Nach der Installation stellte sich heraus, dass ein anderer Port für das Report rwservlet verwendet werden soll.
Über die Administrative Console der Domain den Listen Port über die Oberflächen anpassen:
Doku:
Über die rwserver.conf kann der Mail Server für den Versandt von Reports eingebunden werden.
Pfad: $DOMAIN_HOME\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.1.2\configuration\rwserver.conf wie ⇒ E:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_14.1.2\configuration\rwserver.conf
<pluginParam name="mailServer" value="%MAILSERVER_NAME%"> <!--property name="enableSSL" value="yes"/--> <!--UserName and Password that can be used to connect to the mail server--> <!--property name="mailUserName" value="%MAIL_USERID%" /--> <!--property name="mailPassword" value="%MAIL_PASSWORD%"/--> </pluginParam>
Werte entsprechend eintragen, siehe auch ⇒ https://docs.oracle.com/middleware/1221/formsandreports/use-reports/pbr_conf002.htm#g1024234
Mit „rwclient“ und „rwservlet“ können Reports so in die Queue gestellt werden, da ein Schedule damit umgesetzt werden kann. Dabei wird mit dem Keyword „SCHEDULE=string“ das Schedulling gesteuert.
Wert: [FREQ from] TIME [retry {n} after LEN expires {on|after} time|n]
FREQ | hourly | daily | weekly | monthly | {every {LEN | DAYREPEAT}} | {last {WEEKDAYS | weekday | weekend} before {n}+} |
---|---|
LEN | {n}+ {minute[s] | hour[s] | day[s] | week[s] | month[s]} |
DAYREPEAT | {first | second | third | fourth | fifth} WEEKDAYS of month |
WEEKDAYS | mon | tue | wed | thu | fri | sat | sun |
TIME | now | CLOCK [DATE] |
CLOCK | h:m | h:mm | hh:m | hh:mm |
DATE | today | tomorrow | {MONTHS {d | dd} [,year]} |
MONTHS | jan | feb | mar | apr | may | jun | jul | aug | sep | oct | nov | dec |
EXPIRES | on {today | tomorrow | {MONTHS {d | dd} [,year]}}|after n |
siehe auch https://docs.oracle.com/middleware/12211/formsandreports/use-reports/pbr_cla008.htm#RSPUB23888
Beispiel (alles später in einer Zeile aufrufen!):
cd E:\oracle\fmw\user_projects\domains\SPAReport\reports\bin> rwclient.bat server=rep_wls_reports_12cwin2016rep01 report=emp_rep01.rdf userid=scott/tiger@gpi desformat=pdf DESTYPE=file DESNAME=D:\app\output\emp_rep01.pdf SCHEDULE="last weekday before 15 from 12:00 MAY 09, 2025 retry after 1 hour expires after 2" authid=weblogic/admin1234
Über http://14cwin2025rep01:9002/reports/rwservlet/showjobs können dann die erzeugen Jobs angezeigt werden, ähnlicher Screen wie unter 11g.
Dokumentation: Fusion Middleware Publishing Reports to the Web with Oracle Reports Services 18.10 Scheduling Reports to Run Automatically