2012-05-03 89 views
1

是否可以通過jython腳本設置應用程序會話timout(即圖像)?Websphere 7,使用jython的會話超時

http://prntscr.com/8t1n8

+0

我已經一行做了,但感謝所有AdminConfig.create( 'TuningParams',AdminConfig.create( 'SessionManager',AdminConfig.create( 'ApplicationConfig',AdminConfig.list( 'ApplicationDeployment', AdminConfig.getid('/ Deployment:taskspace /')),[]),[]),[['invalidationTimeout',40]]) – bilak

回答

0

是的,你需要使用AdminConfig創建對象的序列:

  1. 找到WebModuleDeployment爲模塊。
  2. 根據WebModuleDeployment查找或創建WebModuleConfig子對象。
  3. WebModuleConfig下查找或創建SessionManager子對象。
  4. SessionManager下查找或創建TuningParams子對象。
  5. 設置TuningParams對象的maxInMemorySessionCount屬性。

我在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 
+0

我已經做了這樣的一行,但是要感謝所有 – bilak

+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()