Hi Binyamin  and thanks a lot for your first response.

This is the TCB and PRB list from BMC Service Prog:

AMTT72I §TCB1 TCB 9FD6A0 Prty 255 NDSP 0000 PK 00
AMTT7LI !----------------------------------------------------------   1
AMTT7YI  OTC 000000 NTC 000000 LTC 9FED90 JSTCB 9FD6A0     0.00 CPU Sec
AMTT73I PRB  9FFF98  EP 8D93D300  WLIC 0002004F               IEAVAR00
AMTT7XI PSW 070C0000 814E207A  WT 00  CDE 00FA8690

AMTT72I §TCB2 TCB 9FED90 Prty 255 NDSP 0401 PK 00
AMTT7LI -!---------------------------------------------------------   2
AMTT7YI  OTC 9FD6A0 NTC 9FF068 LTC 9EE058 JSTCB 9FED90     0.00 CPU Sec
AMTT73I PRB  9FEC80  EP 8AB6E000  WLIC 00020006               IEESB605
AMTT7XI PSW 070C1000 8AB6E722  WT 00  CDE 00D1A7C0
AMTT73I PRB  9FEAB8  EP 8AC38958  WLIC 00020001               IEFSD060
AMTT7XI PSW 070C1000 8AC4757E  WT 01  CDE 00D143D0

AMTT72I §TCB3 TCB 9EE058 Prty 255 NDSP 0401 PK 80
AMTT7LI --!--------------------------------------------------------   3
AMTT7YI  OTC 9FED90 NTC 000000 LTC 9CEAA0 JSTCB 9EE058   113.86 CPU Sec
AMTT73I PRB  9EE790  EP 8AC38000  WLIC 00020001               IEFIIC
AMTT7XI PSW 070C1000 8AC4757E  WT 01  CDE 00D24480

AMTT72I §TCB4 TCB 9CEAA0 Prty 255 NDSP 0401 PK 80
AMTT7LI ---!-------------------------------------------------------   4
AMTT7YI  OTC 9EE058 NTC 000000 LTC 9B6210 JSTCB 9CEAA0    32.25 CPU Sec
AMTT73I PRB  9EE598  EP 9EB00000  WLIC 00020001               D2IFCTRC
AMTT7XI PSW 078D1600 9EDF4224  WT 01  CDE 009EE600

AMTT72I §TCB5 TCB 9B6210 Prty 255 NDSP 0401 PK 80
AMTT7LI ----!------------------------------------------------------   5
AMTT7YI  OTC 9CEAA0 NTC 000000 LTC 000000 JSTCB 9CEAA0     0.00 CPU Sec
AMTT73I PRB  9B6158  EP 800ED878  WLIC 0002002F               D2TIMEWA
AMTT7XI PSW 078D0000 800ED8D2  WT 00  CDE 009B61C0
AMTT73I PRB  9FF8F8  EP 00000000  WLIC 00000000
AMTT7XI PSW 070C0000 815317BC  WT 01  CDE 00000000

AMTT72I §TCB6 TCB 9FF068 Prty 255 NDSP 0401 PK 00
AMTT7LI -!---------------------------------------------------------   2
AMTT7YI  OTC 9FD6A0 NTC 000000 LTC 000000 JSTCB 9FF068     0.00 CPU Sec
AMTT73I PRB  9FED08  EP 8AFEF078  WLIC 00020078               IEAVTSDT
AMTT7XI PSW 070C1000 8AFEF522  WT 01  CDE 00D1D880

AMT999I End of TCB
Service
The waiting program is D2GETCM2 (in TCB4) that is called by D2IFCTRC (I
assume it's the very same TCB)
D2TIMEWA(TCB5) is the attached routine waiting for xx seconds and,
answering your question, it seems its PRB is lower than the D2IFCTRC(TCB4)
one.

To be sure, now I gave the DB2 START TRACE COMMAND from D2IFCTRC that this
is the waiting program (before the START TRACE was in D2IFCTRC).
At the moment DB2 ECB is still in the D2IFCTRC working storage.

Nothing changed.

It's clear I don't know how it works, so sorry for these "dummy" questions.
Looking at the WAIT/POST macro description I saw only information about
"allocate one ECB as a fullword" but nothing about the fact the WAIT must
be from a specific TCB or whatever else.

Thanks a lot.
Max


Il giorno gio 7 nov 2024 alle ore 16:34 Binyamin Dissen <
00000662573e2c3a-dmarc-requ...@listserv.ua.edu> ha scritto:

> Have your memory dumper dump the RB chain of the task.
>
> Determine if there is a RB lower than the RB that issued the WAIT.
>
> On Tue, 5 Nov 2024 15:42:15 +0100 Massimo Biancucci
> <000005a019256424-dmarc-requ...@listserv.ua.edu> wrote:
>
> :>Hi everybody,
>
> :>DB2 can provide information to a caller via IFI interface.
> :>During the startup of the process, the caller does a START TRACE
> providing
> :>the ECB to post when the internal DB2 buffer has been filled up to a
> :>certain extent.
>
> :>The main program is PLI and it uses a routine written in assembler that
> :>issues the WAIT macro.
> :>Main program shares three ECBs:
> :>1. For an attached routine that waits for xx seconds
> :>2. For an attached routine that waits for a wallclock (this case it's not
> :>used)
> :>3. For DB2 post (it's the ECB communicated to DB2)
>
> :>Routine uses QEDIT to get console command too.
> :>Routine attaches the two timer programs.
>
> :>Finally, the routine has a four fullwords ECBs list, the three mentioned
> :>before and the fourth that is ECB from QEDIT.
> :>The last address has been HighBit to on to say it's the last one.
>
> :>When I invoke the WAIT, it awakes both for the first ECB or the fourth
> (end
> :>of wait or command received from console). The second is not used in this
> :>case.
> :>It does not awake for DB2 post.
> :>I can see the first byte of the DB2 ECB set to x'40' when the routine
> gives
> :>control to the main so it seems DB2 posted me correctly. The same is live
> :>with a memory dumper, I see the ECB to x'40something' but the WAIT does
> not
> :>terminate until the timer has expired or command has been sent.
> :>If it was relevant, the assembler routine runs in the same TCB of the PLI
> :>main.
>
> --
> Binyamin Dissen <bdis...@dissensoftware.com>
> http://www.dissensoftware.com
>
> Director, Dissen Software, Bar & Grill - Israel
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to