スクリプトによる共有ライブラリーの構成

スクリプトを使用して、アプリケーション・サーバーの共有ライブラリーを構成できます。 共有ライブラリーとは、複数のアプリケーションによって使用されるファイルです。 共有ライブラリーを作成して、システム上の重複ライブラリー・ファイルの数を削減します。

始める前に

このタスクを行うには、2 つの方法があります。 このトピックの例では、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 属性の値です。
    ノード 属性です。
    mynode 属性の値です。
    サーバー 属性です。
    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']])
    トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble):
    • Jython を使用していて、クラスパスにスペースが含まれていない場合は、セミコロン (;) またはスペースを分離文字として使用することができます。 以下に例を示します。
      AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'],              
      ['classPath','test1.jar;test2.jar;test3.jar']]) 
      or
      AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'],              
      ['classPath','test1.jar test2.jar test3.jar']])   
    • Jacl を使用し、クラスパスに 1 つ以上のスペースが 含まれる場合は、クラスパスを中括弧または引用符で囲む必要があります。以下に例を示します。
      $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 を使用していて、クラスパスに 1 つ以上のスペースが含まれている場合は、セミコロン (;) を分離文字として使用する必要があります。 以下に例を示します。
      AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'],              
      ['classPath','c:/Program Files/JDBC Driver/test.jar;a.jar']])  
      またはパスが 1 つしかない場合:
      AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'],              
      ['classPath','test1.jar test2.jar test3.jar']])   
    • Jython を使用し、クラスパスに 1 つ以上のスペースが 含まれる場合は、クラスパスを中括弧または引用符で囲む必要があります。以下に例を示します。[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']]])
      or [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 を使用し、クラスパスに複数のパスが含まれていて、 それらのクラスパスの 1 つが 1 つ以上のスペースを含んでいる場合、 スペースを含んでいるパスのストリングを引用符で囲みます。以下に例を示します。[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 の構成を表すオブジェクトです。
    作成 AdminConfig コマンドです。
    ライブラリー 属性です。
    serv ステップ 1 で指定したサーバーの ID を評価します。
    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 で指定したサーバーの ID を評価します。
    print Jython コマンドです。
    出力例:
    server1(cells/mycell/nodes/mynode/servers/server1|server.xml#ApplicationServer_1
  5. アプリケーション・サーバーでクラス・ローダーを識別し、それを classLoader 変数に割り当てます。以下に例を示します。
    • サーバーに関連付けられた既存のクラス・ローダーを使用する場合、 以下のコマンドは 1 番目のクラス・ローダーを使用します。
      • 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 で指定したアプリケーション・サーバーの ID を評価します。
      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 の構成を表すオブジェクトです。
    作成 AdminConfig コマンドです。
    Classloader 属性です。
    appServer ステップ 3 で指定したアプリケーション・サーバーの ID を評価します。
    モード 属性です。
    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 の構成を表すオブジェクトです。
    作成 AdminConfig コマンドです。
    LibraryRef 属性です。
    classLoader1 ステップ 4 で指定したクラス・ローダーの ID を評価します。
    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