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, andthen proceeds.
Note that timestamp 1501084546 = Wednesday 26 July 2017 11:55:46 Eastern = BEFORE the database was started.
What am I doing wrong?
I can't see that you are doing anything wrong. What sort of ABL are your clients running?
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.
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.
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 #.