Toutes les procédures stockées et fonctions définies par l'utilisateur (à l'exception des procédures SQL natives) doivent s'exécuter dans des espaces d'adressage de procédures stockées gérés par WLM. Vous devez affecter chaque procédure mémorisée dans un environnement d'application WLM, qui achemine la procédure mémorisée vers l'espace d'adresse géré par
WLM.
A propos de cette tâche
Si vous utilisez le partage de données, consultez la section Considérations spéciales pour les procédures stockées gérées par WLM en coexistence pour obtenir des conseils supplémentaires sur la configuration des environnements WLM.
Recommandation : Utilisez le PDSE (partitioned data set extended) pour les bibliothèques de chargement qui contiennent des modules externes pour les procédures stockées. L'utilisation des PDSE pourrait vous éviter d'avoir à arrêter et à redémarrer l'espace d'adressage des procédures stockées en raison de la croissance des bibliothèques de chargement. Si une bibliothèque de chargement s'agrandit en raison d'ajouts ou de remplacements, il peut être nécessaire de l'étendre.
Procédure
Pour configurer un environnement d'application WLM pour une ou plusieurs procédures stockées :
- Rassembler les exigences pour l'environnement WLM. Ces exigences comprennent :
- Nom du sous-système d' Db2 s ou du groupe de partage de données dans lequel la procédure stockée ou la fonction définie par l'utilisateur doit s'exécuter.
- Nombre maximal de blocs de contrôle de tâches (TCB) pouvant s'exécuter simultanément dans un espace d'adressage initié par l'environnement WLM. Ce paramètre, appelé NUMTCB, correspond au nombre maximal de procédures ou de fonctions qui doivent s'exécuter simultanément dans cet espace d'adressage géré par WLM. Le paramétrage approprié dépend des exigences ou des limitations de la procédure stockée individuelle ou de la fonction définie par l'utilisateur.
- Exigences relatives aux établissements autorisés à participer au programme (EAP).
- Les procédures stockées et les fonctions définies par l'utilisateur qui exécutent des instructions privilégiées (par exemple, WLM_REFRESH) doivent s'exécuter dans un environnement WLM qui dispose d'un espace d'adressage autorisé par l'APF.
- Db2 Les procédures stockées REXX, telles que DSNTPSMP, et les autres routines qui utilisent les fonctions TSO/E et REXX doivent s'exécuter dans un environnement WLM qui ne dispose pas d'un espace d'adressage autorisé par l'APF.
- La plupart des procédures stockées peuvent s'exécuter dans un environnement WLM qui dispose ou non d'un espace d'adressage autorisé par l'APF. Cependant, il est recommandé de n'exécuter une routine dans un environnement autorisé par l'APF que lorsque cela est nécessaire.
- Ensembles de données spéciaux et noms DD nécessaires à la procédure stockée ou à la fonction définie par l'utilisateur. Par exemple, toutes les procédures stockées Java™ nécessitent implicitement qu'un ensemble de données d'options d'exécution Language Environment® soit alloué au nom DD JAVAENV. D'autres routines peuvent également exiger explicitement qu'un fichier de travail soit attribué à un nom DD particulier.
- Créer une procédure de démarrage JCL pour l'environnement d'application WLM.
Utilisez ssnmWLM (où ssnm est l'ID du sous-système d' Db2 ) comme base pour créer la nouvelle procédure de démarrage. ssnmWLM est le nom par défaut de la procédure JCL d'exemple pour démarrer les espaces d'adressage établis par WLM. Si vous avez spécifié un nom dans le champ WLM PROC NAME du panneau d'installation DSNTIPX, la procédure d'exemple porte ce nom. La procédure d'échantillonnage est placée dans votre système PROCLIB par le job d'installation DSNTIJMV. Pour la procédure stockée DSNACICS, DSNTIJMV fournit également un exemple de procédure ssnmCICS, où ssnm est l'ID du sous-système. Adaptez votre nouvelle procédure de démarrage comme suit :
- Remplacez la valeur APPLENV par le nom de l'environnement d'application WLM que vous prévoyez de définir.
- Remplacez le nom de la procédure de démarrage par un nom de procédure approprié.
Recommandation : Préciser le même nom pour le nom de l'environnement d'application et le nom de la procédure. L'utilisation du même nom simplifie le suivi des définitions de l'environnement WLM.
- Remplacez la valeur de DB2SSN par le nom de votre sous-système d' Db2 .
- S'assurer que la valeur NUMTCB est appropriée. Si le nombre minimum d'espaces d'adressage est spécifié, la valeur NUMTCB sera le nombre de blocs de contrôle de tâche qui sont démarrés dans un espace d'adressage.
Recommandation : si vous souhaitez pouvoir modifier facilement la valeur NUMTCB, spécifiez la valeur NUMTCB ici et ne spécifiez pas ce paramètre dans le panneau de définition de l'environnement d'application lorsque vous définissez l'environnement d'application WLM. La spécification de NUMTCB dans le panneau de définition de l'environnement associe ce paramètre à la définition de l'environnement d'application WLM. Toute modification de la procédure de démarrage de JCL peut être effectuée en actualisant l'environnement d'application WLM. Cependant, les modifications apportées à l'environnement d'application WLM nécessitent la réinstallation de la z/OS® politique de service au niveau LPAR ou sysplex. Si vous spécifiez le paramètre NUMTCB à la fois pour l'environnement d'application WLM et pour la procédure de démarrage, la valeur de l'environnement d'application WLM remplace la valeur de la procédure de démarrage.
- Si l'environnement est tel que le coût de démarrage de nouveaux espaces d'adressage est très élevé, vous pouvez utiliser le paramètre MNSPAS. Le paramètre MNSPAS spécifie le nombre minimum d'espaces d'adressage qui doivent être démarrés et maintenus. La valeur peut être comprise entre 0 et 50. La valeur par défaut est 0, ce qui signifie qu'aucun nombre minimum d'espaces d'adressage n'est spécifié. Si le nombre d'espaces d'adresses est au minimum spécifié, l'annulation d'un espace d'adresses entraîne le démarrage d'un autre par WLM pour maintenir le minimum. Si vous actualisez un environnement WLM, WLM démarre un certain nombre de nouveaux espaces d'adressage selon les besoins (ou le nombre minimum spécifié) et arrête les anciens espaces d'adressage.
Si le paramètre MNSPAS est spécifié, la valeur NUMTCB est le nombre de blocs de contrôle de tâche qui sont démarrés dans un espace d'adressage. Si le paramètre MNSPAS n'est pas spécifié, la valeur NUMTCB est le nombre maximal de blocs de contrôle de tâches pouvant être démarrés dans un espace d'adressage.
- Modifiez les noms des ensembles de données pour qu'ils correspondent à vos noms d'ensembles de données.
- Assurez-vous que la bibliothèque dans laquelle réside la procédure stockée se trouve dans la concaténation STEPLIB.
- Assurez-vous que la bibliothèque d'exécution IBM® Language Environment est spécifiée dans la concaténation STEPLIB, sauf si votre système inclut la bibliothèque d'exécution Language Environment dans la liste des liens système.
- Si vous souhaitez exécuter la procédure stockée dans un environnement WLM disposant d'un espace d'adressage autorisé par APF, assurez-vous que toutes les bibliothèques de la concaténation STEPLIB sont définies dans l'Authorized Program Facility.
- Ajoutez toutes les instructions DD spéciales requises pour les procédures stockées ou les fonctions définies par l'utilisateur qui doivent s'exécuter dans l'environnement WLM.
L'exemple suivant montre une procédure de démarrage pour un environnement d'application WLM pour les procédures stockées SQL externes, COBOL, C, C++, PL/I et assembleur. Cette procédure de démarrage pour les procédures stockées SQL externes nécessite un ensemble de données non autorisé inclus dans STEPLIB.
//*******************************************************************
//* JCL FOR RUNNING THE WLM-ESTABLISHED STORED PROCEDURES
//* ADDRESS SPACE
//* RGN -- THE MVS REGION SIZE FOR THE ADDRESS SPACE.
//* DB2SSN -- THE DB2 SUBSYSTEM NAME.
//* NUMTCB -- THE NUMBER OF TCBS USED TO PROCESS
//* END USER REQUESTS.
//* APPLENV -- THE MVS WLM APPLICATION ENVIRONMENT
//* SUPPORTED BY THIS JCL PROCEDURE.
//*
//********************************************************************
//DB9AWLM PROC RGN=0K,APPLENV=WLMENV,DB2SSN=DB9A,NUMTCB=40,MNSPAS=3
//IEFPROC EXEC PGM=DSNX9WLM,REGION=&RGN,TIME=NOLIMIT,
// PARM='&DB2SSN,&NUMTCB,&APPLENV,&MNSPAS'
//STEPLIB DD DISP=SHR,DSN=DB9AU.RUNLIB.LOAD
// DD DISP=SHR,DSN=CEE.SCEERUN
// DD DISP=SHR,DSN=DB9A9.SDSNEXIT
// DD DISP=SHR,DSN=DB9A9.SDSNLOAD
- Définissez l'environnement d'application pour WLM en utilisant l'une des méthodes suivantes.
- Utilisez l'application d'administration WLM ( IWMARIN0 ) pour définir un nouvel environnement ou copier ou modifier un environnement existant.
- Dans le premier panneau WLM, Menu de définition, entrez 9 pour Environnements d'application.
Le panneau de définition de l'environnement d'application s'affiche.
- Dans le panneau de définition de l'environnement d'application, spécifiez le code d'action approprié :
- Créer un nouvel environnement d'application WLM.
- Copier un environnement d'application WLM existant.
- Modifier un environnement d'application WLM existant.
Le panneau approprié pour créer, copier ou modifier l'environnement de l'application s'affiche.
- Si vous créez ou modifiez un environnement WLM, spécifiez les options appropriées pour la définition de l'environnement d'application WLM, en utilisant le même nom d'environnement d'application et de procédure que celui spécifié pour la procédure de démarrage.
- Après avoir spécifié les options appropriées, appuyez sur Entrée pour créer la définition de l'environnement d'application.
- Modifier et exécuter le job d'exemple DSNTIJRW. Comme prévu, DSNTIJRW crée les environnements WLM de base d' Db2 , mais vous pouvez modifier la tâche pour définir vos propres environnements WLM. Job DSNTIJMV copie une procédure d'espace d'adressage pour chacun des environnements WLM de base d' Db2 , dans SYS1.PROCLIB.
- Installez la définition de service WLM qui contient des informations sur l'environnement d'application en ouvrant le panneau Menu de définition WLM et en sélectionnant la fonction Installer dans la barre de menus Utilitaires.
- Activez la stratégie de service WLM à partir de la définition de service installée en effectuant l'une des actions suivantes :
- Configurez la sécurité pour les environnements d'application WLM et pour la création de procédures stockées en effectuant les actions suivantes :
- Facultatif : spécifiez les espaces d'adressage établis par WLM qui peuvent exécuter des procédures stockées
Si vous ne suivez pas cette étape, tout espace d'adressage établi par WLM peut exécuter des procédures stockées.
- Accorder aux utilisateurs l'accès pour créer des procédures dans des espaces d'adressage WLM spécifiques.
- Accorder aux utilisateurs l'accès pour créer des procédures dans des schémas spécifiques. Utilisez l'instruction GRANT avec l'option CREATEIN pour le schéma approprié.
- Accorder aux utilisateurs l'accès à la création de packages pour les procédures de collections spécifiques. Utilisez l'instruction GRANT avec l'option CREATE pour la collection appropriée.
Exigence : pour les procédures SQL natives, le nom de collection du package doit être identique au nom du schéma.
- Accorder l'accès pour actualiser les environnements WLM aux personnes appropriées.
- Assurez-vous que l'ID utilisé pour exécuter la procédure de démarrage JCL pour l'environnement d'application WLM est autorisé à utiliser RRSAF.
Chaque fois que l'un des espaces d'adressage WLM d' Db2 est démarré, il utilise RRSAF pour se connecter à Db2.
Procédure à suivre
Lorsque vous créez ou modifiez une procédure stockée, spécifiez l'environnement d'application WLM que l'
Db2 e doit utiliser dans l'option WLM_ENVIRONMENT de l'instruction CREATE ou ALTER PROCEDURE. Lorsque vous spécifiez des environnements, sachez que :
- Les routines qui nécessitent peu de mémoire et qui sont fréquemment appelées ne doivent pas partager un environnement avec des routines qui nécessitent beaucoup de mémoire et qui sont rarement appelées. Sinon, le stockage est gaspillé.
- Les procédures stockées peuvent être regroupées en fonction des paramètres d'autorisation d'un environnement WLM.
- Les environnements WLM ne doivent pas être partagés entre des routines qui utilisent le même nom DD à des fins différentes.
- Les environnements WLM ne doivent pas être partagés entre les routines si une routine alloue des ensembles de données dans l'environnement et que cette routine n'est exécutée qu'occasionnellement. Si d'autres routines qui n'utilisent pas les ensembles de données utilisent l'environnement, les ensembles de données sont conservés alloués artificiellement, ce qui peut interférer avec d'autres tâches.