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

  1. Démarrez l'outil de scriptage wsadmin.
  2. 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)
  3. 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
  4. 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"
  5. 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 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 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 :
      set 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]
          }
      }
      sptcfg
      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 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 :
      id = 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
      sptcfg
      Exemple de sortie à l'aide de Jython :
      [sessionManagement, [[enableSecurityIntegration, true], [maxWaitTime, 30], [sessionPersistenceMode, NONE]]
  6. 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
  7. 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 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 :
      foreach 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]
              } 
          }
      }
      sptcfg
    • 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 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 :
      arrayModules = 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])
      sptcfg
    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.

  8. Sauvegardez les modifications de configuration.
    Entrez l'exemple de commande suivante pour sauvegarder les modifications de configuration :
    AdminConfig.save()
  9. 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")

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_webmodules
Nom du fichier : txml_webmodules.html