IBM Support

IC78617: UNABLE TO CREATE ZONE WHEN CALLING TPC API

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When calling TPC API to create zone:
    1. If completed successfully, there's no "zone id" returned by
    the API, through zone was created/shown from fabric manager
    2. If zone creation fails, multiple errors, either zone not
    committed, or wrong parameter, etc, checked on fabric manager
    right after the call, no zone create; after a period of time,
    e.g. overnight, zone shows on fabric manager
    The code in
    com.ibm.tpc.integration.tpm.control.TPCFabricControl.java has a
    problem.
    The TPM workflow script is issuing commands in this order:
    getAllZoneSets( )
    startZoneTransaction( )
    createZone( )
    addZoneMembersToZone( )
    addZoneToZoneSet( )
    commitZoneTransaction( )
    This order is the right order to use.
    There is nothing wrong with the TPM workflow script.
    In com.ibm.tpc.integration.tpm.control.TPCFabricControl.java,
    when addZoneMembersToZone( ) is
    called, it does the following:
      //Check each of the input portWWNs and check to see if it is
    already a member of
    the zone.  If so, no need to send it to TPC API,
      //otherwise we'll solicit a failure response.  If this code
    causes a performance
    problem, it can safely be commented out... noting
      //that TPC_Fabric_AddZoneMembers workflow should then filter
    this list before
    sending it to this java helper.
    ArrayList alPortWWNs = new
    ArrayList(java.util.Arrays.asList(portWWNs));
      String[] existingMembers = getAllPortsInZone(fabricID,
    zoneName, false, hostname,
    port, username, password);
      for(int i=0; i < existingMembers.length; ++i){
       alPortWWNs.remove(existingMembers[i]);
      }
      portWWNs = (String[])alPortWWNs.toArray(new String[0]);
    
      //Check to ensure that there are still portWWNs to add
      if(portWWNs.length == 0)
       return 0;  //All ports must've already been members. Report
    success.
    The call to getAllPortsInZone( ) fails because the zone does not
    exist yet.  It is held in memory
    in TPC Device Server, waiting to be committed to the fabric.
    The call to getAllPortsInZone( )
    checks the TPC DB for the zone but it is appropriately not yet
    existing in the TPC DB.  This causes
    the following error for their TPM workflow script:
    [ERROR] 09/09/2011 12:13:15,797 [       TPCUtil.java:123 ] -
    TPCFabricControl.getAllPortsInZone()
    :: Invalid parameter passed to fabricProxy.getAllPortsinZone()
    [ERROR] 09/09/2011 12:13:15,798 [       TPCUtil.java:124 ] -
    com.ibm.tpc.common.api.InvalidParameterException: BTAFM4110E
    Zone ctstidp16l2_2_V39 was not found.
     at
    com.ibm.tpc.fabric.FabricManagerService.throwInvalidParameterExc
    eption(FabricManagerService.java:488
    8)
     at
    com.ibm.tpc.fabric.FabricManagerService.getPortsInZone(FabricMan
    agerService.java:4058)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessor
    Impl.java:79)
     at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod
    AccessorImpl.java:43)
    To fix this, the TPCFabricControl.addZoneMembersToZone( ) method
    should check if the zone exists
    before calling getAllPortsInZone( ).
    Note that this TPCFabricControl.addZoneMembersToZone( ) method
    needs to handle scenarios where the
    caller is creating the zone in the same session (i.e. the zone
    exists only in TPC Device Server
    memory) and cases where the caller is adding a zone member to a
    zone which already exists on the
    fabric.  So it would not be correct to just remove the check for
    getAllPortsInZone( ).  We need to
    check if the zone exists and then call getAllPortsInZone( ).
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Those running Tivoli Storage Productivity    *
    *                 Center workflows in Tivoli Provisioning      *
    *                 Manager.                                     *
    *                 Center                                       *
    ****************************************************************
    * PROBLEM DESCRIPTION: When running a Tivoli Storage           *
    *                      Productivity Center "create zone"       *
    *                      workflow in Tivoli Provisioning         *
    *                      Manager and also specifying at least    *
    *                      one zone member to add to the new       *
    *                      zone, the workflow may fail with an     *
    *                      error saying that the zone to be        *
    *                      created was not found.                  *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    -
    

Problem conclusion

  • An updated IBMTPC.tcdriver file is needed to correct this
    problem.
    
    The updated driver fix for this APAR is targeted for the
    following maintenance package:
    | interim fix | 7.2.1-TIV-TPM-IF0001
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC78617

  • Reported component name

    TPC FOR FABRIC

  • Reported component ID

    5608TC100

  • Reported release

    42W

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-09-12

  • Closed date

    2011-10-17

  • Last modified date

    2011-10-17

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    TPC FOR FABRIC

  • Fixed component ID

    5608TC100

Applicable component levels

  • R42A PSY

       UP

  • R42L PSY

       UP

  • R42W PSY

       UP

[{"Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS8JFM","label":"TotalStorage Productivity Center for Fabric"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"42W"}]

Document Information

Modified date:
18 September 2021