jeudi 28 février 2013

Gérer les DBMS_JOB des autres schémas

Enfin terminé les restrictions concernant la gestion des jobs (DBMS_JOBS) appartenant aux autres schémas !!! Vous ne verrez plus le message :
ORA-23421: job number 99 is not a job in the job queue
Il suffit d'utiliser le package "dbms_ijob". Ce package permet, en tant que DBA, de gérer les jobs des autres utilisateurs. Je ne l'ai pas explorer mais tout semble indiquer que le package "dbms_ijob" peut être utilisé de la même façon que "dbms_job".

Selon Tom Kyte, le package "dbms_job" est le seul package supporté par Oracle donc, à utiliser avec modération au cas où... En passant, le caractère "I" dans "IJOB" signifie  "internal".

mardi 5 février 2013

Utilisation d'Embedded PL/SQL Gateway (EPG)


Embedded PL/SQL gateway (EPG) est intégré à la base de données, plus précisément à Oracle XML DB HTTP listener. Oracle XML DB HTTP listener et Embedded PL/SQL gateway agit au même titre qu'Oracle HTTP Server (OHS) avec mod_plsql et procure les mêmes fonctionnalités internes. Le principale avantage d'utiliser EPG est son architecture très simple qui permet un déploiement simple et rapide (2-tiers) avec une configuration minimale pour une utilisation soit personnelle, de tests ou tout simplement temporaire.

D'un point de vue sécurité, EPG n'est pas l'architecture recommandée pour les applications déployées en production. EPG est principalement utilisé pour des environnements de développement, de tests ou d'autres environnements internes impliquant peu d'utilisateurs. EPG n'est pas la solution idéale pour desservir une application critique accédée par une multitude d'utilisateurs.

Embedded PL/SQL gateway utilise l'architecture partagée (shared server) de la base de données Oracle. Dans cette situation, la valeur du paramètre "SHARED_SERVERS" doit être ajustée pour s'assurer qu'elle soit optimale et en mesure de répondre au nombre d'utilisateurs qui accèdent aux applications sous APEX. La valeur du paramètre "SHARED_SERVERS" peut être vérifiée en exécutant la commande suivante :
show parameter shared_servers
Par défaut la valeur du paramètre est "1". Si cette valeur reste ainsi, cela aura pour effet de provoquer de la contention lors de l'accès aux applications car il n'y a qu'un seul processus pour gérer les requêtes initiées par les utilisateurs.

Les désavantages à utiliser "Embedded PL/SQL gateway" versus "Oracle HTTP Server" sont :

  • plus grande sollicitation de la base de données
  • plus difficile à diagnostiquer les problèmes (utilisation d'API)
  • moins de fonctionnalités et de souplesse
  • configuration plus limitée et ardue
  • aucune répartition de la charge ou de fonctionnalité de basculement (failover)
  • impossible d'installer EPG sur un serveur autre que celui de la base de données ce qui oblige :
    • d'exposer la base de données directement sur Internet
    • si arrêt de base de données alors arrêt du serveur web aussi (données statiques inaccessibles)

Je n'ai fait aucune mention d'APEX Listener et c'était volontaire. Lors de nos plus récentes mises à l'essai de ce produit, il était plus ou moins évident à configurer et je considère qu'il manque un peu de maturité. N'empêche qu'il est de plus en plus intéressant car Oracle investit beaucoup de temps à développer cette nouvelle solution qui saura répondre davantage aux besoins actuels et futurs. Je vous conseille de gardez un oeil sur APEX Listener car il est voué à un bel avenir.