Oracle Forms & Reports 12c : Standalone vs In-Process Reports Server

La dernière version d’Oracle Forms 12c continue à supporter Oracle Reports, malgré le fait qu’Oracle considère l’utilisation de ce produit comme obsolète et pousse ses clients vers la mise en place de BI Publisher pour la gestion de leurs éditions.

Oracle met à disposition 2 modes de configuration d’un Reports Server :

  • Mode « In-Process Server » : le serveur Reports est intégré au serveur managé relatif à Reports, il partage donc les mêmes ressources, et son fonctionnement est étroitement lié au paramétrage associé au serveur managé.

Les développeurs optent souvent pour ce type de serveur, car il implique un minimum de modification dans le code à migrer.

  • Mode « Standalone Server » : le serveur Reports fonctionne dans ce cas en mode autonome, il s’exécute dans sa propre JVM, possède ainsi ses propres ressources qui sont indépendantes du serveur managé.

L’utilisateur a plus de contrôle sur le Standalone Server depuis la ligne de commandes et dispose de davantage d’options pour monitorer l’activité du serveur Reports.

Dans le cas de figure où on choisit de déployer plusieurs applications Forms (c’est le cas de la plupart des clients) avec des serveurs Reports distincts, il est recommandé de choisir le mode Standalone car lui seul permet de configurer plusieurs instances de serveurs Reports indépendantes, ce qui n’est pas le cas du mode « In-Process ».

 

Ci-dessous un mode opératoire pour installer et configurer un « Standalone Reports Server » :

  • S’assurer que le Node Manager et l’Admin Server sont démarrés.
    Démarrer WLST :
cd $MW_HOME/oracle_common/common/bin/
./wlst.sh
  • Se connecter à l’AdminServer
connect("weblogic","weblogic_password","hostname:7001")
  • Exécuter les commandes WLST suivantes :
createReportsToolsInstance(instanceName='reptools_1', machine='MachineAdmin')
createReportsServerInstance(instanceName='repsrv_1', machine='MachineAdmin')
exit()
  • Démarrer le serveur :
cd /logiciel/oracle/config/domains/domaineNSI/bin
./startComponent.sh repsrv_nsi'

 

Deux fichiers de configuration à modifier pour ajuster le fonctionnement du Standalone Reports Server :

  • Le fichier de config « rwservlet.properties » :
    • Emplacement : $DOMAIN_HOME/ config/fmwconfig/servers/WLS_REPORTS_1/applications/reports_12.2.1/configuration
    • Exemple :

<?xml version="1.0" encoding="UTF-8"?>
<rwservlet xmlns="http://xmlns.oracle.com/reports/rwservlet" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<server>repsrv_1</server>
<singlesignon>no</singlesignon>
<inprocess>no</inprocess>
<webcommandaccess>L2</webcommandaccess>
</rwservlet>

  • Le fichier de config « rwserver.conf » :
    • Emplacement : $DOMAIN_HOME/config/fmwconfig/components/ReportsServerComponent/<reports_server_name>
    • Exemple :
      La configuration par défaut nécessite quelques ajustements avant que le Standalone Reports fonctionne.

<?xml version="1.0" encoding="UTF-8"?>
<server xmlns="http://xmlns.oracle.com/reports/server" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<cache class="oracle.reports.cache.RWCache">
<property name="cacheSize" value="50"/>
</cache>
<!--<engine class="oracle.reports.engine.EngineImpl" engLife="50" id="rwEng" maxEngine="1" minEngine="1">
<property name="diagnosis" value="yes"/>
</engine>-->
<engine class="oracle.reports.engine.EngineImpl" engLife="50" id="rwEng" maxEngine="1" minEngine="1" jvmOptions="-Xmx1024M -Xms128M" defaultEnvId="XXX" />
<engine class="oracle.reports.urlengine.URLEngineImpl" engLife="50" id="rwURLEng" maxEngine="1" minEngine="0"/>
<!--<security class="oracle.reports.server.RWJAZNSecurity" id="rwJaznSec"/>-->
<destination class="oracle.reports.plugin.destination.ftp.DesFTP" destype="ftp"/>
<destination class="oracle.reports.plugin.destination.webdav.DesWebDAV" destype="WebDav"/>
<!--<job engineId="rwEng" jobType="report" securityId="rwJaznSec"/>-->
<job engineId="rwEng" jobType="report"/>
<job engineId="rwURLEng" jobType="rwurl"/>
<notification class="oracle.reports.server.MailNotify" id="mailNotify">
<property name="succnotefile" value="succnote.txt"/>
<property name="failnotefile" value="failnote.txt"/>
</notification>
<jobStatusRepository class="oracle.reports.server.JobRepositoryDB">
<property name="dbpassword" value="csf:reports:repsrv1_key"/>
<property name="dbconn" value="hostnameDB:1521:<sidDB>"/>
<property name="dbuser" value="userDB"/>
</jobStatusRepository>
<connection idleTimeOut="15" maxConnect="50"/>
<queue maxQueueSize="1000"/>
<folderAccess>
<write>/donnees/app/xxx_output;/logiciel/app/tmp</write>
</folderAccess>
<environment id="XXX">
<envVariable name="REPORTS_PATH" value="/logiciel/app/xxx/ico
:/logiciel/app/xxx/rdf"/>
<envVariable name="NLS_LANG" value="FRENCH_FRANCE.WE8MSWIN1252 »/>
<envVariable name="REPORTS_TMP" value="/logiciel/app/xxx/tmp »/>
</environment>
<pluginParam value="%MAILSERVER_NAME%" name="mailServer"/>
</server>

Le Standalone Reports Server devrait être opérationnel avec ces éléments de configuration, et ci-dessous quelques exemples d’URL pour vérifier le bon fonctionnement et monitorer l’activité du Reports Server :

  • Reports Servlet : http://hostname:9002/reports/rwservlet
  • Standalone Reports Server details : http://hostname:9002/reports/rwservlet /getserverinfo