Use scripting and the wsadmin tool to configure applications for session management in web modules.
You can use the AdminApp object to set configurations in an application. Some configuration settings are not available through the AdminApp object. The following task uses the AdminConfig object to configure a session manager for a web module in the application.
set deployments [$AdminConfig getid /Deployment:myApp/]
deployments = AdminConfig.getid('/Deployment:myApp/')
print deployments
Element | Definition |
---|---|
set | is a Jacl command |
deployments | is a variable name |
$ | is a Jacl operator for substituting a variable name with its value |
AdminConfig | is an object that represents the WebSphere® Application Server configuration |
getid | is an AdminConfig command |
Deployment | is an attribute |
myApp | is the value of the attribute |
myApp(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Deployment_1)
set appDeploy [$AdminConfig showAttribute $deployments deployedObject]
set mod1 [$AdminConfig showAttribute $appDeploy modules]
set mod1 [lindex $mod1 0]
(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)
appDeploy = AdminConfig.showAttribute(deployments, 'deployedObject')
mod1 = AdminConfig.showAttribute(appDeploy, 'modules')
print mod1
[(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)]
Element | Definition |
---|---|
set | is a Jacl command |
appDeploy | is a variable name |
mod1 | is a variable name |
$ | is a Jacl operator for substituting a variable name with its value |
AdminConfig | is an object that represents the WebSphere Application Server configuration |
showAttribute | is an AdminConfig command |
deployments | evaluates the ID of the deployment object that is specified in step number 1 |
deployedObject | is an attribute |
$AdminConfig attributes SessionManager
print AdminConfig.attributes('SessionManager')
Element | Definition |
---|---|
$ | is a Jacl operator for substituting a variable name with its value |
AdminConfig | is an object that represents the WebSphere Application Server configuration |
attributes | is an AdminConfig command |
SessionManager | is an attribute |
"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"
You can modify the example to set other attributes in the session manager, including the nested attributes in Cookie, DRSSettings, SessionDataPersistence, and TuningParms object types. To list the attributes for those object types, use the attributes command of AdminConfig object.
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]
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]
}
}
sptcfgsessionManagement {{enableSecurityIntegration true} {maxWaitTime 30}
{sessionPersistenceMode NONE} {enabled true}}
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])
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[sessionManagement, [[enableSecurityIntegration, true], [maxWaitTime, 30], [sessionPersistenceMode, NONE]]
set nameAttr [list name myWebModuleConfig]
set descAttr [list description "Web Module config post create"]
set webAttrs [list $nameAttr $descAttr $sessionMgr]
{name myWebModuleConfig} {description {Web Module config post create}}
{sessionManagement {{enableSecurityIntegration true} {maxWaitTime 30}
{sessionPersistenceMode NONE} {enabled true}}}
nameAttr = ['name', 'myWebModuleConfig']
descAttr = ['description', "Web Module config post create"]
webAttrs = [nameAttr, descAttr, sessionMgr]
[[name, myWebModuleConfig], [description, "Web Module config post create"],
[sessionManagement, [[enableSecurityIntegration, true], [maxWaitTime, 30],
[sessionPersistenceMode, NONE], [enabled, true]]]]
Element | Definition |
---|---|
set | is a Jacl command |
nameAttr, descAttr, webAttrs | are variable names |
$ | is a Jacl operator for substituting a variable name with its value |
name | is an attribute |
myWebModuleConfig | is a value of the name attribute |
description | is an attribute |
Web Module config post create | is a value of the description attribute |
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]
}
}
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]
}
}
}
sptcfgarrayModules = 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])
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])
sptcfgmyWebModuleConfig(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#WebModuleConfiguration_1)
If you do not specify the tuningParamsList attribute when you create the session manager, you will receive an error when you start the deployed application.
AdminConfig.save()