Section courante

A propos

Section administrative du site

Utilisation d'ELMAH avec Oracle

ELMAH prend en charge la journalisation des erreurs dans une base de données Oracle à l'aide d'OracleErrorLog. Cette implémentation n'est pas prise en charge dans la version 1.0 de .NET Framework, car elle repose sur le client Microsoft Oracle, introduit avec la version 1.1 du cadre d'application.

Configuration de votre base de données

Pour utiliser OracleErrorLog, vous devez d'abord configurer votre base de données. Le code source d'ELMAH inclut un fichier nommé Oracle.sql, constituant la base de toutes vos actions.

La méthode simple

La méthode la plus simple pour mettre en place votre base de données est la suivante :

Remarque : Pour exécuter le script, l'utilisateur connecté devra disposer des privilèges CREATE TABLE, CREATE PROCEDURE et CREATE SEQUENCE.

Notez également que si vous optez pour cette méthode, vous vous connecterez probablement à Oracle (via ELMAH) en tant que propriétaire de ces objets.

La méthode «DBA»

La plupart des déploiements Oracle nécessitent une légère configuration. Avant de commencer, lisez donc le script et familiarisez-vous avec tous les commentaires (préfixés par --).

Vous (ou votre administrateur de base de données !) devrez maintenant prendre quelques décisions concernant la sécurité Oracle.

1) Quel utilisateur sera propriétaire des données Elmah dans Oracle ?

Il vous suffit de vous connecter avec cet utilisateur (ayant besoin des privilèges CREATE TABLE, CREATE PROCEDURE et CREATE SEQUENCE) et d'exécuter le script disponible dans l'URL ci-dessus.

Vous pouvez également supprimer le commentaire de l'élément --TABLESPACE pour spécifier l'emplacement d'entreposage des données Elmah. Si le propriétaire ne dispose pas des privilèges mentionnés ci-dessus, vous pouvez créer les objets en tant qu'administrateur de base de données dans le schéma de l'utilisateur souhaité. Pour ce faire, modifiez toutes les instructions CREATE afin qu'elles soient qualifiées avec le schéma du propriétaire, par exemple : CREATE TABLE owner.elmah$error,...

2) Quel utilisateur se connectera au schéma via ASP.NET ?

Si vous prévoyez d'utiliser le propriétaire des données, vous n'avez rien d'autre à faire, car votre base de données est configurée et prête à l'emploi. Cependant, pour sécuriser les données, vous devrez accorder les privilèges d'exécution (GRANT EXECUTE) sur les paquets Oracle pkg_elmah$log_error et pkg_elmah$get_error. Les commentaires à la fin du fichier Oracle.sql vous proposent trois options.

Remarque : si vous optez pour cette approche, vous devrez définir le paramètre schemaOwner dans votre fichier web.config. Dans ce cas, consultez l'exemple de fichier web.config pour plus de détails.

Configuration d'ELMAH

Vous devez maintenant configurer votre fichier web.config pour utiliser Elmah, et plus particulièrement l'implémentation Oracle. Le meilleur point de départ est de consulter l'exemple de fichier web.config, contenant des exemples commentés de configuration d'Elmah avec chaque implémentation disponible, y compris Oracle.

Remarque : Vous pouvez utiliser l'implémentation Oracle sur plusieurs sites web ou disposer d'une base de données distincte pour chacun. Vous pouvez définir un nom d'application pour chaque site web à l'aide du paramètre applicationName="xxx", ou laisser Elmah déduire le nom de l'application lui-même.

Voici un exemple pour ASP.NET 2.0 :

<elmah>
     <!--
     Permet de consigner les erreurs dans Oracle via ASP.NET 2.0. Définissez la valeur de l'attribut connectionStringName sur
     le nom des paramètres de chaîne de connexion à utiliser dans la section <connectionStrings>.

     Le paramètre schemaOwner est facultatif. Utilisez-le si le propriétaire du paquet ELMAH (pkg_elmah$error) n'est pas le même 
     utilisateur que celui que vous utilisez pour vous connecter à la base de données.

     -->

          
     <errorLog type="Elmah.OracleErrorLog, Elmah" 
          schemaOwner ="elmah_package_owner" />
          connectionStringName="elmah_oracle_connection_string" />
</elmah>


Dernière mise à jour : Mercredi, le 23 novembre 2022