Modernisation Oracle Forms

Le passage d'une clé du fichier “cgicmd.dat” renvoie l'erreur “REP-52005-Specified Key Does Not Exist

S'APPLIQUE À : Oracle Reports Developer

Oracle Reports Developer - Version 10.1.2.0.2 et suivantes
Les informations de ce document s'appliquent à toutes les plateformes.

SYMPTÔMES

Lorsque vous utilisez le fichier cgicmd.dat pour passer la chaîne de connexion Username/Password@database et que vous exécutez le rapport avec rwservlet en passant une clé :

http://host:port/reports/rwservlet?cmdkey=keyname&server=servername&destype= 
cache&desformat=pdf&report=reportname.rdf&cmdfile=/directory/cmdfile.view¶mform=no

L'erreur suivante se produit :

REP-52005: The specified key 'keyname' does not exist in key map file.

Le fichier cgicmd.dat contient les entrées suivantes

KEYNAME1: userid=username/password@database %*
KEYNAME2: userid=username/password@database %*

et le fichier rwservlet.properties (10Gr2) contient :

RELOAD_KEYMAP=YES

CAUSE : fichier cgicmd.dat

Il manque, dans le fichier cgicmd.dat, une ligne vide après chaque clé et à la fin du fichier.

SOLUTION : versions 10gR2 et 11g

Pour les versions 10gR2

1. Faites une copie de sauvegarde du fichier

 ORACLE_HOME/reports/conf/cgicmd.dat

2. Insérez une ligne vide entre toutes les clés ainsi qu'à la fin du fichier.

Exemple d'entrée :

KEYNAME1: userid=username/password@database %*
KEYNAME2: userid=username/password@database %*


Pour les versions 11g

  • Le fichier cgicmd.dat se trouve dans le répertoire DOMAIN_HOME/config/fmwconfig/servers/WLS_REPORTS/applications/reports_11.1.1.2.0/configuration (11.1.1.2 et suivantes)
  • Par défaut, la propriété "reloadkeymap" vaut NO ; elle ne figure pas par défaut dans le fichier rwservlet.properties, mais sa valeur reste NO.
  • La valeur NO signifie que vous devez redémarrer le serveur géré WLS_REPORTS pour que la servlet tienne compte des modifications du fichier cgicmd.dat
  • La valeur YES signifie que le fichier cgicmd.dat est rechargé à chaque fois : il n'est donc pas nécessaire de redémarrer WLS_REPORTS
  • Le fichier rwservlet.properties se trouve dans le répertoire DOMAIN_OME/config/fmwconfig/servers/WLS_REPORTS/applications/reports_11.1.1.2.0/configuration (11.1.1.2 et suivantes)

Référence

Note 1083666.1 - Location Of Different Reports Configuration Files in Fusion Middleware Forms and Reports 11.1.1.1 and 11.1.1.2 Installations


Remarque importante

Les propriétés du fichier rwservlet.properties suivent un ordre précis et ne peuvent pas être placées dans un ordre différent.
Voici l'ordre de toutes les propriétés du fichier rwservlet.properties

<xs:sequence>
<xs:element name="server" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="singlesignon" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="inprocess" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="reports_servermap" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element ref="cookie" minOccurs="0" maxOccurs="1"/>
<xs:element name="defaultcharset" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element ref="webcommandaccess" minOccurs="0" maxOccurs="1"/>
<xs:element name="allowhtmltags" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="helpurl" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="imageurl" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="reloadkeymap" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="dbauth" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="sysauth" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="errortemplate" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element ref="diagtags" minOccurs="0" maxOccurs="1"/>
<xs:element ref="cluster" minOccurs="0" maxOccurs="1"/>
<xs:element ref="oidconnection" minOccurs="0" maxOccurs="1"/>
<xs:element name="allowauthid" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="enabledbproxy" type="xs:string" minOccurs="0" maxOccurs="1"/>
<!--xs:element ref="trace" minOccurs="0" maxOccurs="1"/-->
</xs:sequence>
  • Le bon format pour définir la propriété "reloadkeymap" dans le fichier rwservlet.properties est le suivant :

<reloadkeymap>yes</reloadkeymap>

Si vous avez modifié manuellement le fichier cgicmd.dat pour y ajouter des entrées, vous devez redémarrer le serveur géré WLS_REPORTS, car la propriété "reloadkeymap" vaut NO par défaut

Si vous voulez passer la propriété "reloadkeymap" à YES, vous devez l'ajouter au fichier rwservlet.properties en ajoutant la propriété suivante

<reloadkeymap>yes</reloadkeymap>

**** Il est très important que les éléments du fichier rwservlet.properties respectent l'ordre ci-dessus, comme l'explique la "remarque importante"

Après cette modification du fichier rwservlet.properties, vous devez redémarrer le serveur géré WLS_REPORTS


Il est possible d'ajouter des entrées au fichier cgicmd.dat à partir d'Enterprise Manager, au moyen du navigateur MBean (Mbean browser). Pour plus de détails, consultez la note de support suivante

Note 1296010.1 - How to Update CGICMD.DAT Using System Mbean Browser 1296010.1