Anwendungen mit Scripting für die Sitzungsverwaltung in Webmodulen konfigurieren

Mit Scriping und dem Tool wsadmin können Sie Anwendungen für die Sitzungsverwaltung in Webmodulen konfigurieren.

Informationen zu diesem Vorgang

Sie können mit dem AdminApp-Objekt bestimmte Konfigurationen in einer Anwendung festlegen. Einige Konfigurationseinstellungen sind über das AdminApp-Objekt nicht verfügbar. Die folgende Task verwendet das Objekt "AdminConfig", um einen Sitzungsmanager für ein Webmodul in der Anwendung zu konfigurieren.

Vorgehensweise

  1. Starten Sie das wsadmin-Scripting-Tool.
  2. Geben Sie das Konfigurationsobjekt für die Implementierung an, und ordnen Sie es der Variablen "deployment" zu. Beispiel:
    • Mit Jacl:
      set deployments [$AdminConfig getid /Deployment:myApp/]
    • Mit Jython:
      deployments = AdminConfig.getid('/Deployment:myApp/')
      print deployments
    Für diese Angaben gilt Folgendes:
    Tabelle 1. Konfigurationswerte für die Implementierung. Die folgende Tabelle beschreibt die Elemente des Befehls "getid".
    Element Definition
    set Jacl-Befehl
    deployments Variablenname
    $ Ein Jacl-Operator, der einen Variablennamen durch den Wert der Variablen ersetzt
    AdminConfig Ein Objekt, das die Konfiguration von WebSphere Application Server darstellt.
    getid AdminConfig-Befehl
    Implementierung Attribut
    myApp Wert des Attributs
    Beispielausgabe:
    myApp(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Deployment_1)
  3. Rufen Sie alle Module in der Anwendung ab und ordnen Sie sie der Variablen modules zu. Beispiel:
    • Mit Jacl:
      set appDeploy [$AdminConfig showAttribute $deployments deployedObject]set mod1 [$AdminConfig showAttribute $appDeploy modules]
      set mod1 [lindex $mod1 0]
      Beispielausgabe:
      (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)
    • Mit Jython:
      appDeploy = AdminConfig.showAttribute(deployments, 'deployedObject')
      mod1 = AdminConfig.showAttribute(appDeploy, 'modules')
      print mod1
      Beispielausgabe:
      [(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)]
    Für diese Angaben gilt Folgendes:
    Tabelle 2. Werte für Anwendungsmodule. Die folgende Tabelle beschreibt die Elemente des Befehls "showAttribute AdminConfig".
    Element Definition
    set Jacl-Befehl
    appDeploy Variablenname
    mod1 Variablenname
    $ Ein Jacl-Operator, der einen Variablennamen durch den Wert der Variablen ersetzt
    AdminConfig Ein Objekt, das die Konfiguration von WebSphere Application Server darstellt.
    showAttribute AdminConfig-Befehl
    deployments ergibt nach Auswertung die ID des in Schritt 1 angegebenen Implementierungsobjekts
    deployedObject Attribut
  4. Mit dem Befehl attributes können Sie eine Liste der Attribute abrufen, die für den Sitzungsmanager festgelegt werden können. Beispiel:
    • Mit Jacl:
      $AdminConfig attributes SessionManager
    • Mit Jython:
      print AdminConfig.attributes('SessionManager')
    Für diese Angaben gilt Folgendes:
    Tabelle 3. AdminConfig-Befehl "attributes". In der folgenden Tabelle sind die Elemente für den AdminConfig-Befehl "attributes" beschrieben.
    Element Definition
    $ Ein Jacl-Operator, der einen Variablennamen durch den Wert der Variablen ersetzt
    AdminConfig Ein Objekt, das die Konfiguration von WebSphere Application Server darstellt.
    attributes AdminConfig-Befehl
    SessionManager Attribut
    Beispielausgabe:
    "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. Die Attribute für den Sitzungsmanager konfigurieren. Im folgenden Beispiel werden vier Attribute der höchsten Ebene im Sitzungsmanager konfiguriert.

    Sie können das Beispiel ändern, um andere Attribute des Sitzungsmanagers einschließlich der verschachtelten Attribute in den Objekttypen Cookie, DRSSettings, SessionDataPersistence und TuningParms festzulegen. Wenn Sie die Attribute für diese Objekttypen auflisten möchten, verwenden Sie den Befehl attributes im AdminConfig-Objekt.

    Fehler vermeiden Fehler vermeiden: Der Sitzungsmanager setzt voraus, dass Sie die Attribute "The defaultCookieSettings" und "tuningParams" setzen, bevor Sie eine Anwendung initialisieren. Wenn Sie diese Attribute nicht setzen, kann der Sitzungsmanager die Anwendung nicht initialisieren, und die Anwendung wird nicht gestartet. gotcha
    • Mit 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]
      Unterstützte Konfigurationen Unterstützte Konfigurationen: In den letzten fünf Zeilen im vorherigen Beispiel wird davon ausgegangen, dass Sie das Webmodul nur in einem einzigen Zielserver implementiert haben. Sie können ein Modul mithilfe einer Schleife in mehreren Servern oder Clustern implementieren, wenn Sie die Aktualisierung auf jedes Ziel anwenden möchten. Ersetzen Sie die letzten sechs Zeilen des vorherigen Beispiels durch den folgenden Code, um Aktualisierungen auf mehrere Ziele anzuwenden:
      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
      Beispielausgabe bei der Verwendung von Jacl:
      sessionManagement {{enableSecurityIntegration true} {maxWaitTime 30} 
      {sessionPersistenceMode NONE} {enabled true}}
    • Mit 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])
      Unterstützte Konfigurationen Unterstützte Konfigurationen: In den letzten sechs Zeilen im vorherigen Beispiel wird davon ausgegangen, dass Sie das Webmodul nur in einem einzigen Zielserver implementiert haben. Sie können ein Modul mithilfe einer Schleife in mehreren Servern oder Clustern implementieren, wenn Sie die Aktualisierung auf jedes Ziel anwenden möchten. Ersetzen Sie die letzten sechs Zeilen des vorherigen Beispiels durch den folgenden Code, um Aktualisierungen auf mehrere Ziele anzuwenden:
      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
      Beispielausgabe bei der Verwendung von Jython:
      [sessionManagement, [[enableSecurityIntegration, true], [maxWaitTime, 30], [sessionPersistenceMode, NONE]]
  6. Konfigurieren Sie die Attribute für das Webmodul. Beispiel:
    • Mit Jacl:
      set nameAttr [list name myWebModuleConfig]
      set descAttr [list description "Web Module config post create"]
      set webAttrs [list $nameAttr $descAttr $sessionMgr]
      Beispielausgabe:
      {name myWebModuleConfig} {description {Web Module config post create}} 
      {sessionManagement {{enableSecurityIntegration true} {maxWaitTime 30} 
      {sessionPersistenceMode NONE} {enabled true}}}
    • Mit Jython:
      nameAttr = ['name', 'myWebModuleConfig']
      descAttr = ['description', "Web Module config post create"]
      webAttrs = [nameAttr, descAttr, sessionMgr]
      Beispielausgabe:
      [[name, myWebModuleConfig], [description, "Web Module config post create"], 
      [sessionManagement, [[enableSecurityIntegration, true], [maxWaitTime, 30],  
      [sessionPersistenceMode, NONE], [enabled, true]]]]
    Für diese Angaben gilt Folgendes:
    Tabelle 4. Attribute für das Webmodul konfigurieren. Die folgende Tabelle beschreibt die Element für die Konfiguration der Attribute des Webmoduls.
    Element Definition
    set Jacl-Befehl
    nameAttr, descAttr, webAttrs Variablennamen
    $ Ein Jacl-Operator, der einen Variablennamen durch den Wert der Variablen ersetzt
    name Attribut
    myWebModuleConfig Wert des Attributs "name"
    description Attribut
    Webmodulkonfiguration nach create ein Wert des Attributs description
  7. Den Sitzungsmanager für jedes Webmodul in der Anwendung erstellen. Sie können dieses Beispiel so ändern, dass andere Attribute des Sitzungsmanagers in der Webmodulkonfiguration festgelegt werden. Außerdem müssen Sie für diesen Schritt eine Zielzuordnung definieren.
    • Mit 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]
      	}
      }
      Unterstützte Konfigurationen Unterstützte Konfigurationen: Sie können eine weitere optionale Schleife hinzufügen, um jedem Ziel die neue Webmodulkonfiguration zuzuordnen, wenn das Webmodul in mehreren Zielservern implementiert wird:
      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
    • Mit 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])
      Unterstützte Konfigurationen Unterstützte Konfigurationen: Sie können eine weitere optionale Schleife hinzufügen, um jedem Ziel die neue Webmodulkonfiguration zuzuordnen, wenn das Webmodul in mehreren Zielservern implementiert wird:
      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
    Beispielausgabe:
    myWebModuleConfig(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#WebModuleConfiguration_1)

    Wenn Sie das Attribut tuningParamsList beim Erstellen des Sitzungsmanagers nicht angeben, wird beim Starten der implementierten Anwendung ein Fehler ausgegeben.

  8. Speichern Sie die Konfigurationsänderungen.
    Verwenden Sie den folgenden Beispielbefehl, um Ihre Konfigurationsänderungen zu speichern:
    AdminConfig.save()
  9. Synchronisieren Sie den Knoten nur in einer Network-Deployment-Umgebung.
    Verwenden Sie das Script "syncActiveNode" oder "syncNode" aus der Scriptbibliothek "AdminNodeManagement", um die Konfigurationsänderungen an Knoten weiterzugeben.
    • Verwenden Sie das Script "syncActiveNodes", wie im folgenden Beispiel gezeigt, um die Änderungen an jeden Knoten in der Zelle weiterzugeben:
      AdminNodeManagement.syncActiveNodes()
    • Verwenden Sie das Script "syncNode", wie im folgenden Beispiel gezeigt, um die Änderungen an einen bestimmten Knoten weiterzugeben:
      AdminNodeManagement.syncNode("myNode")

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_webmodules
Dateiname:txml_webmodules.html