Deployment 通过部署描述符覆盖会话管理

Deployment 通过部署描述符覆盖会话管理,deployment,websphere,session-management,Deployment,Websphere,Session Management,我们有一个WebSphereApplicationServer6.1。会话管理配置了复制和超时等功能。。。(显而易见) 新项目需要一些其他会话管理设置(更长的超时时间,无需复制)。WebSphere管理控制台中有一个复选框: Enterprise Application > appname > Session management > Override Session management 那么部署描述符中的设置就是有效的。唯一的问题是,默认情况下不会选中该选项,并且在部署过

我们有一个WebSphereApplicationServer6.1。会话管理配置了复制和超时等功能。。。(显而易见)

新项目需要一些其他会话管理设置(更长的超时时间,无需复制)。WebSphere管理控制台中有一个复选框:

Enterprise Application > appname > Session management > Override Session management
那么部署描述符中的设置就是有效的。唯一的问题是,默认情况下不会选中该选项,并且在部署过程中没有将该信息提供给WebSphere的选项。因此,我们的脚本部署无法检查这一点,必须由一个人来完成


还有别的办法吗?可能是通过部署描述符中的某个内容?

通过控制台可以执行的任何操作都可以使用wsadmin编写脚本。因此,我认为您需要让脚本安装应用程序,然后在wsadmin中执行一些附加步骤


您看过Websphere安装工厂吗?您可以创建自定义安装包,在其中可以添加产品和所有修复程序,并从中创建一个捆绑包,以便直接安装。在创建这些软件包时,您可以添加安装前和安装后脚本。我相信您可以在安装后运行脚本来更改设置。试试看,让我们知道这是否有效

这里有一个链接,指向有关自定义安装的页面


好的,花了我一段时间,但这里是Jython的解决方案:

deployedApplication = AdminConfig.getid('/Deployment:<appname>/')
deployedObject = AdminConfig.showAttribute(deployedApplication, 'deployedObject')

sessionMgrAttrs = [['sessionManagement', [['enable', 'true']]]]

AdminConfig.create('ApplicationConfig', deployedObject, sessionMgrAttrs)
AdminConfig.save()
deployedApplication=AdminConfig.getid('/Deployment://'))
deployedObject=AdminConfig.showAttribute(deployedApplication'deployedObject')
sessionmgratrs=[['sessionManagement',[[['enable','true']]
创建('ApplicationConfig',deployedObject,SessionGrattrs)
AdminConfig.save()

这会选中我通过脚本提到的复选框(之后不要忘记同步到节点)。

我就是这么想的。。。不过,在安装过程中或通过描述符进行安装会更加优雅……不,从来没有听说过。我将对此进行研究,但由于我们有一个利用ant和一些定制jython脚本的部署解决方案,这将是一个相当大的变化。。。