Mise en œuvre de Sybase XP Server


1- Introduction

Sybase XP Server est un serveur permettant l'utilisation des ESP (Extended Stored Procedures - Procédures stockées étendues). ASE fournit un jeu d'ESP standards. Les noms des procédures stockées étendues commencent en terme de nomenclature par "xp_" et sont localisées dans la base de données sybsystemprocs.

1-1- Introduction sur les ESP (Extended Stored Procedures)

Une procédure ESP exécute un langage procédural au lieu de commandes Transact-SQL. Une ESP système est invoquée comme une procédure système.

xp_cmdshell est à titre d'exemple une procédure stockée système étendue très utile, puisque cette dernière permet d'exécuter des commandes propres au système d'exploitation.

1-2- ESP et XP Server

Toutes les procédures étendues ESP sont implémentées par un Open Server : XP Server. Ce dernier s'exécute sur la même machine qu'Adaptive Server. XP Server démarre automatiquement lors de la première invocation d'une procédure ESP. XP Server doit être référencé dans le fichier interfaces.

2- Mise en œuvre

2-1- Démarrage de XP Server

Dans la plupart des cas, le serveur Sybase XPServer n'a pas à être démarré manuellement, puisque l'invocation d'une ESP déclenche automatiquement le démarrage de ce dernier serveur. Toutefois pour démarrer manuellement le serveur Sybase XP Server, la commande est indiquée ci-après :

xpserver -SXP_Server

où XP_Server est le nom du serveur XP dans le fichier interfaces et xpserver est un binaire disponible dans le répertoire $SYBASE/ASE-12_x/bin. 

2-2- Généralités sur les ESPs

2-2-1- Création de procédures étendues ESPs

Après avoir créé, compilé et lié une fonction ESP dans une bibliothèque (DLL, so etc...), il est alors possible de créer la procédure ESP pour la fonction en question grâce à la syntaxe ci-dessous :

create procedure procedure_name [liste des paramètres] as external name dll_name

Le nom de la procédure ESP doit impérativement le même que le nom de la fonction dans la bibliothèque. Exemples : NT

create procedure getmsgs as external name "msgs.dll"

Unix (Sun Solaris et Digital)

create procedure getmsgs as external name "msgs.so"

Pour HP, l'extension des dlls est *.sl.

Pour connaître la bibliothèque associée à une procédure ESP, la procédure sp_helpextendedproc fournit cette information. Syntaxe :

sp_helpextendedproc ESP_procedure_name

2-2-2- Comportement de XP Server / Performances des procédures ESPs

Les bibliothèques sont chargées en mémoire par XP Server en réponse à une requête d'exécution d'une procédure ESP. Ces dernières bibliothèques demeurent en mémoire sauf dans les cas particuliers suivants :

D'autres paramètres de configuration permettent de contrôler les performances des ESPs et par voie de conséquence le comportement général de XP Server lors de la montée en charge des bibliothèques. Ces derniers paramètres sont listés ci-dessous :

2-3- Procédures ESP Système

ASE fournit en standard des ESPs système, la liste de ces ESP standards (installées dans sybsystemprocs) dépend très fortement de la plateforme sur laquelle est installée le serveur Sybase. Ces dernières sont installées avec installmaster au cours de l'installation d'un serveur ASE et résident dans sybsystemprocs.

Exemples :

xp_cmdshell 'copy C:\log A:\log.0102', no_output
xp_sendmail @recipient = "sally";"ramon",
    @subject = "Adaptive Server Backup Status",
    @message = "Adaptive Server Backup for SERVER2 is complete.",
    @copy_recipient="admin"

Plusieurs procédures stockées étendues spécifiques de Windows NT offrent des fonctionnalités Windows NT, telles que la journalisation des événements et la prise en charge de la messagerie ASE.


Annexe

Historique

Version Date Commentaires
1.0 07/2002 Version initiale

Liens

Adaptive Server Enterprise Monitor 15.0.2, Utility guide xpserver
Adaptive Server Enterprise Monitor 15.0.2, Transact SQL User's guide, Using Extended Stored Procedures