Idxactivate + usernotifytime

Posted by Paul Koufalis on 28-Jul-2017 12:51

OE 11.7.1 on AIX 6.1

I am trying to activate indexes online. What am I doing wrong?

My database is started with -usernotifytime 180.

I am running _proutil db -C idxactivate table.index recs 10000 refresh 200

Here is my output:

Index Activate: Primary index in use for building keys. (14815)
Index Activate: index abc123 in use for building keys. (15883)
Index Activate: BEGIN activation of newIndex. (13258)
Index Activate: recs value: 10000 refresh rate: 200. (13259)
Index record(s) updated at timestamp 1501255613. (18223)
Usr Name Type Pid Timestamp

54 demon ABL 9634114 1501084546
55 demon ABL 43581842 1501084546
... a bunch more ...

Connections with timestamps older than 1501255613 exist. (13246)
Do you wish to continue waiting..... Type y to continue (y/n). (13247)
Index Activate: User canceled Idxactivate operation - index was not activated. (15925)

I answered "y" and the prompt came back 200 seconds later.

The documentation says that idxactivate will wait:

For OpenEdge Release 11.7 and later, if you have enabled Database Client Notification
(-usernotifytime), IDXACTIVATE waits until all connected clients respond to the notification, and
then proceeds.

Note that timestamp 1501084546 = Wednesday 26 July 2017 11:55:46 Eastern = BEFORE the database was started.

What am I doing wrong?

Paul

All Replies

Posted by richt on 28-Jul-2017 15:13

I can't see that you are doing anything wrong.  What sort of ABL are your clients running?

Posted by Paul Koufalis on 28-Jul-2017 19:21

I don't know what you mean by "what sort of ABL". There are about 100 _progres, _proapsv and prowin32 processes connected in shared memory or C/S running regular 4GL code.

What's also weird is that this worked yesterday on other databases on the same server.

This smells like a bug of some sort. I guess I'll have to open a PTS ticket.

Posted by Dmitri Levin on 31-Jul-2017 11:55

Paul, that feature is the next step in "Online schema changes", kind of version 1.0. It could not be without errors. Please open PTS ticket.

BTW, since you have the same OE version, could you disconnect shared-memory user from the database that started with  -usernotifytime 180 ? With proshut db -C disconnect or promon option 8 or any other method ( short of kill -9) ? I was not able to do that.

Posted by Paul Koufalis on 31-Jul-2017 12:18

It's weird. After a database restart (this is DVP so restarted every night), the idxactivate worked as expected today.

I was able to successfully disconnect a user using proshut db -C disconnect #.

This thread is closed