Re: SYS$QIOW - Performance Issue

From: JF Mezei (jfmezei.spamnot_at_istop.com)
Date: 05/26/03


Date: Mon, 26 May 2003 05:36:50 -0400

Vivek wrote:
> If some process is writing to the mail box and other wants to read it, can I
> see it in reference count?.

Yes, you would see a reference count of 2.

But you could also have a single process generating a reference count of 2 if
it has 2 channels opened to that mailbox (for instance a lonely process
talking to itself with thr writes done on channel 1 and reads on channel 2.

> Most probably I will have to check if the block is written into the mailbox
> or not as pointed by Ron.

Another thing you can do, from a SPARE terminal:

$OPEN /READ/WRITE TEMP MBAnnn:
$WRITE TEMP "Deadly chocolate mousse"
$CLOSE TEMP

See if this triggers the READ in your process.

Note: if the maibox is full because the reads do not work, the above may get
stuck in the WRITE statement and you might need to kill the process. (or wait
for the reading process to read from mailbox). But if that happens, it gives
you an idea.

Are you sure that the reading process has actually issued the QIOW ? Is it
possible it is getting stuck waiting for something else before getting to the
QIOW ? (and when it does get to it, it comletes immetiatly because there is
already data in the mailbox).

Another thing you can do:

$OPEN/READ/WRITE TEMP MBAnnn:
$READ TEMP test
$SHOW SYMBOL TEST
$CLOSE TEMP

if the read completes right away, while your other main process is still
taking 10 minutes, it is an indication that the other process had not queued
the request to read before you queued yours, so you got the first packet in
the mailbox.

If the read gets stuck, you can either kill the process or get another process
to write to the mailbox (see the example above) and that will free it.

This can help you *MAYBE* understand what is going on.

Another thing to look at is the transaction count in the SHOW DEV/FULL to see
if it moves.



Relevant Pages

  • Re: SYS$QIOW - Performance Issue
    ... writing datablock becuase of lot of processing required. ... > $CLOSE TEMP ... > stuck in the WRITE statement and you might need to kill the process. ... > for the reading process to read from mailbox). ...
    (comp.os.vms)
  • Re: ACCESS97, try to relink reference to another MDB
    ... when you move your application to the second machine, the reference to ... Dim ref As Reference ... Set ref = Application.References ... Dim temp$, resp ...
    (comp.databases.ms-access)
  • Re: High level modeling with SystemVerilog
    ... defining dynamic arrays for lines: ... typedef mailbox #Line_MB; ... a REFERENCE to vline, not the object itself. ...
    (comp.lang.verilog)
  • Re: Safely Raising Events in Multithreaded app.
    ... The meaning of taking a temp reference is that if the last subscriber of the ... the TestEvent would be null and the TestEventcall ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Duplicate messages
    ... you will have to delete the temp table which will stop this. ... Server MAPI Editor window. ... Once logged in, click MDB, and select Get Mailbox Table. ...
    (microsoft.public.exchange.admin)