wsadmin 스크립트 도구를 사용하여 설치된 애플리케이션 갱신

wsadmin 도구 및 스크립트를 사용하여 Application Server에서 설치된 애플리케이션을 업데이트할 수 있습니다.

이 태스크 정보

update 명령과 updateinteractive 명령은 일련의 옵션을 지원합니다. options 명령을 사용하여 EAR(Enterprise Archive) 파일에 지원되는 옵션 목록을 확보할 수 있습니다.

Jacl 사용:
$AdminApp options
Jython 사용:
print AdminApp.options()

일괄처리 모드에서 옵션을 사용하여 구성 값을 설정 또는 업데이트할 수 있습니다. 설정 또는 업데이트할 구성 오브젝트를 식별하려면 읽기 전용 필드 값을 사용하여 해당 구성 오브젝트를 찾습니다. 읽기 전용 필드의 값은 모두 기존 구성 오브젝트와 일치해야 하며 그렇지 않은 경우 명령이 실패합니다.

주의: 애플리케이션이 실행 중인 경우, 애플리케이션 설정을 변경하면 애플리케이션이 다시 시작됩니다. 독립형 서버에서 변경사항을 저장하면 애플리케이션이 다시 시작됩니다. 여러 서버 제품에서 변경사항을 저장하면 애플리케이션이 다시 시작되고 애플리케이션이 설치된 노드에서 파일이 동기화됩니다. 여러 서버 제품에서 동기화가 발생하는 시기를 제어하려면 콘솔 환경 설정 페이지에서 노드에서 변경사항 동기화를 선택 취소하십시오.

다음 단계를 수행하여 애플리케이션을 업데이트하십시오.

프로시저

  1. wsadmin 스크립트 도구를 시작하십시오.
  2. 다음 옵션 중 하나를 사용하여 설치된 애플리케이션을 업데이트하십시오.
    • 다음 명령은 전개된 애플리케이션에서 단일 파일을 업데이트합니다.
      • Jacl 사용:

        [AIX Solaris HP-UX Linux Windows]
        $AdminApp update app1 file {-operation update -contents c:/apps/app1/my.xml 
         -contenturi app1.jar/my.xml}
        [z/OS]
        $AdminApp update app1 file {-operation update -contents /apps/app1/my.xml 
         -contenturi app1.jar/my.xml}
        [IBM i]
        $AdminApp update app1 file {-operation update -contents 
         /home/myProfile/apps/app1/my.xml -contenturi app1.jar/my.xml}
      • Jython 문자열 사용:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'file', '[-operation update -contents c:/apps/app1/my.xml 
         -contenturi app1.jar/my.xml]')
        [z/OS]
        AdminApp.update('app1', 'file', '[-operation update -contents /apps/app1/my.xml 
         -contenturi app1.jar/my.xml]')
        [IBM i]
        AdminApp.update('app1', 'file', '[-operation update -contents /home/myProfile/
         apps/app1/my.xml -contenturi app1.jar/my.xml]')
      • Jython 목록 사용:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'file', ['-operation', 'update', '-contents', 
         'c:/apps/app1/my.xml', '-contenturi', 'app1.jar/my.xml'])
        [z/OS]
        AdminApp.update('app1', 'file', ['-operation', 'update', '-contents', 
         '/apps/app1/my.xml',  '-contenturi', 'app1.jar/my.xml'])
        [IBM i]
        AdminApp.update('app1', 'file', ['-operation', 'update', '-contents', 
         '/home/myProfile/apps/app1/my.xml', '-contenturi', 'app1.jar/my.xml'])
      표 1. update file 명령 요소. 설치된 애플리케이션 파일을 변경하려면 update 명령을 실행하십시오.
      요소 정의
      $ 변수 이름을 그 값으로 대체하기 위한 Jacl 운영자입니다.
      AdminApp 애플리케이션 오브젝트 관리를 지원하는 오브젝트입니다.
      update 은 AdminApp 명령입니다.
      app1 업데이트할 애플리케이션 이름입니다.
      file 컨텐츠 유형 값입니다.
      operation 업데이트 명령의 옵션입니다.
      update 조작 옵션의 값입니다.
      목차 업데이트 명령의 옵션입니다.
      /apps/app1/my.xml 컨텐츠 옵션의 값입니다.
      contenturi 업데이트 명령의 옵션입니다.
      app1.jar/my.xml contenturi 옵션의 값입니다.
    • 다음 명령은 모듈이 없을 경우 모듈을 전개된 애플리케이션에 추가합니다. 그렇지 않으면 기존 모듈이 업데이트됩니다.
      • Jacl 사용:

        [AIX Solaris HP-UX Linux Windows]
        $AdminApp update app1 modulefile {-operation addupdate -contents 
         c:/apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
         -BindJndiForEJBNonMessageBinding {{"Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc}}}
        [z/OS]
        $AdminApp update app1 modulefile {-operation addupdate -contents 
         /apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
         -BindJndiForEJBNonMessageBinding {{"Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc}}}
        [IBM i]
        $AdminApp update app1 modulefile {-operation addupdate -contents 
         /home/myProfile/apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
          -BindJndiForEJBNonMessageBinding {{"Increment EJB module"  Increment Increment.jar,META-INF/ejb-jar.xml Inc}}}
      • Jython 문자열 사용:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'modulefile', '[-operation addupdate -contents 
         c:/apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
         -BindJndiForEJBNonMessageBinding [["Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc]]]')
        [z/OS]
        AdminApp.update('app1', 'modulefile', '[-operation addupdate -contents 
         /apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
         -BindJndiForEJBNonMessageBinding [["Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc]]]')
        [IBM i]
        AdminApp.update('app1', 'modulefile', '[-operation addupdate -contents 
         /home/myProfile/apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
         -BindJndiForEJBNonMessageBinding [["Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc]]]')
      • Jython 목록 사용:

        [AIX Solaris HP-UX Linux Windows]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'modulefile', ['-operation', 'addupdate', '-contents', 
         'c:/apps/app1/Increment.jar', '-contenturi','Increment.jar' '-nodeployejb',
         `-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue])
        [z/OS]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'modulefile', ['-operation', 'addupdate', '-contents', 
         '/apps/app1/Increment.jar', '-contenturi','Increment.jar' '-nodeployejb', `-BindJndiForEJBNonMessageBinding', 
         bindJndiForEJBValue])
        [IBM i]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'modulefile', ['-operation', 'addupdate', '-contents', 
         '/home/myProfile/apps/app1/Increment.jar', '-contenturi','Increment.jar'
         '-nodeployejb', `-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue])
      표 2. update modulefile 명령 요소. 설치된 모듈 파일을 변경하려면 update 명령을 실행하십시오.
      요소 정의
      $ 변수 이름을 그 값으로 대체하기 위한 Jacl 운영자입니다.
      AdminApp 애플리케이션 오브젝트 관리를 지원하는 오브젝트입니다.
      update 은 AdminApp 명령입니다.
      app1 업데이트할 애플리케이션 이름입니다.
      modulefile 컨텐츠 유형 값입니다.
      operation 업데이트 명령의 옵션입니다.
      addupdate 조작 옵션의 값입니다.
      목차 업데이트 명령의 옵션입니다.
      /apps/app1/Increment.jar 컨텐츠 옵션의 값입니다.
      contenturi 업데이트 명령의 옵션입니다.
      Increment.jar contenturi 옵션의 값입니다.
      nodeployejb 업데이트 명령의 옵션입니다.
      BindJndiForEJBNonMessageBinding 업데이트 명령의 옵션입니다.
      "EJB 모듈 증가" Increment Increment.jar,META-INF/ejb-jar.xml Inc BindJndiForEJBNonMessageBinding 옵션의 값입니다. 이 옵션의 값은 애플리케이션 구성에서 정의됩니다. 이 옵션의 값을 판별하려면 다음과 같은 Jython 또는 Jacl 명령을 사용하십시오.
      Jython 사용:
      AdminApp.view('myAppName')
      Jacl 사용:
      $AdminApp view myAppName
      bindJndiForEJBValue BindJndiForEJBNonMessageBinding 옵션 값을 포함하는 Jython 변수입니다.
    • 다음 명령은 부분 애플리케이션을 사용하여 전개된 애플리케이션을 업데이트합니다.
      • Jacl 사용:

        [AIX Solaris HP-UX Linux Windows]
        $AdminApp update app1 partialapp {-contents c:/apps/app1/app1Partial.zip}
        [z/OS]
        $AdminApp update app1 partialapp {-contents /apps/app1/app1Partial.zip}
        [IBM i]
        $AdminApp update app1 partialapp {-contents /home/myProfile/apps/app1/app1Partial.zip}
      • Jython 문자열 사용:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'partialapp', '[-contents 
         c:/apps/app1/app1Partial.zip]')
        [z/OS]
        AdminApp.update('app1', 'partialapp', '[-contents /apps/app1/app1Partial.zip]')
        [IBM i]
        AdminApp.update('app1', 'partialapp', '[-contents 
         /home/myProfile/apps/app1/app1Partial.zip]')
      • Jython 목록 사용:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'partialapp', ['-contents', 
         'c:/apps/app1/app1Partial.zip'])
        [z/OS]
        AdminApp.update('app1', 'partialapp', ['-contents', 
         '/apps/app1/app1Partial.zip'])
        [IBM i]
        AdminApp.update('app1', 'partialapp', ['-contents', 
         '/home/myProfile/apps/app1/app1Partial.zip'])
      표 3. update partialapp 명령 요소. 설치된 애플리케이션의 일부를 변경하려면 update 명령을 실행하십시오.
      요소 정의
      $ 변수 이름을 그 값으로 대체하기 위한 Jacl 운영자입니다.
      AdminApp 애플리케이션 오브젝트 관리를 지원하는 오브젝트입니다.
      update 은 AdminApp 명령입니다.
      app1 업데이트할 애플리케이션 이름입니다.
      partialapp 컨텐츠 유형 값입니다.
      목차 업데이트 명령의 옵션입니다.
      /apps/app1/app1Partial.zip 컨텐츠 옵션의 값입니다.
    • 전개된 전체 애플리케이션을 업데이트하십시오.

      새 활성화 스펙을 사용하거나 작성하는 대신 기존 리스너 포트를 사용하려면 EJB JAR 버전이 2.1보다 이전 버전인지 여부를 판별하십시오. 애플리케이션을 배치하는 데 -usedefaultbindings 옵션을 지정하면 시스템이 자동으로 활성화 스펙을 작성하여 사용합니다. 활성화 스펙이 있는 경우, 시스템은 리스너 포트를 무시하고 활성화 스펙을 대신 사용합니다. 새 활성화 스펙 대신 정의된 리스너 포트를 사용하여 2.1 이상의 EJB JAR 버전으로 애플리케이션을 배치하려면, 관심있는 프로파일의 특성 디렉토리에 있는 wsadmin.properties 파일에서 com.ibm.websphere.management.application.dfltbndng.mdb.preferexisting 시스템 특성을 true로 설정하십시오.

      • Jacl 사용:

        [AIX Solaris HP-UX Linux Windows]
        $AdminApp update app1 app {-operation update -contents c:/apps/app1/newApp1.jar 
         -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding {{"Increment EJB module" Increment 
         Increment.jar,META-INF/ejb-jar.xml Inc}}}
        [z/OS]
        $AdminApp update app1 app {-operation update -contents /apps/app1/newApp1.jar 
         -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding {{"Increment EJB module" Increment 
         Increment.jar,META-INF/ejb-jar.xml Inc}}}
        [IBM i]
        $AdminApp update app1 app {-operation update -contents
         /home/myProfile/apps/app1/newApp1.jar -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding {{"Increment EJB module" 
         Increment Increment.jar,META-INF/ejb-jar.xml Inc}}}
      • Jython 문자열 사용:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'app', '[-operation update -contents 
         c:/apps/app1/newApp1.ear  -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding [["Increment EJB module" Increment 
         Increment.jar,META-INF/ejb-jar.xml Inc]]]')
        [z/OS]
        AdminApp.update('app1', 'app', '[-operation update -contents 
         /apps/app1/newApp1.ear -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding [["Increment EJB module" Increment 
         Increment.jar,META-INF/ejb-jar.xml Inc]]]')
        [IBM i]
        AdminApp.update('app1', 'app', '[-operation update -contents 
         /home/myProfile/apps/app1/ newApp1.ear -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding [["Increment EJB module" 
         Increment Increment.jar,META-INF/ejb-jar.xml Inc]]]')
      • Jython 목록 사용:

        [AIX Solaris HP-UX Linux Windows]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'app', ['-operation', 'update', '-contents', 
         'c:/apps/app1/NewApp1.ear', '-usedefaultbindings', '-nodeployejb', `-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue]) 
         
        [z/OS]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'app', ['-operation', 'update', '-contents', 
         '/apps/app1/NewApp1.ear', '-usedefaultbindings', '-nodeployejb', `-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue]) 
        [IBM i]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'app', ['-operation', 'update', '-contents', 
         '/apps/app1/NewApp1.ear', '-usedefaultbindings', '-nodeployejb', `-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue]) 
      표 4. update app 명령 요소. 설치된 애플리케이션을 변경하려면 update 명령을 실행하십시오.
      요소 정의
      $ 변수 이름을 그 값으로 대체하기 위한 Jacl 운영자입니다.
      AdminApp 애플리케이션 오브젝트 관리를 지원하는 오브젝트입니다.
      update 은 AdminApp 명령입니다.
      app1 업데이트할 애플리케이션 이름입니다.
      app 컨텐츠 유형 값입니다.
      operation 업데이트 명령의 옵션입니다.
      update 조작 옵션의 값입니다.
      목차 업데이트 명령의 옵션입니다.
      /apps/app1/newApp1.ear 컨텐츠 옵션의 값입니다.
      usedefaultbindings 업데이트 명령의 옵션입니다.
      nodeployejb 업데이트 명령의 옵션입니다.
      BindJndiForEJBNonMessageBinding 업데이트 명령의 옵션입니다.
      "EJB 모듈 증가" Increment Increment.jar,META-INF/ejb-jar.xml Inc BindJndiForEJBNonMessageBinding 옵션의 값입니다. 이 옵션의 값은 애플리케이션 구성에서 정의됩니다. 이 옵션의 값을 판별하려면 다음과 같은 Jython 또는 Jacl 명령을 사용하십시오.
      Jython 사용:
      AdminApp.view('myAppName')
      Jacl 사용:
      $AdminApp view myAppName
      bindJndiForEJBValue BindJndiForEJBNonMessageBinding 옵션 값을 포함하는 Jython 변수입니다.
  3. 구성 변경사항을 저장하십시오.
    다음 명령 예제를 사용하여 구성 변경사항을 저장하십시오.
    AdminConfig.save()
  4. Network Deployment 환경에서만 노드를 동기화하십시오.
    AdminNodeManagement 스크립트 라이브러리에 있는 syncActiveNode 또는 syncNode 스크립트를 사용하여 구성 변경사항을 노드에 전파하십시오.
    • 다음 명령 데모에 표시된 것과 같이, syncActiveNodes 스크립트를 사용하여 변경사항을 셀 내의 각 노드에 전파하십시오.
      AdminNodeManagement.syncActiveNodes()
    • 다음 명령 데모에 표시된 것과 같이, syncNode 스크립트를 사용하여 변경사항을 특정 노드에 전파하십시오.
      AdminNodeManagement.syncNode("myNode")

다음에 수행할 작업

이 태스크 단계에서는 시스템이 애플리케이션 업데이트에 성공하면 성공 메시지를 리턴합니다. 그러나 단계는 시스템이 각 2진 파일을 추출하기 전에 완료될 수 있습니다. 예를 들어, 네트워크 배치 환경에서 노드 동기화를 완료한 후 2진 파일이 추출됩니다. 시스템이 2진 파일을 모두 추출할 때까지 애플리케이션을 시작할 수 없습니다. AdminApp 오브젝트에 대해 isAppReadygetDeployStatus 명령을 사용하여 애플리케이션을 시작하기 전에 시스템이 2진 파일을 추출했는지 확인하십시오.

isAppReady 명령은 시스템에서 애플리케이션을 시작할 준비가 되었으면 true 값을, 준비가 되지 않았으면 false 값을 리턴합니다. 시스템이 애플리케이션을 시작할 준비가 되지 않았으면 시스템은 애플리케이션 2진을 펼칠 수도 있습니다. 애플리케이션을 업데이트하고 시작된 스크립트는 일반적으로 애플리케이션을 시작하기 전에 true의 값을 리턴할 때까지 다음 예제에 표시된 대로, isAppReady에 대한 호출을 반복합니다.

Jython 사용:
import time
result = AdminApp.isAppReady('application1')
while (result == "false"):
   ### Wait 5 seconds before checking again
   time.sleep(5)
   result = AdminApp.isAppReady('application1')
print("Starting application...")
Jacl 사용:
set result [$AdminApp isAppReady application1]
while {$result == "false"} {
   ### Wait 5 seconds before checking again
   after 5000
   set result [$AdminApp isAppReady application1]
}
puts "Starting application..."
getDeployStatus 명령을 사용하여 다음 예제에 표시된 대로 2진 파일 확장 상태에 대한 추가 정보를 표시합니다.
AdminApp.getDeployStatus('app1')

app1DefaultApplicationgetDeployStatus 명령을 실행하면 다음과 유사한, DefaultApplication에 대한 상태 정보가 출력됩니다.

ADMA5071I: Distribution status check started for application DefaultApplication.
WebSphere:cell=myCell01,node=myNode01,distribution=unknown,expansion=unknown
ADMA5011I: The cleanup of the temp directory for application DefaultApplication is complete.
ADMA5072I: Distribution status check completed for application DefaultApplication.
WebSphere:cell=myCell01,node=myNode01,distribution=unknown,expansion=unknown

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_updatingapp
파일 이름:txml_updatingapp.html