IDMS

 View Only
  • 1.  LIMITS for ONLINE

    Posted Apr 12, 2012 07:15 PM
    All:
    Is there a way to turn limits for online on without affecting everything that runs and since the offending task has a system generation defined task code there is a way to override the SYSTEM with the task code limits.
    It appears easy to do but I only want limits on for one task code and not every task that gets executed and we don't want to have to write something special, it appears that IDMS may be able to do this on its own.
    Also do I need to have certain values for the Statistics that are being collected, right now I have:

    [color=#1105b9]STATISTICS INTERVAL OFF NOLINE TASK COLLECT NOUSER NOTRANSACTION.[color]

    Thanks for your feedback.

    William M. Allen, Jr.


  • 2.  RE: LIMITS for ONLINE

    Posted Apr 12, 2012 07:19 PM
    Bill - "system limits" are either ON or OFF - this can be done by "online" (internal) or batch / CICS / TSO (external) - and the LIMITS themselves can be set appropriately for INTERNAL / EXTERNAL. Once turned ON (enabled) the limits would apply to all tasks since the system generation[b] default for tasks is: Storage Limit SYSTEM Lock Limit SYSTEM Call Limit SYSTEM DBIO Limit SYSTEM!

    In order to reduce the limits to a few task codes you would need to generate syntax for ALL OTHER task codes to specify: Storage Limit OFF Lock Limit OFF Call Limit OFF DBIO Limit OFF!

    If you are an ADS shop this is highly problematic - since all ADS work runs under either the invoking task code for the Application entry ADS Function (first execution of any application thread), all other work for the application is done by the [color=#2206b2]ADS2[color] task! So ADS work can not be broken down unless all ADS work are mainline, preamp only dialogs that do NOT do a pseud-converse (i.e. no DISPLAY statements).

    As for the required Statistics settings - you currently have the following set: STATISTICS INTERVAL OFF NOLINE TASK COLLECT NOUSER NOTRANSACTION. This is appropriate for your purpose - BUT - lets' break it down:

    [color=#2206b2]STATISTICS INTERVAL OFF[color] --> indicates that writing system statistics at fixed intervals is disabled - they are still written at system SHUTDOWN

    [color=#2206b2]NOLINE[color] --> says not to gather statistics for the DC Lines

    [color=#2206b2]TASK COLLECT[color] --> tells the system to create and update the task statistics control blocks - but not to WRITE them out - this does make the statistics available to Perf Mon which can then write them to the LOG or SMF - and more importantly in this case so that system LIMITS can be activated and enforced

    [color=#2206b2]NOUSER[color] --> tells the system to combine SYSTEM mode and USER mode time into a single figure - there is a significant overhead for breaking this out

    [color=#2206b2]NOTRANSACTION[color] --> allows collection of statistics across multiple TASKs with START and END TRANSACTION commands issued from the IDMS-DC application - this feature is disabled by the current specification - I have never seen it used

    HTH - cheers - Gary


  • 3.  RE: LIMITS for ONLINE

    Posted Apr 12, 2012 07:31 PM
    Gary:

    Limits for online are already on at the system level for CALLS and DBIO but they are set at 300,000 for calls and 400,000 for DBIO but the system is NOT enforcing limits because we have two tasks that execute 24 X 7 X 365 and they have millions of calls and millions of DBIO and in the sysgen task statement for these two tasks all the limits are OFF? If they were getting enforced wouldn't these two tasks get booted?

    Never mind I just figured it out, these two tasks are triggered by CICS so they must be getting treated as EXTERNAL and limits for external are off.

    The offending transaction is also coming across from CICS and the task code executes program RHDCNP3S.

    [color=#1106b2]So the real question is how to do this for the offending tasks without affecting all CICS transactions and batch jobs? [color]

    William M. Allen, Jr.


  • 4.  RE: LIMITS for ONLINE

    Posted Apr 12, 2012 11:55 PM
    Bill

    We had a similar problem, and solved it. I'm not at the office, so I am going to have to go from memory here.

    I believe that we approached it by being able to vary the limits on an active task, i.e., not the task code, but on the actual task ID number.

    We did this by running a job every 5 minutes (I think) that did a DCMT D ACT TASK. The job then scanned the output for the program name that we wanted, and returned its task ID number. It then performed a DCMT VARY ACT TASK ID nnnnnn DBIO LIMIT 150000 or similar to that. Check the manual for the syntax on VARY ACTIVE TASK.

    Good luck
    Jim Ritterbusch


  • 5.  RE: LIMITS for ONLINE

    Posted Apr 12, 2012 11:54 PM
    All:


    In looking at this sysgen syntax and parameters it appears that I could set the CALL LIMIT for EXTERNAL tasks is 0, and turn limits for external enabled and then on the task code for the offending task override the CALL LIMIT to a value that it should not exceed? Has anyone ever done that? Maybe we can get CA to assist with this question.
    In effect I would have external limits enabled but with a call limit of 0 except for the offending task code.

    [color=#0208b3]>_ _____________________________________________________________________
    ____>
    | _________________________________________________________________ |
    |_v_ _ CALl ____ _ LIMit for _ _ ONLine ___ _ tasks is _ _ 0 < ___ _|_|
    |_ DBIo ____| |_ EXTernal _| |_ limit _|
    |_ LOCk ____|
    |_ STOrage _|


    >_ ______________________________________________________
    ___________________>
    | __________________________________________________ |
    |_v_ LIMits for _ _ ONLine ___ _ are _ _ ENAbled __ _|_|
    |_ EXTernal _| |_ DISabled _|
    |_ OFF < ____|
    [color]

    LIMit for tasks is limit

    Defines limits for task resource usage. Limit specifies the limit for each resource.

    0, the default, directs the system not to limit task usage of the named resource.

    You can code two LIMIT parameters for each resource: one for online tasks and one for ERUS tasks. Specify only one resource in each LIMIT parameter.

    William M. Allen, Jr.


  • 6.  RE: LIMITS for ONLINE

    Posted Apr 14, 2012 12:51 AM
    Bill,

    To override the limits for a batch program, you[color=#0909aa] define a task code [color]with the[b] batch program name as the task name, and RHDCNP3S for the program name.

    To override the limits for a CICS program, you[color=#0909aa] define a task code[color] with the[b] CICS transaction name as the task name, and RHDCNP3S for the program name.

    Sounds strange, but it works.

    You can set the limits to whatever you want them to be in the task definition. Once the task code is defined, you can use DCMT to change the limits dynamically if needed.

    If you don't see this answer appear on IDMS-L, could you please re-post it if you found it helpful? Most (but not all) of my IDMS-L postings are rejected by the listserv these days.

    Kay Rozeboom


  • 7.  RE: LIMITS for ONLINE

    Posted Apr 14, 2012 12:52 AM
    Hello Kay:

    Thank you for your response. I have done exactly that many times, in fact in this case there is a task code defined for the offending CICS task as we have given it a priority because it is only an inquiry; and I am aware of the limit overrides on the task code definition, I have also done this many times with batch jobs to bump up the priority so online users won’t cause it to abort with a deadlock.

    What I want to do is turn on LIMITS FOR EXTERNAL, set the values to zero (0) and then specify LIMITS at the task code level for the offending task without affecting all external requests but I don't want to do this in Production without knowing that it will work and doing this is test is of no value because there is hardly any testing at all going on at this time.

    William M. Allen, Jr.


  • 8.  RE: LIMITS for ONLINE

    Posted Apr 14, 2012 12:54 AM
    I'm not quite sure if this is what you are asking, but the definitions below show how we give a CICS task the same CALL and DBIO limits as the online tasks, while keeping them turned off for batch.

    DCMT D LIMITS
    ONLINE TASK LIMITS ARE ENABLED
    STORAGE LIMIT 1000
    LOCK LIMIT 7500
    CALL LIMIT 35000
    DBIO LIMIT 8000
    EXTERNAL TASK LIMITS ARE ENABLED
    STORAGE LIMIT 1000
    LOCK LIMIT 5000
    CALL LIMIT OFF
    DBIO LIMIT OFF

    DCMT D TASK WDEF
    TASK CODE WDEF
    PROGRAM/MAP RHDCNP3S
    MAP/NOMAP NOMAP
    INPUT/NOINPUT NOINPUT
    PRIORITY 110
    STATUS ENABLED AND INSRV
    PRINT KEY OFF
    STALL INTV 00600
    QUIESCE WAIT 00600 (SYSTEM)
    EXTERNAL WAIT 00900 (SYSTEM)
    RESOURCE INTVL 01800 (SYSTEM)
    RESOURCE PROGM RHDCBYE
    TIMES CALLED 0001511
    CURRENT THREADS 00000
    MAX CONCURRENT OFF
    TERM OUTPUT NOSAVE
    AUTOTASK NO
    LOCATION ANY
    TRANS SHARING OFF(SYSTEM)
    ON COMMIT WRITE COMT(SYSTEM)
    ON ROLLBACK RETAIN ID(SYSTEM)
    STORAGE LIMIT 0000001000
    LOCK LIMIT 0000007500
    CALL LIMIT 0000035000
    DBIO LIMIT 0000008000

    Kay Rozeboom


  • 9.  RE: LIMITS for ONLINE

    Posted Apr 14, 2012 12:55 AM
    Kay:

    Yes that is kind of what I am asking, but I only want to turn on external limits for one CICS task and essentially leave them off for everything else.

    Since you have limits enabled for external and your values are pretty low; for example your lock limit is 5,000 do you not have any batch jobs that may have more than 5,000 locks or use more than 1,000K?

    Plus the limits for external calls and DBIO are off, so how do you know if this task code override is even working for CALLS and DBIO?

    My client has huge batch jobs that run throughout the night.

    William M. Allen, Jr.