<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: JIB$L_FLAGS in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754103#M41096</link>
    <description>&lt;!--!*#--&gt;Like Ian indicates.&lt;BR /&gt;&lt;BR /&gt;$ libr/extr=$jibdef/out=tt: sys$library:lib.mlb&lt;BR /&gt;&lt;BR /&gt;$EQU    JIB$V_BYTCNT_WAITERS    0&lt;BR /&gt;$EQU    JIB$V_TQCNT_WAITERS     1&lt;BR /&gt;&lt;BR /&gt;Recent example I had below. I used some hex values with cut &amp;amp; past, but you can also simply use symbols 'PCB' and 'JIB' and such after SET PROCESS.&lt;BR /&gt;&lt;BR /&gt;Hein&lt;BR /&gt;&lt;BR /&gt;$ ANALYZE/SYSTEM&lt;BR /&gt;SDA&amp;gt; set proc/id=20218192&lt;BR /&gt;SDA&amp;gt; SHOW PROCESS&lt;BR /&gt;PCB address              8868FF0&lt;BR /&gt;SDA&amp;gt; read sysdef&lt;BR /&gt;SDA&amp;gt; exa  8868FF00+PCB$L_EFWM&lt;BR /&gt;PCB+000F8:  00000000.886E2440&lt;BR /&gt;SDA&amp;gt; ex 886E2440&lt;BR /&gt;JIB:  886E2440.886E2440&lt;BR /&gt;SDA&amp;gt; format jib&lt;BR /&gt;:&lt;BR /&gt;FFFFFFFF.886E2460   JIB$L_BYTCNT                             03E8702E&lt;BR /&gt;FFFFFFFF.886E2464   JIB$L_BYTLM                     03E8702E&lt;BR /&gt;:&lt;BR /&gt;FFFFFFFF.886E2478   JIB$L_TQCNT                              00000000&lt;BR /&gt;FFFFFFFF.886E247C   JIB$L_TQLM                      0000000A&lt;BR /&gt;:&lt;BR /&gt;FFFFFFFF.886E24BC   JIB$L_FLAGS                     00000002&lt;BR /&gt;&lt;BR /&gt;SDA&amp;gt; show proc /tq ...&lt;BR /&gt;</description>
    <pubDate>Thu, 17 Feb 2011 13:31:25 GMT</pubDate>
    <dc:creator>Hein van den Heuvel</dc:creator>
    <dc:date>2011-02-17T13:31:25Z</dc:date>
    <item>
      <title>JIB$L_FLAGS</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754101#M41094</link>
      <description>How to find out if a process is depleted of any quota from JIB.&lt;BR /&gt;&lt;BR /&gt;Thanks</description>
      <pubDate>Thu, 17 Feb 2011 09:50:24 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754101#M41094</guid>
      <dc:creator>Mulder_1</dc:creator>
      <dc:date>2011-02-17T09:50:24Z</dc:date>
    </item>
    <item>
      <title>Re: JIB$L_FLAGS</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754102#M41095</link>
      <description>If a process is waiting for a pooled quota i.e on that is shared between processes and it's subprocess then the event flag wait mask in the PCB contains the address of the JIB and a flag is set in JIB$L_FLAGS&lt;BR /&gt;&lt;BR /&gt;JIB$M_BYTCNT_WAITERS indicates job buffered I/O byte count exhausted&lt;BR /&gt;&lt;BR /&gt;JIB$M_TQCNT_WAITERS indicates waiting for timer quota &lt;BR /&gt;&lt;BR /&gt;The process can also be waiting for open file quota if jib.jib$l_filcnt is 0 or page file quota if jib.jib$l_pgflcnt is 0</description>
      <pubDate>Thu, 17 Feb 2011 10:17:28 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754102#M41095</guid>
      <dc:creator>Ian Miller.</dc:creator>
      <dc:date>2011-02-17T10:17:28Z</dc:date>
    </item>
    <item>
      <title>Re: JIB$L_FLAGS</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754103#M41096</link>
      <description>&lt;!--!*#--&gt;Like Ian indicates.&lt;BR /&gt;&lt;BR /&gt;$ libr/extr=$jibdef/out=tt: sys$library:lib.mlb&lt;BR /&gt;&lt;BR /&gt;$EQU    JIB$V_BYTCNT_WAITERS    0&lt;BR /&gt;$EQU    JIB$V_TQCNT_WAITERS     1&lt;BR /&gt;&lt;BR /&gt;Recent example I had below. I used some hex values with cut &amp;amp; past, but you can also simply use symbols 'PCB' and 'JIB' and such after SET PROCESS.&lt;BR /&gt;&lt;BR /&gt;Hein&lt;BR /&gt;&lt;BR /&gt;$ ANALYZE/SYSTEM&lt;BR /&gt;SDA&amp;gt; set proc/id=20218192&lt;BR /&gt;SDA&amp;gt; SHOW PROCESS&lt;BR /&gt;PCB address              8868FF0&lt;BR /&gt;SDA&amp;gt; read sysdef&lt;BR /&gt;SDA&amp;gt; exa  8868FF00+PCB$L_EFWM&lt;BR /&gt;PCB+000F8:  00000000.886E2440&lt;BR /&gt;SDA&amp;gt; ex 886E2440&lt;BR /&gt;JIB:  886E2440.886E2440&lt;BR /&gt;SDA&amp;gt; format jib&lt;BR /&gt;:&lt;BR /&gt;FFFFFFFF.886E2460   JIB$L_BYTCNT                             03E8702E&lt;BR /&gt;FFFFFFFF.886E2464   JIB$L_BYTLM                     03E8702E&lt;BR /&gt;:&lt;BR /&gt;FFFFFFFF.886E2478   JIB$L_TQCNT                              00000000&lt;BR /&gt;FFFFFFFF.886E247C   JIB$L_TQLM                      0000000A&lt;BR /&gt;:&lt;BR /&gt;FFFFFFFF.886E24BC   JIB$L_FLAGS                     00000002&lt;BR /&gt;&lt;BR /&gt;SDA&amp;gt; show proc /tq ...&lt;BR /&gt;</description>
      <pubDate>Thu, 17 Feb 2011 13:31:25 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754103#M41096</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2011-02-17T13:31:25Z</dc:date>
    </item>
    <item>
      <title>Re: JIB$L_FLAGS</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754104#M41097</link>
      <description>&amp;gt; if a process is depleted of any &lt;BR /&gt;&amp;gt; quota from JIB.&lt;BR /&gt;&lt;BR /&gt;  Most quotas are PROCESS wide, so you determine depletion from the PCB by looking the remaining quota field PCB$L_*CNT. For example PCB$L_ASTCNT, PCB$L_BIOCNT, PCB$L_DIOCNT etc... When one reaches 0 you've run out of that quota.&lt;BR /&gt;&lt;BR /&gt;The corresponding PCB$L_*LM field is a constant setting the initial quota, derived from the PQL when the process was created. It's irrelevant for measuring depletion, unless you want to express the current state as a percentage.&lt;BR /&gt;&lt;BR /&gt;As Ian and Hein have said, there are two quotas which are shared across the whole job, and therefore tracked in the JIB.&lt;BR /&gt;&lt;BR /&gt;JIB$L_FLAGS is set if any process in the job tree is in a resource wait state, pending the return of job wide quota from elsewhere in the job tree. This is also different treatment from other quotas. If you run out of a process only quota, you just fail with some kind of EXQUOTA error, rather than attempting to wait for it.&lt;BR /&gt;&lt;BR /&gt;A few other things about JIB$L_FLAGS:&lt;BR /&gt;&lt;BR /&gt;$EQU    JIB$V_BYTCNT_WAITERS    0&lt;BR /&gt;$EQU    JIB$V_TQCNT_WAITERS     1&lt;BR /&gt;&lt;BR /&gt;Possible values are 0,1,2 or 3. Don't assume you can't see both flags set.&lt;BR /&gt;&lt;BR /&gt;You can't tell WHICH process in the job tree is waiting just by looking at the JIB. There could be numerous processes in the job tree, each in one of the two possible resource states (or indeed, I believe it's possible for a single process to be in BOTH resource wait states, but it would probably take a seriously demented piece of code to achieve it!).&lt;BR /&gt;&lt;BR /&gt;For an individual process, you will see a non zero JIB$L_FLAGS and the JIB address in PCB$L_EFWM.&lt;BR /&gt;&lt;BR /&gt;All that said, for tracking processes poking around in PCBs and JIBs is a rather large hammer. You're better off using the intended system service $GETJPI. The lexical function F$GETJPI can be used from DCL, but be aware that it can only sample a single value at a time. Gathering multiple quotas is therefore expensive, and potentially misleading as there are timing windows between samples.</description>
      <pubDate>Thu, 17 Feb 2011 20:40:21 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754104#M41097</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2011-02-17T20:40:21Z</dc:date>
    </item>
    <item>
      <title>Re: JIB$L_FLAGS</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754105#M41098</link>
      <description>&lt;!--!*#--&gt;&amp;gt;&amp;gt; You're better off using the intended system service $GETJPI. The lexical function F$GETJPI can be used from DCL, but be aware that it can only sample a single value at a time. Gathering multiple quotas is therefore expensive, and potentially misleading as there are timing windows between samples.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Sure, and one very convenient way to do so is &lt;BR /&gt;$ SHOW PROC/CONT /ID=xxxx.&lt;BR /&gt;Then hit 'q' for the quota page.&lt;BR /&gt;&lt;BR /&gt;However, the target process is likely in Mutex wait state, and you may have to 'try' several times to 'get in' without "process is suspended" message.&lt;BR /&gt;&lt;BR /&gt;$ show sys/proc=xxxx*&lt;BR /&gt;OpenVMS V8.3-1H1  on node xxxxx   17-FEB-2011 15:56:56.92   Uptime  49 05:12:24&lt;BR /&gt;  Pid    Process Name    State  Pri      I/O       CPU       Page flts  Pages&lt;BR /&gt;202210A7 xxxxRESP        HIB      4   459516   0 00:00:32.65      3532   3176  B&lt;BR /&gt;20221662 xxxxSEND        MUTEX    6  1365217   0 00:01:40.22      3512   3189  B&lt;BR /&gt;$ show proc/id=20221662&lt;BR /&gt;%SYSTEM-F-SUSPENDED, process is suspended&lt;BR /&gt;&lt;BR /&gt;But this works anyway:&lt;BR /&gt;&lt;BR /&gt;$ write sys$output f$getjpi("20221662","TQCNT")&lt;BR /&gt;0&lt;BR /&gt;&lt;BR /&gt;After a dozen tries: $show proc/id=20221662/cont&lt;BR /&gt;&lt;BR /&gt;                             Process xxxxSEND                     16:08:06&lt;BR /&gt;    State               MWAIT               Working set               3189&lt;BR /&gt;    PID                 20221662&lt;BR /&gt;:&lt;BR /&gt;    ASTs remaining                      6038/6138                 ( 98%)&lt;BR /&gt;    Timer entries remaining                0/100                  (  0%)&lt;BR /&gt;:&lt;BR /&gt;&lt;BR /&gt;btw... I just wrote a GETJPI tool to go over all processes and check all quotas/use. &lt;BR /&gt;Want that?&lt;BR /&gt;&lt;BR /&gt;Output for that tool for the above system:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;$ perl GETJPI_QUOTAS.PL  getjpi_xxxx.tmp&lt;BR /&gt;&lt;BR /&gt;Name    Left      PID USERNAME    Remaining/Quota    Image&lt;BR /&gt;-------  --- -------- ------------ --------/-------- ------------&lt;BR /&gt;Timers    0% 20221662 "xxxxSEND"          0/100&lt;BR /&gt;&lt;BR /&gt;Checked 69 processes for 50% quota usage on node xxxx&lt;BR /&gt;Sample taken at 17-FEB-2011 14:51:50.37&lt;BR /&gt;&lt;BR /&gt;Quota     Max_Use  Pql_Min  Pql_Def PID      Username     Image&lt;BR /&gt;-------- -------- -------- -------- -------- ------------ ---------------------&lt;BR /&gt;Buf_IO          3      100       32 2020041A SYSTEM       SMISERVER;&lt;BR /&gt;Dir_IO          1      100       32 2021C43F xxxx_BATCH  DTR32&lt;BR /&gt;Locks         514      300     2048 2021C43F xxxx_BATCH  DTR32&lt;BR /&gt;Bytes         640   128000   262144 20200407 SYSTEM       n.a.&lt;BR /&gt;Procs           5       10       32 20220EBC HEIN         T4$HIB;&lt;BR /&gt;ASTs          100      100       24 20221662 "xxxxSEND"&lt;BR /&gt;Files          67      256      128 202210A7 xxxx_BATCH  xxxxRESP;&lt;BR /&gt;Timers        100        0       16 20221662 "xxxxSEND"&lt;BR /&gt;PagFil      52960   512000   700000 20220EBC HEIN         T4$HIB;&lt;BR /&gt;</description>
      <pubDate>Thu, 17 Feb 2011 21:10:05 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754105#M41098</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2011-02-17T21:10:05Z</dc:date>
    </item>
    <item>
      <title>Re: JIB$L_FLAGS</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754106#M41099</link>
      <description>If you want tools then Availability Manager is very good for process quota issues.&lt;BR /&gt;&lt;BR /&gt;I also wrote PWAIT$SDA - an SDA extension for looking at waiting processes which attempts to diagnose this sort of thing.</description>
      <pubDate>Fri, 18 Feb 2011 09:57:13 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754106#M41099</guid>
      <dc:creator>Ian Miller.</dc:creator>
      <dc:date>2011-02-18T09:57:13Z</dc:date>
    </item>
    <item>
      <title>Re: JIB$L_FLAGS</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754107#M41100</link>
      <description>&lt;BR /&gt;fwiw.... It appears that the problem TQ quoate being exhausted in the case I was looking into, was caused by an interaction between LIB$WAIT and RDB. &lt;BR /&gt;We added LIB$K_NOWAKE as flag argument to LIB$WAIT and it is all quiet now. THe offending process now has just 2 Timers used and is in LEF instead of MUTEX state&lt;BR /&gt;&lt;BR /&gt;Hein&lt;BR /&gt;</description>
      <pubDate>Fri, 18 Feb 2011 13:22:07 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/jib-l-flags/m-p/4754107#M41100</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2011-02-18T13:22:07Z</dc:date>
    </item>
  </channel>
</rss>

