是否可以通过jython脚本设置应用程序会话超时(即图像)?
答案 0 :(得分:1)
在下面的代码段中,更改节点名称和服务器名称以匹配您自己的名称。使用' invalidationTimeout'用于指定会话超时的属性(在下面的示例中设置为45分钟),您还可以指定其他相关属性,如下所示。
server = AdminConfig.getid("/Node:was7host01Node01/Server:server1")
sms=AdminConfig.list("SessionManager",server)
AdminConfig.modify(sms,'[[tuningParams [[allowOverflow "true"] [invalidationTimeout "45"] [maxInMemorySessionCount "1000"]]]]')
AdminConfig.save()
答案 1 :(得分:0)
是的,你需要使用AdminConfig
来创建这个对象序列:
WebModuleDeployment
。WebModuleConfig
下找到或创建WebModuleDeployment
子对象。SessionManager
。WebModuleConfig
子对象
TuningParams
。SessionManager
子对象
maxInMemorySessionCount
对象的TuningParams
属性。我不熟悉Jython,但下面的Jacl脚本应该这样做。如果您熟悉WAS中的Jython脚本,那么翻译应该很简单。
set appName myApp
set modName myWeb.war
set maxInMemorySessionCount 1000
# Find the WebModuleDeployment.
set appDepl [$AdminConfig getid /Deployment:$appName/]
foreach webModDepl [$AdminConfig list WebModuleDeployment $appDepl] {
set uri [$AdminConfig showAttribute $webModDepl uri]
if {$uri == $modName} {
# Find or create the WebModuleConfig.
set webModCfg [$AdminConfig list WebModuleConfig $webModDepl]
if {[string length $webModCfg] == 0} {
puts "Adding WebModuleConfig to $webModDepl"
set webModCfg [$AdminConfig create WebModuleConfig $webModDepl {}]
}
# Find or create the SessionManager.
set sessionManager [$AdminConfig list SessionManager $webModCfg]
if {[string length $sessionManager] == 0} {
puts "Adding SessionManager to $webModCfg"
set sessionManager [$AdminConfig create SessionManager $webModCfg {}]
}
# Find or create the TuningParams.
set tuningParams [$AdminConfig list TuningParams $sessionManager]
if {[string length $tuningParams] == 0} {
puts "Adding TuningParams to $sessionManager"
set tuningParams [$AdminConfig create TuningParams $sessionManager {}]
}
# Set the maxInMemorySessionCount parameter.
puts "Setting maxInMemorySessionCount=$maxInMemorySessionCount in $tuningParams"
$AdminConfig modify $tuningParams [list [list maxInMemorySessionCount $maxInMemorySessionCount]]
}
}
$AdminConfig save