IBM Support

IV62943: TIMING OF RELEASING A RESOURCE DIFFERS IN JOB STREAM WITH A SINGLE JOB AND 2 JOBS.

Direct links to fixes

8.6.0-TIV-TWS-WINDOWS-FP0004
8.6.0-TIV-TWS-WINDOWS_X86_64-FP0004
8.6.0-TIV-TWS-SOLARIS-FP0004
8.6.0-TIV-TWS-SOLARIS_I386-FP0004
8.6.0-TIV-TWS-LINUX_X86_64-FP0004
8.6.0-TIV-TWS-LINUX_S390-FP0004
8.6.0-TIV-TWS-LINUX_PPC-FP0004
8.6.0-TIV-TWS-LINUX_I386-FP0004
8.6.0-TIV-TWS-IBM_I-Fp0004
8.6.0-TIV-TWS-HPUX-FP0004
8.6.0-TIV-TWS-HPIA64-FP0004
8.6.0-TIV-TWS-AIX-FP0004
8.5.1-TIV-TDWC-WINDOWS-X86-64-FP0006
8.5.1-TIV-TDWC-WINDOWS-FP0006
8.5.1-TIV-TDWC-LINUXS390-FP0006
8.5.1-TIV-TDWC-LINUX-I386-FP0006
8.5.1-TIV-TDWC-LINUX-X86-64-FP0006
8.5.1-TIV-TDWC-LINUXPPC-FP0006
8.5.1-TIV-TDWC-SOLARIS-FP0006
8.5.1-TIV-TDWC-AIX-FP0006
8.5.1-TIV-TDWC-SOLARIS-I386-FP0006
8.5.1-TIV-TDWC-HPUX-FP0006
8.5.1-TIV-TDWC-HPUXIA64-FP0006
8.5.1-TIV-TWS-AIX-FP0006.TAR
8.5.1-TIV-TWS-HPIA64-FP0006.TAR
8.5.1-TIV-TWS-HPUX-FP0006.TAR
8.5.1-TIV-TWS-LINUX_I386-FP0006.TAR
8.5.1-TIV-TWS-LINUX_PPC-FP0006.TAR
8.5.1-TIV-TWS-LINUX_S390-FP0006.TAR
8.5.1-TIV-TWS-LINUX_X86_64-FP0006.TAR
8.5.1-TIV-TWS-SOLARIS_I386-FP0006.TAR
8.5.1-TIV-TWS-SOLARIS-FP0006.TAR
8.5.1-TIV-TWS-WIN_X86_64-FP0006
8.5.1-TIV-TWS-WIN-FP0006
9.1.0-TIV-TWS-WINDOWS_X86_64_AGENT-FP0002
9.1.0-TIV-TWS-WINDOWS_X86_64_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-DWC-README-FP0002
9.1.0-TIV-TWS-WINDOWS_AGENT-FP0002
9.1.0-TIV-TWS-WINDOWS_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-SOLARIS-FP0002
9.1.0-TIV-TWS-SOLARIS_I386-FP0002
9.1.0-TIV-TWS-SOLARIS_I386_AGENT-FP0002
9.1.0-TIV-TWS-SOLARIS_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-LINUXPPC-FP0002
9.1.0-TIV-TWS-SOLARIS_I386_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-SOLARIS_AGENT-FP0002
9.1.0-TIV-TWS-LINUX_X86_64-FP0002
9.1.0-TIV-TWS-LINUX_X86_64_AGENT-FP0002
9.1.0-TIV-TWS-LINUX_X86_64_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-LINUX_S390_AGENT-FP0002
9.1.0-TIV-TWS-LINUX_S390_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-LINUX_PPC_AGENT-FP0002
9.1.0-TIV-TWS-LINUX_PPC_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-LINUX_I386_AGENT-FP0002
9.1.0-TIV-TWS-LINUX_I386_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-LINUX390-FP0002
9.1.0-TIV-TWS-IBM_I_AGENT-FP0002
9.1.0-TIV-TWS-IBM_I_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-HPIA64-FP0002
9.1.0-TIV-TWS-HPIA64_AGENT-FP0002
9.1.0-TIV-TWS-HPIA64_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-AIX-FP0002
9.1.0-TIV-TWS-AIX_AGENT-FP0002
9.1.0-TIV-TWS-AIX_AGENT_FOR_ZOS-FP0002
9.1.0-TIV-TWS-WINDOWS_X86_64-FP0002
9.2.0-TIV-TDWC-TWS-FP0001
9.2.0-TIV-TWS-AIX_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS-AIX_AGENT-FP0001
9.2.0-TIV-TWS-HPIA64_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS-HPIA64_AGENT-FP0001
9.2.0-TIV-TWS-IBM_I_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS-IBM_I_AGENT-FP0001
9.2.0-TIV-TWS-LNX_I386_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS-LNX_I386_AGENT-FP0001
9.2.0-TIV-TWS-LNX_PPC_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS-LNX_PPC_AGENT-FP0001
9.2.0-TIV-TWS-LNX_S390_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS-LNX_S390_AGENT-FP0001
9.2.0-TIV-TWS-LNX_X86_64_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS--LNX_X86_64_AGENT-FP0001
9.2.0-TIV-TWS-SOLARIS_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS-SOLARIS_AGENT-FP0001
9.2.0-TIV-TWS-SOLARIS_I386_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS-SOLARIS_I386_AGENT-FP0001
9.2.0-TIV-TWS-AIX-FP0001
9.2.0-TIV-TWS-HPIA64-FP0001
9.2.0-TIV-TWS-LINUX_X86_64-FP0001
9.2.0-TIV-TWS-LINUX390-FP0001
9.2.0-TIV-TWS-LINUXPPC-FP0001
9.2.0-TIV-TWS-SOLARIS_I386-FP0001
9.2.0-TIV-TWS-SOLARIS-FP0001
9.2.0-TIV-TWS-WINDOWS_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS-WINDOWS_AGENT-FP0001
9.2.0-TIV-TWS-WINDOWS_X86_64_AGENT_FOR_ZOS-FP0001
9.2.0-TIV-TWS-WINDOWS_X86_64_AGENT-FP0001
9.2.0-TIV-TWS-WINDOWS_X86_64-FP0001

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Environment:
    MDM: TWS 8.5.1 + FP0001
    
    Replication steps:
    Job Stream with 1 job:
    SCHEDULE FAN851#JSRES01
    NEEDS 1 FAN851#RES01
    :
    FAN851#JOBSLP0
    END
    
    Job Stream with 2 jobs:
    SCHEDULE FAN851#JSRES02
    NEEDS 1 FAN851#RES02
    :
    FAN851#JOBSLP0
    FAN851#JOBSLP2
    FOLLOWS JOBSLP0
    END
    
    Notes: Duration of JOBSLP2 is shorter than JOBSLP0.
    
    
    Flows of releasing a resource:
    Case 1: JS with 1 job:
    
    -Submit a job stream.
    %sj
                                                   (Est)  (Est)
    CPU      Schedule SchedTime  Job      State Pr Start  Elapse
    RetCode Deps
    
    FAN851  #JSRES01  1112 07/14 ******** READY 10       (00:02)
    -RES01-
                                 JOBSLP0  READY 10       (00:02)
    %lc @;10;noask
    Command forwarded to batchman for FAN851
    
    -Resource is held because the job starts.
    %sr
    CPU#Resource      Total Available    Qty UsedBy
    FAN851#RES01          1         0      1  FAN851#JSRES01[(1112
    07/14/14),(JSRES01)]
    %sj
                                                   (Est)  (Est)
    CPU      Schedule SchedTime  Job      State Pr Start  Elapse
    RetCode
    Deps
    
    FAN851  #JSRES01  1112 07/14 ******** EXEC  10 11:13 (00:02)
                                 JOBSLP0  EXEC +10 11:13 (00:02)
    #J1171536
    %sr
    CPU#Resource      Total Available    Qty UsedBy
    FAN851#RES01          1         0      1  FAN851#JSRES01[(1112
    07/14/14),(JSRES01)]
    
    -Cancel the running job.
    %cancel jsres01.jobslp0
    Command forwarded to batchman for FAN851#JSRES01[(1112
    07/14/14),(JSRES01)].JOBSLP0
    
    -Resource is released because job is cancelled and job stream
    becomes SUCC, although a job is still running.
    %sr
    CPU#Resource      Total Available    Qty UsedBy
    FAN851#RES01          1         1    No holders of this resource
    %ss
                                          (Est)  (Est)    Jobs   Sch
    CPU      Schedule SchedTime  State Pr Start  Elapse   #  OK
    Lim    Deps
    FAN851  #JSRES01  1112 07/14 SUCC  10 11:13  00:00    1   0
    %sj
                                                   (Est)  (Est)
    CPU      Schedule SchedTime  Job      State Pr Start  Elapse
    RetCode
    Deps
    
    FAN851  #JSRES01  1112 07/14 ******** SUCC  10 11:13  00:00
                                 JOBSLP0  EXEC +10 11:13 (00:02)
    #J1171536; [Cancelled]
    
    
    
    Case 2: JS with 2 jobs:
    
    -Submit a job stream.
    %sj
                                                   (Est)  (Est)
    CPU      Schedule SchedTime  Job      State Pr Start  Elapse
    RetCode Deps
    
    FAN851  #JSRES02  1120 07/14 ******** READY 10       (00:04)
    -RES02-
                                 JOBSLP0  READY 10       (00:02)
                                 JOBSLP2  HOLD  10       (00:02)
    JOBSLP0
    %lc @;10;noask
    Command forwarded to batchman for FAN851
    
    -Resource is held because the first job starts.
    %sr
    CPU#Resource      Total Available    Qty UsedBy
    FAN851#RES02          1         0      1  FAN851#JSRES02[(1120
    07/14/14),(JSRES02)]
    %sj
                                                   (Est)  (Est)
    CPU      Schedule SchedTime  Job      State Pr Start  Elapse
    RetCode Deps
    
    FAN851  #JSRES02  1120 07/14 ******** EXEC  10 11:22 (00:04)
                                 JOBSLP0  EXEC +10 11:22 (00:02)
    #J270548
                                 JOBSLP2  HOLD  10       (00:02)
    JOBSLP0
    
    -Cancel the first job, then the second job starts.  Resource is
    still
    held.
    %cancel jsres02.jobslp0
    Command forwarded to batchman for FAN851#JSRES02[(1120
    07/14/14),(JSRES02)].JOBSLP0
    %sj
                                                   (Est)  (Est)
    CPU      Schedule SchedTime  Job      State Pr Start  Elapse
    RetCode Deps
    
    FAN851  #JSRES02  1120 07/14 ******** EXEC  10 11:22 (00:04)
                                 JOBSLP0  EXEC +10 11:22 (00:02)
    #J270548; [Cancelled]
                                 JOBSLP2  EXEC +10 11:22 (00:02)
    #J999580
    %sr
    CPU#Resource      Total Available    Qty UsedBy
    FAN851#RES02          1         0      1  FAN851#JSRES02[(1120
    07/14/14),(JSRES02)]
    %ss
                                          (Est)  (Est)    Jobs   Sch
    CPU      Schedule SchedTime  State Pr Start  Elapse   #  OK
    Lim    Deps
    FAN851  #JSRES02  1120 07/14 EXEC  10 11:22  ( 0:04)  2   0
    
    
    -The second job duration is shorter and the first job, so the
    second job becomes SUCC.
    %sj
                                                   (Est)  (Est)
    CPU      Schedule SchedTime  Job      State Pr Start  Elapse
    RetCode
    Deps
    
    FAN851  #JSRES02  1120 07/14 ******** EXEC  10 11:22 (00:04)
                                 JOBSLP0  EXEC +10 11:22 (00:02)
    #J270548; [Cancelled]
                                 JOBSLP2  SUCC  10 11:22  00:01
       0
    #J999580
    
    -Although the second job is SUCC, job stream is in EXEC status
    and the resource is not released.
    %sr
    CPU#Resource      Total Available    Qty UsedBy
    FAN851#RES02          1         0      1  FAN851#JSRES02[(1120
    07/14/14),(JSRES02)]
    %ss
                                          (Est)  (Est)    Jobs   Sch
    CPU      Schedule SchedTime  State Pr Start  Elapse   #  OK
    Lim    Deps
    FAN851  #JSRES02  1120 07/14 EXEC  10 11:22  ( 0:04)  2   1
    %sr
    CPU#Resource      Total Available    Qty UsedBy
    FAN851#RES02          1         0      1  FAN851#JSRES02[(1120
    07/14/14),(JSRES02)]
    
    -After the first job completes, the job stream becomes SUCC and
    the resource is released.
    %sj
                                                   (Est)  (Est)
    CPU      Schedule SchedTime  Job      State Pr Start  Elapse
    RetCode Deps
    
    FAN851  #JSRES02  1120 07/14 ******** SUCC  10 11:22  00:02
                                 JOBSLP0  SUCC  10 11:22  00:02
       0
    #J270548; [Cancelled]
                                 JOBSLP2  SUCC  10 11:22  00:01
       0
    #J999580
    %ss
                                          (Est)  (Est)    Jobs   Sch
    CPU      Schedule SchedTime  State Pr Start  Elapse   #  OK
    Lim    Deps
    FAN851  #JSRES02  1120 07/14 SUCC  10 11:22  00:02    2   1
    %sr
    CPU#Resource      Total Available    Qty UsedBy
    FAN851#RES02          1         1    No holders of this resource
    %
    
    
    Expected result would be:
    A resource was released after the second job became SUCC,
    because the first job was already cancelled in case 2.
    
    Behavior should be consistent regardless of number jobs defined
    in job stream.
    

Local fix

  • Not working as designed.
    

Problem summary

  • There is a missing check in the TWS batchman code.
    See APAR DESCRIPTION for further details.
    

Problem conclusion

  • The APAR will be fixed in 8.5.0 FP6, 8.5.1 FP5, 8.6 FP4, 9.1 FP2
    and 9.2 FP1
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV62943

  • Reported component name

    TIV WKLD SCHDL

  • Reported component ID

    5698WKB85

  • Reported release

    8A5

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2014-07-25

  • Closed date

    2014-10-15

  • Last modified date

    2014-10-15

  • 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

    TIV WKLD SCHDL

  • Fixed component ID

    5698WKB85

Applicable component levels

  • R8A5 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSGSPN","label":"IBM Workload Scheduler"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8A5","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 October 2014