使用脚本编制配置共享库

可以使用脚本编制为应用程序服务器配置共享库。共享库是多个应用程序使用的文件。创建共享库以减少系统上重复库文件的数目。

开始之前

可通过两种方法来完成本任务。本主题中的示例使用 AdminConfig 对象来创建和配置共享库。或者,您可以使用 AdminResources 脚本库中的 createSharedLibrary 脚本来配置共享库。

脚本库提供了一组过程,可自动执行最常见的管理功能。 可以逐个运行每个脚本过程,也可以将几个过程组合在一起来快速开发新脚本。

过程

  1. 启动 wsadmin 脚本编制工具。
  2. 标识服务器并将其指定给 server 变量。例如:
    • 使用 Jacl:

      set serv [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
    • 使用 Jython:
      serv = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/')
      print serv
    表 1. getid 命令元素. 下表描述 getid 命令的每个元素。
    元素 描述
    set 是 Jacl 命令
    serv 是变量名
    $ 是使用其值替换变量名的 Jacl 运算符
    AdminConfig 是表示 WebSphere® Application Server 配置的对象
    getid 是 AdminConfig 命令
    单元 是属性
    mycell 是属性的值
    Node 是属性
    mynode 是属性的值
    Server 是属性
    server1 是属性的值
    示例输出:
    server1(cells/mycell/nodes/mynode/servers/server1|server.xml#Server_1)
  3. 在服务器中创建共享库。

    以下是如何使用 Jacl 或 Jython 来创建共享库的示例。

    • 使用 Jacl:

      [AIX Solaris HP-UX Linux Windows]
      $AdminConfig create Library $serv {{name mySharedLibrary} {classPath c:/mySharedLibraryClasspath}}
      [z/OS]
      $AdminConfig create Library $serv {{name mySharedLibrary} {classPath /mySharedLibraryClasspath}}
      [IBM i]
      $AdminConfig create Library $serv {{name mySharedLibrary} {classPath 
      /home/myProfile/mySharedLibraryClasspath}}
    • 使用 Jython:

      [AIX Solaris HP-UX Linux Windows]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath',  
      'c:/mySharedLibraryClasspath']])
      [z/OS]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath',  
      '/mySharedLibraryClasspath']])
      [IBM i]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath',  
      'home/myProfile/mySharedLibraryClasspath']])
    避免故障 避免故障:
    • 如果您在使用 Jython,且该类路径没有包含任何空格,那么您可以将分号 (;) 或空格用作分隔符。例如:
      AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'],              
      ['classPath','test1.jar;test2.jar;test3.jar']]) 
      AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'],              
      ['classPath','test1.jar test2.jar test3.jar']])  
    • 如果您在使用 Jacl,且该类路径包含一个或多个空格,那么您必须在类路径前后添加其他花括号或引号。例如:
      $AdminConfig create Library $serv {{name mySharedLibrary} {classPath {c:/Program Files/JDBC Driver/test.jar}}}
      $AdminConfig create Library $serv {{name mySharedLibrary} {classPath "c:/Program Files/JDBC Driver/test.jar"}}
    • 如果您在使用 Jython,且该类路径包含一个或多个空格,那么您必须将分号 (;) 用作分隔符。例如:
      AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'],              
      ['classPath','c:/Program Files/JDBC Driver/test.jar;a.jar']])
      或者如果只有一条路径:
      AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'],              
      ['classPath','test1.jar test2.jar test3.jar']])  
    • 如果您在使用 Jython 且该类路径包含一个或多个空格,那么您必须在类路径前后添加其他方括号或引号。例如: [AIX Solaris HP-UX Linux Windows]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath',  
      'c:/Program Files/JDBC Driver/test.jar']]])
      [z/OS]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath',  
      '/Program Files/JDBC Driver/test.jar']]])
      [IBM i]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath',  
      'home/myProfile/Program Files/JDBC Driver/test.jar']]])
      [AIX Solaris HP-UX Linux Windows]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath',  
      "'c:/Program Files/JDBC Driver/test.jar'"]])
      [z/OS]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath',  
      "'/Program Files/JDBC Driver/test.jar'"]])
      [IBM i]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath',  
      "'home/myProfile/Program Files/JDBC Driver/test.jar'"]])
    • 在使用 Jython 时,如果类路径包含多条路径,那么您可以使用列表语法或者分号定界的字符串语法来指定多条类路径。

      使用列表语法:

      [AIX Solaris HP-UX Linux Windows]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath [test1.jar test2.jar test3.jar]]]')
      [z/OS]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar test2.jar test3.jar]]]')
      [IBM i]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar test2.jar test3.jar]]]')

      使用以分号定界的字符串语法:

      [AIX Solaris HP-UX Linux Windows]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
      [z/OS]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
      [IBM i]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
    • 在使用 Jython 时,如果类路径包含多条路径,且其中某个类路径包含一个或多个空格,请用引号将包含空格的路径字符串引起来。例如:[AIX Solaris HP-UX Linux Windows]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
      [z/OS]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
      [IBM i]
      print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
    gotcha
    表 2. create Library 命令元素. 下表描述 create Library 命令的每个元素。
    元素 描述
    $ 是使用其值替换变量名的 Jacl 运算符
    AdminConfig 是表示 WebSphere Application Server 配置的对象
    create 是 AdminConfig 命令
    Library 是属性
    serv 对步骤 1 中指定的服务器标识所求的值
    name 是属性
    mySharedLibrary 是 name 属性的值
    classPath 是属性
    /mySharedLibraryClasspath 是 classpath 属性的值
    print 是 Jython 命令
    示例输出:
    MysharedLibrary(cells/mycell/nodes/mynode/servers/server1|libraries.xml#Library_1)
  4. 识别来自此服务器的应用程序服务器并将其指定给 appServer 变量。例如:
    • 使用 Jacl:

      set appServer [$AdminConfig list ApplicationServer $serv]
    • 使用 Jython:
      appServer = AdminConfig.list('ApplicationServer', serv)
      print appServer
    表 3. list 命令元素. 下表描述 create list 命令的每个元素。
    元素 描述
    set 是 Jacl 命令
    appServer 是变量名
    $ 是使用其值替换变量名的 Jacl 运算符
    AdminConfig 是表示 WebSphere Application Server 配置的对象
    list 是 AdminConfig 命令
    ApplicationServer 是属性
    serv 对步骤 1 中指定的服务器标识所求的值
    print 是 Jython 命令
    示例输出:
    server1(cells/mycell/nodes/mynode/servers/server1|server.xml#ApplicationServer_1
  5. 标识应用程序服务器中的类装入器并将其指定给 classLoader 变量。例如:
    • 为使用与服务器关联的现有类装入器,下列命令使用第一个类装入器:
      • 使用 Jacl:

        set classLoad [$AdminConfig showAttribute $appServer classloaders]
        set classLoader1 [lindex $classLoad 0]
      • 使用 Jython:
        classLoad = AdminConfig.showAttribute(appServer, 'classloaders')
        cleanClassLoaders = classLoad[1:len(classLoad)-1]
        classLoader1 = cleanClassLoaders.split(' ')[0]
      表 4. showAttribute 命令元素. 下表描述 showAttribute 命令的每个元素。
      元素 描述
      set 是 Jacl 命令
      classLoad, classLoader1 是变量名
      $ 是使用其值替换变量名的 Jacl 运算符
      AdminConfig 是表示 WebSphere Application Server 配置的对象
      showAttribute 是 AdminConfig 命令
      appServer 对步骤 3 中指定的应用程序服务器标识所求的值
      classloaders 是属性
      print 是 Jython 命令
    • 要创建新的类装入器,请发出以下命令:
      • 使用 Jacl:

        set classLoader1 [$AdminConfig create Classloader $appServer {{mode PARENT_FIRST}}]
      • 使用 Jython:
        classLoader1 = AdminConfig.create('Classloader', appServer, [['mode',  'PARENT_FIRST']])
    表 5. create Classloader 命令元素. 下表描述 create Classloader 命令的每个元素。
    元素 描述
    set 是 Jacl 命令
    classLoader1 是变量名
    $ 是使用其值替换变量名的 Jacl 运算符
    AdminConfig 是表示 WebSphere Application Server 配置的对象
    create 是 AdminConfig 命令
    Classloader 是属性
    appServer 对步骤 3 中指定的应用程序服务器标识所求的值
    方式 是属性
    PARENT_FIRST 是属性的值
    print 是 Jython 命令
    示例输出:
    (cells/mycell/nodes/mynode/servers/server1|server.xml#Classloader_1)
  6. 通过类装入器使创建的共享库与应用程序服务器关联。例如:
    • 使用 Jacl:

      $AdminConfig create LibraryRef $classLoader1 {{libraryName MyshareLibrary}}

    • 使用 Jython:
      print AdminConfig.create('LibraryRef', classLoader1, [['libraryName', 'MyshareLibrary']])
    表 6. create LibraryRef 命令元素. 下表描述 create LibraryRef 命令的每个元素。
    元素 描述
    $ 是使用其值替换变量名的 Jacl 运算符
    AdminConfig 是表示 WebSphere Application Server 配置的对象
    create 是 AdminConfig 命令
    LibraryRef 是属性
    classLoader1 对步骤 4 中指定的类装入器标识所求的值
    libraryName 是属性
    MyshareLibrary 是属性的值
    print 是 Jython 命令
    示例输出:
    (cells/mycell/nodes/mynode/servers/server1|server.xml#LibraryRef_1)
  7. 保存配置更改。
    请使用以下命令示例来保存配置更改:
    AdminConfig.save()
  8. 使节点同步。
    使用 AdminNodeManagement 脚本库中的 syncActiveNode 或 syncNode 脚本将配置更改传播至一个或多个节点。
    • 使用 syncActiveNodes 脚本将更改传播至单元中的每个节点,如以下示例所示:
      AdminNodeManagement.syncActiveNodes()
    • 使用 syncNode 脚本将更改传播至特定节点,如以下示例所示:
      AdminNodeManagement.syncNode("myNode")

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_library
文件名:txml_library.html