使用wsadmin获取Cell的JDBC提供程序

时间:2016-09-28 19:08:44

标签: jython websphere-8 websphere-7 wsadmin

我试图在单元格范围内列出jdbcprovider列表,但它还列出了节点和服务器范围内的jdbcproviders,如何从列表中删除节点和服务器范围上的提供程序?

AdminConfig.list('JDBCProvider',AdminConfig.getid('/ Cell:CellV70A /'))

输出:

'“DB2 Universal JDBC Driver Provider(cells / CellV70A / nodes / nodename | resources.xml#JDBCProvider_1302300228086)”\ n“DB2 Universal JDBC Driver Provider(cells / CellV70A | resources.xml#JDBCProvider_1263590015775)”\ n“WebSphere用于MS SQL Server的嵌入式ConnectJDBC驱动程序(cells / CellV70A | resources.xml#JDBCProvider_1272027151294)“'

1 个答案:

答案 0 :(得分:2)

如果您查看AdminConfig.list命令的帮助:

wsadmin>print AdminConfig.help('list')
WASX7056I: Method: list
...
        Method: list

        Arguments: type, scope

        Description: Lists all the configuration objects of the type named
        by "type" within the scope of the configuration object named by "scope."
...

它说"在范围内"。由于节点和服务器范围的JDBCProviders属于单元格范围,因此命令会返回它们。如果您使用管理控制台在单元格范围内列出所有JDBCProviders,然后查看命令帮助,您将看到如下内容:

  

请注意,脚本列表命令可能会生成比管理控制台显示的信息更多的信息,因为控制台通常会根据范围,模板和内置条目进行过滤。 AdminConfig.list(' JDBCProvider',AdminConfig.getid(' / Cell:MyCell /'))

因此,您需要同样过滤返回列表。您可以将一个非常简单的脚本放在一起来执行此操作:

jdbcProviders = AdminConfig.list('JDBCProvider', AdminConfig.getid('/Cell:MyCell')).split('\r\n')
for jdbcProvider in jdbcProviders:
  if "/nodes/" or "/servers/" in jdbcProvider:
    continue
  print jdbcProvider