Configuration d'application pour la gestion de session dans des modules Web à l'aide de scripts
A l'aide de scripts et de l'outil wsadmin, configurez des applications pour la gestion de session dans les modules Web.
Pourquoi et quand exécuter cette tâche
L'objet AdminApp permet de définir des configurations dans une application. Certains paramètres de configuration ne sont pas accessibles via l'objet AdminApp. La tâche suivante utilise l'objet AdminConfig pour configurer un gestionnaire de sessions pour un module Web dans l'application.
Procédure
- Démarrez l'outil de scriptage wsadmin.
- Identifiez l'objet de configuration de déploiement pour l'application et affectez-le à la variable de déploiement. Exemple :
- A l'aide de Jacl :
set deployments [$AdminConfig getid /Deployment:myapp/]
- Avec Jython :
deployments = AdminConfig.getid('/Deployment:myApp/') print deployments
où :Tableau 1. Valeurs de configuration de déploiement. Le tableau suivant décrit les éléments de la commande getid. Elément Définition set est une commande Jacl deployments est un nom de variable $ est un opérateur Jacl permettant de remplacer un nom de variable par sa valeur AdminConfig est un objet représentant la configuration WebSphere Application Server getid est une commande AdminConfig Déploiement est un attribut myApp est la valeur de l'attribut Exemple de sortie :myApp(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Deployment_1)
- Extrayez tous les modules dans l'application et affectez-les à la variable modules. Exemple :
- A l'aide de Jacl :
set appDeploy [$AdminConfig showAttribute $deployments deployedObject] set mod1 [$AdminConfig showAttribute $appDeploy modules] set mod1 [lindex $mod1 0]
Exemple de sortie :(cells/mycell/applications/myApp.ear/deployments/myApp:deployment.xml#WebModuleDeployment_1) (cells/mycell/applications/myApp.ear/deployments/myApp:deployment.xml#EJBModuleDeployment_1) (cells/mycell/applications/myApp.ear/deployments/myApp:deployment.xml#WebModuleDeployment_2)
- Avec Jython :
appDeploy = AdminConfig.showAttribute(deployments, 'deployedObject') mod1 = AdminConfig.showAttribute(appDeploy, 'modules') print mod1
Exemple de sortie :[(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#WebModuleDeployment_1) (cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#EJBModuleDeployment_1) (cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#EJBModuleDeployment_2)]
où :Tableau 2. Valeurs de module d'application. Le tableau suivant décrit les éléments de la commande showAttribute AdminConfig. Elément Définition set est une commande Jacl appDeploy est un nom de variable mod1 est un nom de variable $ est un opérateur Jacl permettant de remplacer un nom de variable par sa valeur AdminConfig est un objet représentant la configuration WebSphere Application Server showAttribute est une commande AdminConfig deployments a pour valeur l'ID de l'objet déploiement spécifié à l'étape numéro 1 deployedObject est un attribut - Pour obtenir une liste des attributs que vous pouvez définir pour un gestionnaire de session, utilisez la commande attributes. Exemple :
- A l'aide de Jacl :
$AdminConfig attributes SessionManager
- Avec Jython :
print AdminConfig.attributes('SessionManager')
où :Tableau 3. Commande attributes AdminConfig. Le tableau suivant décrit les éléments de la commande attributes AdminConfig. Elément Définition $ est un opérateur Jacl permettant de remplacer un nom de variable par sa valeur AdminConfig est un objet représentant la configuration WebSphere Application Server attributes est une commande AdminConfig SessionManager est un attribut Exemple de sortie :"accessSessionOnTimeout Boolean" "allowSerializedSessionAccess Boolean" "context ServiceContext@" "defaultCookieSettings Cookie" "enable Boolean" "enableCookies Boolean" "enableProtocolSwitchRewriting Boolean" "enableSSLTracking Boolean" "enableSecurityIntegration Boolean" "enableUrlRewriting Boolean" "maxWaitTime Integer" "properties Property(TypedProperty)*" "sessionDRSPersistence DRSSettings" "sessionDatabasePersistence SessionDatabasePersistence" "sessionPersistenceMode ENUM(DATABASE, DATA_REPLICATION, NONE)" "tuningParams TuningParams"
- Configurez les attributs pour le gestionnaire de session. L'exemple ci-dessous définit quatre attributs de niveau supérieur dans le gestionnaire de session.
Vous pouvez modifier l'exemple afin de définir d'autres attributs dans le gestionnaire de session incluant les attributs imbriqués dans les types d'objet Cookie, DRSSettings, SessionDataPersistence et TuningParms. Pour répertorier les attributs de ces types d'objet, utilisez la commande attributesde l'objet AdminConfig.
Eviter les incidents: Le gestionnaire de session exige que vous définissiez les attributs defaultCookieSettings et tuningParams avant d'initialiser une application. Si vous ne définissez pas ces attributs, le gestionnaire de session ne peut pas initialiser l'application et cette dernière ne démarre pas. gotcha
- A l'aide de Jacl :
set attr0 [list enable true] set attr1 [list enableSecurityIntegration true] set attr2 [list maxWaitTime 30] set attr3 [list sessionPersistenceMode NONE] set attr4 [list enableCookies true] set attr5 [list invalidationTimeout 45] set tuningParmsDetailList [list $attr5] set tuningParamsList [list tuningParams $tuningParmsDetailList] set pwdList [list password 95ee608] set userList [list userId Administrator] set dsNameList [list datasourceJNDIName jdbc/session] set dbPersistenceList [list $dsNameList $userList $pwdList] set sessionDBPersistenceList [list $dbPersistenceList] set sessionDBPersistenceList [list sessionDatabasePersistence $dbPersistenceList] set kuki [list maximumAge 1000] set cookie [list $kuki] set cookieSettings [list defaultCookieSettings $cookie] set sessionManagerDetailList [list $attr0 $attr1 $attr2 $attr3 $attr4 $cookieSettings $tuningParamsList $sessionDBPersistenceList] set sessionMgr [list sessionManagement $sessionManagerDetailList] set id [$AdminConfig create ApplicationConfig $appDeploy [list $sessionMgr] configs] set targetMappings [lindex [$AdminConfig showAttribute $appDeploy targetMappings] 0] set attrs [list config $id] $AdminConfig modify $targetMappings [list $attrs]
Configurations prises en charge: Les cinq dernières lignes de l'exemple précédent supposent le déploiement du module Web sur un seul serveur cible. Vous pouvez cibler un module sur des clusters ou des serveurs multiples, à l'aide d'une boucle, si vous voulez appliquer la mise à jour à chaque cible. Remplacez les six dernières lignes de l'exemple précédents par le code suivant pour appliquer les mises à jour à plusieurs cibles :
sptcfgset id [$AdminConfig create ApplicationConfig $appDeploy [list $sessionMgr] configs] set targetMappings [lindex [$AdminConfig showAttribute $appDeploy targetMappings] 0] foreach target $targetMappings { if {[regexp DeploymentTargetMapping $target] == 1} { set attrs [list config $id] $AdminConfig modify $target [list $attrs] } }
Exemple de sortie à l'aide de Jacl :sessionManagement {{enableSecurityIntegration true} {maxWaitTime 30} {sessionPersistenceMode NONE} {enabled true}}
- Avec Jython :
attr0 = ['enable', 'true'] attr1 = ['enableSecurityIntegration', 'true'] attr2 = ['maxWaitTime', 30] attr3 = ['sessionPersistenceMode', 'NONE'] attr4 = ['enableCookies', 'true'] attr5 = ['invalidationTimeout', 45] tuningParmsDetailList = [attr5] tuningParamsList = ['tuningParams', tuningParmsDetailList] pwdList = ['password', '95ee608'] userList = ['userId', 'Administrator'] dsNameList = ['datasourceJNDIName', 'jdbc/session'] dbPersistenceList = [dsNameList, userList, pwdList] sessionDBPersistenceList = [dbPersistenceList] sessionDBPersistenceList = ['sessionDatabasePersistence', dbPersistenceList] kuki = ['maximumAge', 1000] cookie = [kuki] cookieSettings = ['defaultCookieSettings', cookie] sessionManagerDetailList = [attr0, attr1, attr2, attr3, attr4, cookieSettings, tuningParamsList, sessionDBPersistenceList] sessionMgr = ['sessionManagement', sessionManagerDetailList] id = AdminConfig.create('ApplicationConfig', appDeploy,[sessionMgr], 'configs') targetMappings = AdminConfig.showAttribute(appDeploy, 'targetMappings') targetMappings = targetMappings[1:len(targetMappings)-1] print targetMappings attrs = ['config', id] AdminConfig.modify(targetMappings,[attrs])
Configurations prises en charge: Les six dernières lignes de l'exemple précédent supposent le déploiement du module Web sur un seul serveur cible. Vous pouvez cibler un module sur des clusters ou des serveurs multiples, à l'aide d'une boucle, si vous voulez appliquer la mise à jour à chaque cible. Remplacez les six dernières lignes de l'exemple précédents par le code suivant pour appliquer les mises à jour à plusieurs cibles :
sptcfgid = AdminConfig.create('ApplicationConfig', appDeploy,[sessionMgr], 'configs') targetMappings = AdminConfig.showAttribute(appDeploy, 'targetMappings') targetMappings = targetMappings[1:len(targetMappings)-1].split(" ") for target in targetMappings: if target.find('DeploymentTargetMapping') != -1: attrs = ['config', id] AdminConfig.modify(target,[attrs]) #endif #endfor
Exemple de sortie à l'aide de Jython :[sessionManagement, [[enableSecurityIntegration, true], [maxWaitTime, 30], [sessionPersistenceMode, NONE]]
- Configurez les attributs du module Web. Exemple :
- A l'aide de Jacl :
set nameAttr [list name myWebModuleConfig] set descAttr [list description "Web Module config post create"] set webAttrs [list $nameAttr $descAttr $sessionMgr]
Exemple de sortie :{name myWebModuleConfig} {description {Web Module config post create}} {sessionManagement {{enableSecurityIntegration true} {maxWaitTime 30} {sessionPersistenceMode NONE} {enabled true}}}
- Avec Jython :
nameAttr = ['name', 'myWebModuleConfig'] descAttr = ['description', "Web Module config post create"] webAttrs = [nameAttr, descAttr, sessionMgr]
Exemple de sortie :[[name, myWebModuleConfig], [description, "Configuration de module Web après création"], [sessionManagement, [[enableSecurityIntegration, true], [maxWaitTime, 30], [sessionPersistenceMode, NONE], [enabled, true]]]]
où :Tableau 4. Configuration des attributs du module Web. Le tableau suivant décrit les éléments de définition des attributs du module Web. Elément Définition set est une commande Jacl nameAttr, descAttr, webAttrs sont des noms de variable $ est un opérateur Jacl permettant de remplacer un nom de variable par sa valeur name est un attribut myWebModuleConfig est une valeur de l'attribut name description est un attribut Web Module config post create est une valeur de l'attribut description - Créez le gestionnaire de session pour chaque module Web dans l'application.
Vous pouvez modifier l'exemple ci-dessous pour définir d'autres attributs du gestionnaire de session dans la configuration du module Web. Vous devez également définir un mappage cible dans cette procédure.
- Avec Jacl :
foreach module $mod1 { if {[regexp WebModuleDeployment $module] == 1} { set moduleConfig [$AdminConfig create WebModuleConfig $module $webAttrs] set targetMappings [lindex [$AdminConfig showAttribute $module targetMappings] 0] set attrs [list config $moduleConfig] $AdminConfig modify $targetMappings [list $attrs] } }
Configurations prises en charge: Vous pouvez ajouter une boucle supplémentaire en option pour attribuer une nouvelle configuration de module Web à chaque cible, si le module Web est déployé sur plusieurs serveurs cible :
sptcfgforeach module $mod1 { if {[regexp WebModuleDeployment $module] == 1} { set moduleConfig [$AdminConfig create WebModuleConfig $module $webAttrs] set targetMappings [lindex [$AdminConfig showAttribute $module targetMappings] 0] foreach target $targetMappings { if {[regexp DeploymentTargetMapping $target] == 1} { set attrs [list config $moduleConfig] $AdminConfig modify $target [list $attrs] } } }
- Avec Jython :
arrayModules = mod1[1:len(mod1)-1].split(" ") for module in arrayModules: if module.find('WebModuleDeployment') != -1: AdminConfig.create('WebModuleConfig', module, webAttrs) targetMappings = targetMappings[1:len(targetMappings)-1] attrs = ['config', moduleConfig] AdminConfig.modify (targetMappings, [attrs])
Configurations prises en charge: Vous pouvez ajouter une boucle supplémentaire en option pour attribuer une nouvelle configuration de module Web à chaque cible, si le module Web est déployé sur plusieurs serveurs cible :
sptcfgarrayModules = mod1[1:len(mod1)-1].split(" ") for module in arrayModules: if module.find('WebModuleDeployment') != -1: moduleConfig = AdminConfig.create('WebModuleConfig', module, webAttrs) attrs = ['config', moduleConfig] targetMappings = AdminConfig.showAttribute(appDeploy, 'targetMappings') targetMappings = targetMappings[1:len(targetMappings)-1].split(" ") for target in targetMappings: if target.find('DeploymentTargetMapping') != -1: attrs = ['config', moduleConfig] AdminConfig.modify(target,[attrs])
Exemple de sortie :myWebModuleConfig(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#WebModuleConfiguration_1)
Si vous ne définissez pas l'attribut tuningParamsList lors de la création du gestionnaire de session, vous obtiendrez une erreur au démarrage de l'application déployée.
- Sauvegardez les modifications de configuration. Entrez l'exemple de commande suivante pour sauvegarder les modifications de configuration :
AdminConfig.save()
- Dans un environnement de déploiement en réseau uniquement, synchronisez le noeud. Utilisez les scripts syncActiveNode ou syncNode de la bibliothèque de scripts AdminNodeManagement pour propager les modifications de configuration sur un ou plusieurs noeudsµµ.
- Utilisez le script syncActiveNodes pour propager les modifications sur chacun des noeuds dans la cellule, comme dans l'exemple suivant :
AdminNodeManagement.syncActiveNodes()
- Utilisez le script syncNode pour propager les modifications sur un noeud spécifique, comme dans l'exemple suivant :
AdminNodeManagement.syncNode("myNode")
- Utilisez le script syncActiveNodes pour propager les modifications sur chacun des noeuds dans la cellule, comme dans l'exemple suivant :


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_webmodules
Nom du fichier : txml_webmodules.html