Network Deployment (Distributed operating systems), v8.0 > Scripting the application serving environment (wsadmin) > Manage deployed applications using wsadmin.sh


Disable application loading in deployed targets using wsadmin scripting

We can use the AdminConfig object and scripting to disable application loading in deployed targets.

Use the AdminConfig object to disable application loading in deployed targets:


Procedure

  1. Start wsadmin.sh.

  2. Obtain the Deployment object for the application and assign it to the deployments variable, for example:

      ### Jacl

      set deployments [$AdminConfig getid /Deployment:myApp/]
      

      ### Jython

      deployments = AdminConfig.getid("/Deployment:myApp/")
      

    Example output:

    myApp(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Deployment_1)
    

  3. Obtain the target mappings in the application and assign them to the targetMappings variable, for example:

      ### Jacl

      set deploymentObj1 [$AdminConfig showAttribute $deployments deployedObject]
      
      set targetMap1 [lindex [$AdminConfig showAttribute $deploymentObj1 targetMappings] 0]
      

      Example output:

      (cells/mycell/applications/ivtApp.ear/deployments/ivtApp|deployment.xml#DeploymentTargetMapping_1)
      

      ### Jython

      deploymentObj1 = AdminConfig.showAttribute(deployments, 'deployedObject')
      
      targetMap1 = AdminConfig.showAttribute(deploymentObj1, 'targetMappings')
      
      targetMap1 = targetMap1[1:len(targetMap1)-1].split(" ")
      
      print targetMap1
      
      
      When you attempt to obtain the target mappings in the application through scripting and then assigning those values to the targetMappings variable, be aware when the application has a space in the name or blank. In these cases, compensate for the occurrence of a blank or space character as the Jython example demonstrates. Errors can occur if you do not make this adjustment. Consider the following scenarios:

      • If only one single DeploymentTargetMapping value exists within the deployment.xml file, you can either split the targetMappings value with a space or a line.separator entry. The line.separator entry syntax works when the application name contains a space, such as "IVT Application". For example:
        targetMap1 = targetMap1[1:len(targetMap1)-1].split(" ")
        
        or
        targetMap1 =
          targetMap1[1:len(targetMap1)-1].split(java.lang.System.getProperty("line.separator"))
        

      • If multiple DeploymentTargetMapping values exist within the deployment.xml file, split the targetMappings values with a space. However, also use "\"" and " ", as appropriate, when the application name or deployment target string contains a space character. For example:
        targetMap1 = targetMap1[1:len(targetMap1)-1].split(" ")
        

      Example output:

      ['(cells/mycell/applications/ivtApp.ear/deployments/ivtApp|deployment.xml#DeploymentTargetMapping_1)']
      

  4. Disable the loading of the application on each deployed target, for example:

      ### Jacl

      foreach tm $targetMap1 {$AdminConfig modify $tm {{enable false}}}
      

      ### Jython

      for targetMapping in targetMap1: AdminConfig.modify(targetMapping, [["enable", "false"]])
      

  5. Save the configuration changes.

    Save the configuration changes:

    AdminConfig.save()
    

  6. Synchronize the node.

    Use the syncActiveNode or syncNode scripts in the AdminNodeManagement script library to propagate the configuration changes to node or nodes.

    • Use the syncActiveNodes script to propagate the changes to each node in the cell:
      AdminNodeManagement.syncActiveNodes()
      

    • Use the syncNode script to propagate the changes to a specific node:
      AdminNodeManagement.syncNode("myNode")
      


Use the wsadmin scripting AdminConfig object for scripted administration


Related


Commands for the AdminConfig object using wsadmin.sh

+

Search Tips   |   Advanced Search