Websphere jython获取正确的配置id
我需要找到获取特定配置对象的对象id的方法,但我似乎无法获得我想要的结果 考虑以下代码:Websphere jython获取正确的配置id,websphere,jython,Websphere,Jython,我需要找到获取特定配置对象的对象id的方法,但我似乎无法获得我想要的结果 考虑以下代码: wsadmin>print AdminConfig.list('SessionManager') (cells/labwas11Node01Cell/applications/isclite.ear/deployments/isclite|deployment.xml#SessionManager_1162483845425) (cells/labwas11Node01Cell/nodes/labwa
wsadmin>print AdminConfig.list('SessionManager')
(cells/labwas11Node01Cell/applications/isclite.ear/deployments/isclite|deployment.xml#SessionManager_1162483845425)
(cells/labwas11Node01Cell/nodes/labwas11/servers/server1|server.xml#SessionManager_1183122130078)
有没有办法用狡猾的AdminConfig.getid只获取第二行
我刚刚读了一篇关于对象名和包含路径的好文章,这有助于理解我的问题,但没有提供解决方案
我已经找到了一个方法来获取我的信息,但我相信有一个更好的方法。。。如果有人能帮忙,那就太好了
因此,我需要服务器的会话管理器,但我有另一个为应用程序定义的会话管理器
所以AdminConfig.list不够好
我能做的是,我想要的会话管理器有一个反映其上下文的属性。
(为了清晰起见,我删除了一些行)
上下文对象是此会话管理器应用的WebContainer
因此,我应该能够比较这两者,并找到我想要的会话管理器
SesMgrList = AdminConfig.list('SessionManager').splitlines()
for SesMgr in SesMgrList:
if AdminConfig.showAttribute( SesMgr, 'context') == AdminConfig.list('WebContainer'):
Modify my session manager custom properties
但这一点都不优雅。。。任何人都有更好的方法吗?仅使用包含路径很难获得某些WebSphere对象。在您的特定情况下,最好从
Server
对象开始,找到WebContainer
,然后找到它的SessionManager
。到达后,您将能够修改会话管理设置:
server=AdminConfig.getid('/Cell:labwas1node01cell/Node:labwas11/server:server1/'))
webContainer=AdminConfig.list('webContainer',服务器)
sessionManager=AdminConfig.list('sessionManager',webContainer)
tuningParams=AdminConfig.showAttribute(会话管理器'tuningParams')
打印AdminConfig.showAttribute(tuningParams,“maxInMemorySessionCount”)
modify(tuningParams,['maxInMemorySessionCount','1234']]
打印AdminConfig.showAttribute(tuningParams,“maxInMemorySessionCount”)
#AdminConfig.save()#未注释时-将保存更改
您还可以查看位于(及其文档位于)的WDR库,它使脚本更具可读性和可维护性:
server=getid1('/Cell:labwas11Node01Cell/Node:labwas11/server:server1/'))
webContainer=server.listConfigObjects('webContainer')[0]
sessionManager=webContainer.listConfigObjects('sessionManager')[0]
tuningParams=sessionManager.tuningParams
打印tuningParams.maxInMemorySessionCount
tuningParams.maxInMemorySessionCount=1234
#由于在WDR中具有类型识别功能,因此您甚至可以执行以下操作:
tuningParams.maxInMemorySessionCount+=10
打印tuningParams.maxInMemorySessionCount
#save();sync()#未注释时-将保存并同步更改
由于我目前正在实施一组自动化WebSphere部署的脚本,我倾向于以尽可能系统化的方式导航配置。
在这种情况下,我希望通过包含路径检索Web容器和会话管理器。
与Marcin的方法相比,我更喜欢这种方法的原因是,它只需一次调用即可检索到我想要的元素
这就是我发现有效的方法:
AdminConfig.getid('/Cell:/Node:/Server:/ApplicationServer:/WebContainer:/SessionManager://')
当然,您可以添加节点和服务器的名称来查找您要查找的特定元素
SesMgrList = AdminConfig.list('SessionManager').splitlines()
for SesMgr in SesMgrList:
if AdminConfig.showAttribute( SesMgr, 'context') == AdminConfig.list('WebContainer'):
Modify my session manager custom properties