November 2017
Aufgabe: Die letzte und finale Version des Oracle Report Server unter Windows 2016 in Betrieb nehmen und betreiben.
Für die Vorgänger Version siehe hier ⇒ Oracle Reports Server 11g R2 unter Windows 2008 installieren und betreiben.
Zertifizierung überprüfen:
Siehe auch https://docs.oracle.com/html/E82037_01/toc.htm#GUID-CB8C7C04-C8BD-4F9F-8ACF-F735FB6BD871
Genereller Ablauf:
Zeitlicher Ablauf:
Im Prinzip kann einen Installation in ca. 8h 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.
Download von Oracle edelivery ⇒ http://edelivery.oracle.com/
Download Java ⇒ http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Download Visual Studio 2012 (VC++ 11.0) Runtime 32/64 bit ⇒ https://www.microsoft.com/en-us/download/details.aspx?id=30679
Die Installation muss unter dem User stattfinden, unter dem später auch der Service betrieben werden soll.
Falls der Administrative Account dazu NICHT verwendet werden kann, entsprechenden User zuvor mit lokalen Admin Rechten anlegen!
Empfohlen ist die Verwendung der englischen Variante von Windows 2016, oft lässt sich im Support Fall mit deutschen Fehlermeldungen nicht viel anfangen!
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!
Windows System optimieren
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 .-).
Für die Metadaten der Fusion Middleware Umgebung wird eine Datenbank benötigt, am besten eine einfache 12c Umgebung.
Falls der Server genug Reserven besitzt nun eine normale 12c Datenbank ohne große Besonderheiten installieren, wie zum Beispiel hier auch beschrieben ⇒ Eine Oracle Datenbank 12c Datenbank Umgebung unter Windows 2012 R2 installieren
Kann natürlich auch alternativ ein Cluster sein .-) ⇒ Anmerkungen zu Installation des Oracle Real Application Cluster 12c R1 auf einem Oracle Linux 7
Problem bei der späteren Installation von Reports!
Unable to find dependent featuresets for the selected installation type "Forms and Reports Deployment". Please select a valid installation type.
⇒ Weblogic muss als Oracle Fusion Middleware 12c Infrastructure installiert werden, der Generic Weblogic ist nicht mehr ausreichend!
Bei der Vorgänger Version von Report hat das aber noch geklappt .-( !
D.h. die Oracle Fusion Middleware 12c Infrastructure 12.2.1.3.0 for Microsoft Windows x64 (64-bit) ⇒ Datei V886426-01.zip - Oracle Fusion Middleware 12c (12.2.1.3.0) Infrastructure, rund 1.5 GB groß, muss als FWM installiert werden!
Im ersten Schritt wird aber NUR die Software installiert, erst mit der Reports/Forms Installation erfolgt das Aufsetzen der WebLogic Domain!
Um die Pfadangaben zu vereinfachen, werden die folgenden Pfade verwandt:
Ablauf:
d: mkdir d:\oracle\fmw rem in das Verzeichnis mit dem "fmw_12.2.1.3.0_infrastructure.jar" wechseln cd D:\install\forms #Java aus dem JDK aufrufen!! D:\Java\jdk1.8.0_152\bin\java -jar .\fmw_12.2.1.3.0_infrastructure
Alle 8 Screen durcharbeiten, wichtigste Einstellung: Wahl der Oracle Homes „d:\oracle\fwm“ und Fusion Middleware Infrastucture!
Die Konfiguration einer Domain im WebLogic wird später nach der Reports Installation durchgeführt!
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 ) .
Software entpacken und setup_fmw_12.2.1.3.0_fr_win64.exe aufrufen (in der Powershell z.B.):
# Dateien auspacken cd D:\install expand-archive .\V886455-01_1of2.zip expand-archive .\V886455-01_2of2.zip cp .\V886455-01_2of2\setup_fmw_12.2.1.3.0_fr_win64-2.zip .\V886455-01_1of2\ cd D:\install\V886455-01_1of2 .\setup_fmw_12.2.1.3.0_fr_win64.exe
Alle 9 Screens durcharbeiten ⇒ Screen Flow siehe ⇒ Screen Flow Install oraclereportsserver12.2.1.3.0
Nach der Installation der reinen Software müssen die nächsten Schritte ausgeführt werden:
Als Repostitory Datenbank kann eine Oracle 12c dienen, allerdings kann meiner Erfahrung nach pro DB nur ein Repository für eine FWM Umgebung angelegt werden. Siehe ⇒ https://docs.oracle.com/middleware/1212/core/ASINS/preparing.htm#ASINS355
D:\oracle\fmw\oracle_common\bin>rcu.bat
Screenshots der Installation ⇒Screenshots der Installation Oracle Infrastructure Repository 12c Fusion Middleware
Aufruf von:
D:\oracle\fmw\oracle_common\common\bin> .\config.cmd
Screens:
Siehe auch ⇒ Oracle Report 12.2.1.3.0 Domain Wizard to setup a Weblogic Domain for Reports
Nun wurde unter D:\oracle\fmw\user_projects\domains\SPAReport die Domain angelegt, über http://12cwin2016rep01:7001/console kann NACH dem Start der Domain auf die Admin Oberfläche zugegriffen werden.
Siehe auch ⇒ https://docs.oracle.com/middleware/1213/wls/WLDCW/newdom.htm#i1073602 und ⇒ https://docs.oracle.com/middleware/1213/wls/WLDCW/fmw_config.htm#WLDCW407
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 ) D:\oracle\fmw\user_projects\domains\SPAReport\bin die WebLogic Umgebung starten:
cd D:\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.>" rem start Mananged Server rem User und Password eingeben! start startManagedWebLogic.cmd WLS_REPORTS t3://12cwin2016rep01:7001 rem start NodeManager start startNodeManager.cmd
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, evtl. ein Bug?
Produkt oder Komponente | URL Schema | Beispiel |
---|---|---|
Administration Server Console | http://host:port/console | http://12cwin2016rep01:7001/console |
Enterprise Manager Console | http://host:port/em | http://12cwin2016rep01:7001/em |
Oracle Forms | http://host:port/forms/frmservlet | nicht installiert |
Oracle Reports | http://host:port/reports/rwservlet | http://12cwin2016rep01:9002/reports/rwservlet |
Über die EM Console http://12cwin2016rep01:7001/em kann der Status der gesamten „Farm“ ReportSPA überprüft werden (Anmelden mit WebLogic und dem bei der Installation verwendeten Passwort):
Über die Oracle WebLogic Administration Server Console http://12cwin2016rep01:7001/console prüfen ob die Domain erreichbar und konfigurierbar ist:
Leider legt der Domain Wizard dann zum Schluss doch nicht alle benötigten Komponenten für Oracle Reports an, sehr ärgerlich.
siehe auch ⇒ Oracle Reports 12c: First Step to Complete After a New Forms/Reports 12c Install and Configuration Environment (Doc ID 2072671.1)
Nacharbeiten:
cd D:\oracle\fmw\oracle_common\common\bin wlst.cmd connect('weblogic','admin1234','localhost:7001') createReportsToolsInstance(instanceName='reptools1',machine='AdminServerMachine') exit()
In Produktion muss dann nochmals getestet werden ob die Tools Instance eingespart werden kann „createReportsServerInstance(instanceName='rep_server1',machine='AdminServerMachine'“, bei Problemen dann doch anlegen!
Ins Verzeichnis (Domain Home ) D:\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 D:\oracle\fmw\user_projects\domains\SPAReport\bin REM Managed Server stopManagedWebLogic.cmd WLS_REPORTS t3://12cwin2016rep01:7001 REM AdminServer stopWebLogic.cmd REM NodeManager stopNodeManager.cmd
Leider lässt sich ein WebLogic Service unter MS Windows nicht so einfach aufsetzen, etwas Scripting und Fehlersuche ist dazu notwendig.
Vorbereitung: Sicherheitshalber in der Umgebung für den aktuellen USER (nur hier!!) die Enviroment Variable „ORACLE_HOME=d:\oracle\fwm“ hinterlegen
Ablauf:
Im Folgenden die Details (zur Zeit in der Reihenfolge bei der Fehlersuche .-))
Der WebLogic Server muss allerdings noch als Dienst eingerichtet werden.
Passwort hinterlegen
In einer produktiven Umgebung fragt WebLogic beim Start nach dem Passwort.
Passwort Nachfrage beim Start abschalten:
Mit der Datei boot.properties können User und Password hinterlegt werden.
Pfad in unseren Fall unter D:\oracle\fmw\user_projects\domains\SPAReport\servers\AdminServer\security und D:\oracle\fmw\user_projects\domains\SPAReport\servers\WLS_REPORTS\security:
cd D:\oracle\fmw\user_projects\domains\ReportSPA\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 D:\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.
Script installSvc.cmd und commEnv.cmd patchen
Für das Anlegen des Service unter Windows hat Oracle dem WebLogic Server Home im „$FMW_HOME/wlserver\server\bin“ Verzeichnis das das Script installSvc.cmd und installNodeMgrSvc.cmd zur Verfügung gestellt.
Allerdings muss das Script D:\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 Umgebung Variablen der Domain einarbeiten call D:\oracle\fmw\user_projects\domains\SPAReport\bin\setDomainEnv.cmd
set CLASSPATH=%WEBLOGIC_CLASSPATH%;%CLASSPATH% REM um Line 134 herum REM Classpath in eine Datei schreiben und diesen Pfad in die Classpath Variable kopieren rem *** save the Classpath echo %CLASSPATH% > D:\oracle\fmw\user_projects\domains\SPAReport\%DOMAIN_NAME%_%SERVER_NAME%.classpath.txt set CLASSPATH=@D:\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 D:\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% > D:\oracle\fmw\user_projects\domains\SPAReport\%DOMAIN_NAME%_%SERVER_NAME%_nodemanager.classpath.txt set CLASSPATH=@D:\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 „D:\oracle\fmw\user_projects\domains\ReportSPA“ für das Anlegen des Services folgende cmd Datei anlegen und aufrufen:
SETLOCAL set DOMAIN_NAME=SPAReport set USERDOMAIN_HOME=D:\oracle\fmw\user_projects\domains\SPAReport set PRODUCTION_MODE=true set JAVA_VENDOR=Sun set JAVA_HOME=D:\Java\jdk1.8.0_152 set WLS_HOME=D:\oracle\fmw\wlserver set SERVER_NAME=AdminServer set MEM_ARGS=-Xms256m -Xmx512m call "%WLS_HOME%\server\bin\installSvc.cmd" set SERVER_NAME=WLS_REPORTS set MEM_ARGS=-Xms256m -Xmx1024m set ADMIN_URL=http://12cwin2016rep01:7001 call "%WLS_HOME%\server\bin\installSvc.cmd" set WL_HOME=D:\oracle\fmw\wlserver set MW_HOME=D:\oracle\fmw set MEM_ARGS=-Xms256m -Xmx512m set NODEMGR_HOME=D:\oracle\fmw\user_projects\domains\SPAReport\nodemanager call "%WLS_HOME%\server\bin\installNodeMgrSvc.cmd" ENDLOCAL
Nodemanager Datei Datei DemoIdentity.jks an die gewünschte Stelle für den Dienst kopieren
mkdir D:\oracle\fmw\user_projects\domains\SPAReport\nodemanager\security cp D:\oracle\fmw\user_projects\domains\SPAReport\security\DemoIdentity.jks D:\oracle\fmw\user_projects\domains\SPAReport\nodemanager\security\DemoIdentity.jks
Aufrufen in einer administrativen DOS Session:
cd D:\oracle\fmw\user_projects\domains\SPAReport\bin installServiceSPAReport.cmd
Erzeugt einen Dienst mit Namen:
Nun die Abhängigkeiten der beiden Dienste anlegen (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 überprüfen!
Pfad Angabe unter „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleWebLogic SPAReport_WLS_REPORTS“ prüfen und „D:\oracle\fmw\bin“ mit in den Pfad aufnehmen falls fehlt!
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:
Kann ein eingerichtet Dienst nicht gestartet werden, kann mit “ wlsvcX64.exe„ (D:\oracle\fmw\wlserver\server\bin) der Dienst getestet werden.
Fehler weblogic.nodemanager.common.ConfigException: Identity key store file not found:
cd D:\oracle\fmw\wlserver\server\bin> .\wlsvcX64.exe -debug "Oracle WebLogic NodeManager (D_oracle_fmw_wlserver)" .... <Nov 10, 2017 12:33:54 AM PST> <SEVERE> <Fatal error in NodeManager server> weblogic.nodemanager.common.ConfigException: Identity key store file not found: D:\oracle\fmw\user_projects\domains\SPAR eport\nodemanager\security\DemoIdentity.jks at weblogic.nodemanager.server.SSLConfig.loadKeyStoreConfig(SSLConfig.java:225) ..
Lösung: Datei DemoIdentity.jks an die gewünschte Stelle kopieren
cp D:\oracle\fmw\user_projects\domains\SPAReport\security\DemoIdentity.jks D:\oracle\fmw\user_projects\domains\SPAReport\nodemanager\security\DemoIdentity.jks
Fehler WebLogic.management.ManagementException: Booting as admin server, but servername does not match:
wlsvcX64.exe -debug "Oracle WebLogic SPAReport_WLS_REPORTS" .. There are 1 nested errors: WebLogic.management.ManagementException: Booting as admin server, but servername, WLS_REPORTS, does not match the admin server name, AdminServer ..
Lösung: Parameter ADMIN_URL beim Anlegen des Service hat gefehlt!
Nächster Fehler „JRF Startup Class“, java.lang.ClassNotFoundException: oracle.jrf.wls.JRFStartup:
wlsvcX64.exe -debug "Oracle WebLogic SPAReport_WLS_REPORTS" <Dec 28, 2014 10:58:40 AM PST> <Critical> <WebLogicServer> <BEA-000286> <Failed to invoke startup class "JRF Startup Class", java.lang.ClassNotFoundException: oracle.jrf.wls.JRFStartup java.lang.ClassNotFoundException: oracle.jrf.wls.JRFStartup
Problem: Der Classpath ist, falsch!
Lösung:
REM Line 58 REM Aufruf der commEnv.cmd auskommentieren REM Umgebungvariablen der Domain einarbeiten call D:\oracle\fmw\user_projects\domains\ReportSPA\bin\setDomainEnv.cmd
REM Line 112 Rem Zeile mit PRODUCTION_MODE= auskommentieren und hardcodiert auf true setzen set PRODUCTION_MODE=true
REM Line 104 REM Classpath in eine Datei schreiben und diesen Pfad in die Classpath Variable kopieren rem *** save the Classpath echo %CLASSPATH% > D:\oracle\fmw\user_projects\domains\ReportSPA\%DOMAIN_NAME%_%SERVER_NAME%.classpath.txt set CLASSPATH=@D:\oracle\fmw\user_projects\domains\ReportSPA\%DOMAIN_NAME%_%SERVER_NAME%.classpath.txt
siehe auch die folgenden Quellen:
Fehler „java.lang.UnsatisfiedLinkError: no rwu in java.library.path“
Wird der WLS_REPORT über den Dienst gestartet, startet später die Report Tool Instance nicht!
Fehler:
# check Log # d:\oracle\fmw\user_projects\domains\SPAReport\servers\WLS_REPORTS\logs\WLS_REPORTS-diagnostic.log ... 2017-11-17T10:14:36.518+01:00] [WLS_REPORTS] [INCIDENT_ERROR] [DFW-40104] [oracle.dfw.incident] [tid: Thread-70] [userId: <anonymous>] [ecid: 0000Lz9GWmC7m3yTw6CCwW1Q3eXp000001,0:1:3] [errid: 8] [detailLoc: D:\oracle\fmw\user_projects\domains\SPAReport\servers\WLS_REPORTS\adr\diag\ofm\reportpisa\wls_reports\incident\incdir_8] [probKey: DFW-99998 [java.lang.UnsatisfiedLinkError][oracle.reports.util.EnvironmentGlobal.<init>][reports]] [APP: reports] [partition-name: DOMAIN] [tenant-name: GLOBAL] incident 8 created with problem key "DFW-99998 [java.lang.UnsatisfiedLinkError][oracle.reports.util.EnvironmentGlobal.<init>][reports]" ... # D:\oracle\fmw\user_projects\domains\SPAReport\servers\WLS_REPORTS\adr\diag\ofm\reportpisa\wls_reports\incident\incdir_8\readme.txt ... java.lang.UnsatisfiedLinkError: no rwu in java.library.path ...
Lösung:
Pfad Angabe unter „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleWebLogic SPAReport_WLS_REPORTS“ prüfen und „D:\oracle\fmw\bin“ mit in den Pfad aufnehmen!
Die gesamte Installation ist dann doch teilweise etwas unübersichtlich.
In meine Falls sind folgende Homes entstanden:
Konfigurationsdatei: ($DOMAIN_HOME\nodemanager\nodemanager.properties) Wie ⇒ D:\oracle\fmw\user_projects\domains\SPAReport\nodemanager\nodemanager.properties
Konfigurationsdatei: $DOMAIN_HOME\nodemanager\rwserver.conf
Wie ⇒ D:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\configuration\rwserver.conf
Konfigurationsdatei: $DOMAIN_HOME\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\configuration\rwservlet.properties
Wie ⇒ D:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\configuration\rwservlet.properties
Parameter Datei für Reportaufrufe
Konfigurationsdatei: $DOMAIN_HOME\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\configuration\cgicmd.dat
Wie ⇒ D:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\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.
Ein Suchpfad für die „uifont.ali“ dazu ist unter Windows $DOMAIN_HOME\config\fmwconfig\components\ReportsToolsComponent\<reports_tools_name>\tools\common
⇒ „D:\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 D:\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 ⇒ D:\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://12cwin2016rep01:9002/reports/rwservlet/showenv prüfen auf was die REPORTS_PATH Variable zeigt!
Tracing einschalten über D:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\configuration\logging.xml ⇒NOTIFICATION:1 auf TRACE:32 im Abschnitt „logger name='oracle.reports.engine'“
Siehe auch ⇒ https://blogs.oracle.com/proactivesupportdevtools/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 „D:\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 D:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig.
cd D:\oracle\fmw\user_projects\domains\SPAReport\reports\bin D:\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 D:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\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
Um die Report Jobs besser überwachen zu können für die Reports Job Oberfläche den User Weblogic die Reports Rolle RW_ADMINISTRATOR und RW_MONITOR zuweisen. Evlt. WLS_REPORTS neu starten!
Über http://12cwin2016rep01:9002/reports/rwservlet/getserverinfo kann dann zum Beispiel die Umgebung abgefragt werden.
Ablauf:
Siehe auch für mehr Details ⇒ REP-56071 When Attempt to Access In-Process Reports Server in Reports 12c (Doc ID 2072876.1)
Zuvor am besten mit http://12cwin2016rep01:9002/reports/rwservlet/startserver den Reportserver auch starten, damit nach einem Neustart und einem ersten Aufruf keine Fehler auftreten.
rwclient.bat aus Domain Home aufrufen!
mkdir d:\app\output cd D:\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 authid=weblogic/admin1234 REM Bei Fehlern Logfile prüfen: cd D:\oracle\fmw\user_projects\domains\SPAReport\servers\WLS_REPORTS\logs\reports\ notepad rwserver_diagnostic.log
hmm, rwclient kann sich nicht am Report Server anmelden, hier fehlt noch etwas in der Konfig …
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!
Oder Securtiy ausschalten ⇒ How to Disable Security For The Reports Server 12C and Execute Webcommands (Doc ID 2108256.1)
Bzw. 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!!
siehe ⇒ Reports 12c: FolderAccess Wildcard Does Not Work – REP-177 & REP-56133 (Doc ID 2107541.1)
rwserver.conf anpassen:
<folderAccess> <read>D:\app\reports</read> <write>D:\app\output</write> </folderAccess>
WS_REPORT neu über den EM starten
Bei Fehlern Logfile prüfen:
cd D:\oracle\fmw\rep01\diagnostics\logs\ReportsServerComponent\RptSvr_shadb01_rep01 notepad rwserver_diagnostic.log rwserver_diagnostic.log
Mein Fehler ⇒ Bei obigen Befehlt den Dateinamen vergessen .-)
Die Konfigurationsdateien des Reports Servlets finden sich unter „DOMAIN_HOME/config/fmwconfig/servers/<WLS_SERVER_NAME>/applications/reports_<version>/configuration“ in unseren Fall unter „D:\oracle\fmw\user_projects\domains\ReportSPA\config\fmwconfig\servers\WLS_REPORTS\applications\reports_11.1.2\configuration“.
URL:
http://12cwin2016rep01:9002/reports/rwservlet?server=rep_wls_reports_12cwin2016rep01+report=emp_rep01.rdf+userid=scott/tiger@gpi+desformat=pdf+DESTYPE=cache
OK!
Dokumentation:
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 D:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\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:
D:\oracle\fmw\user_projects\domains\SPAReport\reports\bin\rwconverter.bat
Batch Aufruf (alles dann in einer Zeile!):
D:\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?
D:\oracle\fmw\user_projects\domains\SPAReport\reports\bin> .\rwdiag.bat -findAll Reading the rwnetwork.conf from :D:\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_12cwin2016rep01 : Type = server : Host = 12cWIN2016REP01
siehe auch Fusion Middleware Publishing Reports to the Web with Oracle Reports Services E.1 Overview of rwdiag
Programmierung mit Oracle Reports:
Über ein Monitor Tool wie PRTG Network Monitor Status info des Servers über ein XML Format aufrufen.
Besser dafür natürlich einen Überwachtungs User anlegen und die Monitor Rolle granten.
(Über WebLogic Server Administration Console, expand Security —> Realms / auf das Realm / User )
http://12cwin2016rep01:9002/reports/rwservlet/getserverinfo?authid=weblogic/admin1234&statusformat=XML <serverInfo name="rep_wls_reports_12cwin2016rep01" version="12.2.1.3.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>
Und entsprechend die Metriken abfragen.
Unter E:\oracle\fmw\user_projects\domains\ReportPisa\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_12.2.1\configuration\rwserver.conf wie ⇒ D:\oracle\fmw\user_projects\domains\SPAReport\config\fmwconfig\servers\WLS_REPORTS\applications\reports_12.2.1\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
Siehe dazu im Detail ⇒ ⇒ Oracle Reports Server 12g R1 mit SSL über Port 443 betreiben
Dokumentation:
Web:
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 D:\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 DEC 31, 2017 retry after 1 hour expires after 2"
Über http://12cwin2016rep01:9002/reports/rwservlet/showjobs können dann die erzeugen Jobs angezeigt werden.
Dokumentation: Fusion Middleware Publishing Reports to the Web with Oracle Reports Services 18.10 Scheduling Reports to Run Automatically
Problem
Nach der Umstellung aus der alten Umgebung (Report 11g) lässt sich ein Bericht nicht mehr ausführen, im Logfile ist außer einem nichtssagenden „REP-3301 - Error occurred in Error Checking “ zu finden.
Ein Aufruf in „rwbuilder“ führt zum gleichen Ergebnis.
Ein Trace brachte gar nichts, es wird nichts geloggt, die Ausführung wird anscheinend schon sehr früh in der Verarbeitungskette abgebrochen.
LÖSUNG
Bei Vergleich der alten und der neuen Umgebung zeigt sich das die NLS_LANG Setting unterschiedlich ist!
Mit "http://<server_name>:9002/reports/rwservlet/getserverinfo abfragen:
In der Registry den Key NLS_LANG unter „HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OracleHome1“ auf den Wert der alten Produktion gesetzt, WLS_REPORTS neu gestartet ⇒ GERMAN_GERMANY.WE8MSWIN1252 und der Bricht funktioniert wieder!
Leider kann nur it der Version 12 der 12c Forms Builder auch Standalone aufgesetzt werden.
Sehr ärgerlich …
Für einen Developer Arbeitsplatz heißt das um umkehrschluss das für Reports eine komplette Umgebung aufgesetzt werden muss.
… Rports Builder can only be obtained as part of 'Forms and Reports Deployment' option ….
Vorbereitung - Installation Java 8 152
Setzen JAVA_HOME als Umgebungsvariable (sonst startet der Wizard später nicht!!)
Ablauf einer Installation auf einen Windows 10 Client:
# Dateien auspacken cd D:\install expand-archive .\V886455-01_1of2.zip expand-archive .\V886455-01_2of2.zip cp .\V886455-01_2of2\setup_fmw_12.2.1.3.0_fr_win64-2.zip .\V886455-01_1of2\ cd D:\install\V886455-01_1of2 .\setup_fmw_12.2.1.3.0_fr_win64.exe
Danach unter C:\oracle\product\fmw\forms\common\bin den config_builder.cmd aufrufen , siehe auch dazu
Anleitung dazu ⇒ https://docs.oracle.com/middleware/1221/formsandreports/install-fnr/install.htm#CIHGBBEH
siehe ⇒ https://blogs.oracle.com/proactivesupportdevtools/oracle-forms-and-reports-builders-in-12c
… Rports Builder can only be obtained as part of 'Forms and Reports Deployment' option ….
Oracle Reports Server Installation - Problem Self extraction to … failed. beim Aufruf von setup_fmw_12.2.1.3.0_fr_win64.exe
Launcher log file is D:\temp\Temp\2\OraInstall2017-10-25_11-48-04PM\launcher2017-10-25_11-48-04PM.log. Extracting the installer . . . . Done Self extraction to D:\temp\Temp\2\sfxAD3.tmp failed. The log is located here: D:\temp\Temp\2\OraInstall2017-10-25_11-48-04PM\launcher2017-10-25_11-48-04PM.log. Press Enter to exit # Logfile prüfen:=> 2017-10-25 23:48:04,798 SEVERE [1] com.oracle.cie.nextgen.launcher.Launcher - The jar file D:\install\forms\setup_fmw_12.2.1.3.0_fr_win64-2.zip needed for this installer is missing.
⇒ Darauf achten das der Inhalt des zweiten Archives zum ersten kopiert wird!!
sqlplus und tnsping starten nicht ⇒ Fehlermeldung „The program can’t start because MSVCR100.dll is missing from your computer.“
Microsoft Visual C++ 2010 Redistributable Package für x86 und x64 installieren, download über https://www.microsoft.com/en-us/download/details.aspx?id=5555 und https://www.microsoft.com/en-us/download/details.aspx?id=14632
Domain wieder entfernen Um eine Domain wieder zu entfernen:
<?xml version="1.0" encoding="UTF-8"?> <domain-registry xmlns="http://xmlns.oracle.com/weblogic/domain-registry"> <domain location="D:\oracle\fmw\user_projects\domains\gpi"/> </domain-registry>
#Domains and directories created by Configuration Wizard #Fri Nov 03 23:03:32 PDT 2017 gpi=D\:\\oracle\\fmw\\user_projects\\domains\\gpi
rm -Rf D:\oracle\fmw\user_projects\applications\gpi rm -Rf D:\oracle\fmw\user_projects\domains\gpi
siehe auch https://oracle-base.com/articles/12c/weblogic-12c-create-extend-and-remove-domains
Error
REP-52266: The in-process Reports Server rep_wls_reports_12cwin2016rep01 failed to start.oracle.reports.RWException: IDL:oracle/reports/RWException:1.0
Beim Aufruf von http://12cwin2016rep01:9002/reports/rwservlet/showenv
Lösung: Nach dem Durchlauf der Konfiguration mit dem Domain Wizard fehlt aber noch der notwendige Reports Config Teil, es müssen noch weitere manuelle Schritte durchgeführt werden, siehe oben die manuelle Configuratoin
Oracle Support:
Web