WEB开发网
开发学院软件开发Java WebSphere 反向投资者: 解决 WebSphere Applicati... 阅读

WebSphere 反向投资者: 解决 WebSphere Application Server 的配置冲突

 2010-10-09 08:13:18 来源:WEB开发网   
核心提示: 如果您熟悉 MBean 方法的调用操作的使用,就会奇怪为何使用 invoke_jmx 操作而非调用,WebSphere 反向投资者: 解决 WebSphere Application Server 的配置冲突(4),这是因为调用主要用来处理字符串且只能管理字符串的格式类型,为了使用标准 Java

如果您熟悉 MBean 方法的调用操作的使用,就会奇怪为何使用 invoke_jmx 操作而非调用。这是因为调用主要用来处理字符串且只能管理字符串的格式类型。为了使用标准 Java™ 类型数组和其他的非字符串,invoke_jmx 操作就提供了所需的函数。

在初始化变量和参数列表之后,就会调用 getConflictDocuments 方法。如果没有冲突,这个方法返回的结果将如清单 2 所示。否则,如果配置冲突的存在是因为在另一个管理会话中的更改,那么结果将会如清单 3 所示,它列出了更改了的 XML 文件。

清单 2

// invoke MBean getConflictDocuments method to obtain a list of any document conflicts 
 
wsadmin>AdminControl.invoke_jmx(csName,'getConflictDocuments', parms, ptype) 
{} 
wsadmin>


清单 3

wsadmin>AdminControl.invoke_jmx(csName,' getConflictDocuments', parms, ptype) 
{['cells/ojaiCell01/nodes/ojaiNode01/serverindex.xml',cells/ojaiCell01/applications/ 
DefaultApplication.ear.ear/deltas/DefaultApplication.ear/delta-1278791909117', 
... <list abbreviated> ...} 
 
 wsadmin>

如果发生这种情况,就可以通过 AdminConfig.reset() 调用丢弃自上一次 AdminConfig.save() 调用后在会话内所做的更改:

wsadmin>AdminConfig.reset()

若在保存前调用 getConflictDocuments 方法后发现没有冲突文档,这并不能保证保存一定会成功 — 即便是被立即调用 — 因为其他的一些会话有可能在调用 getConflictDocuments 与进行实际的保存这段时间内修改了相同的文档。不过,如果向主存储库的保存不成功,那么就会出现一个 ConfigServiceException 异常,类似于在更新主存储库内的文档时出现的异常,如下所示:

WASX7015E: Exception running command: "AdminConfig.save()"; exception information: com.ibm.websphere.management.exception.ConfigServiceException java.security.PrivilegedActionException: java.security.PrivilegedActionException : com.ibm.ws.sm.workspace.WorkSpaceException: RepositoryException

如果发生这种情况,可以调用 getConflictDocuments 方法来决定哪些文档已经由其他会话保存。然后可以通过调用 AdminConfig.reset() 丢弃所做的更改。丢弃后,就可以重新应用您的修改。假设修改相同文件的并发程度并不很高(多少依赖一点运气),那么后续的重试应该会成功,没有冲突。

结束语

遵循这些步骤能够帮助您添加所需的函数来检测由部署多个并发管理动作可能引起的配置冲突,在需要的时候丢弃更新,进而避免配置冲突。

上一页  1 2 3 4 

Tags:WebSphere 反向 投资者

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接