I can add an area to OE Replication enabled database.
prostrct addonline on Target. Then prostrct addonline on Source.
It does not look I can remove area from OE Replication enabled database.
I can truncate bi and remove area from Source, but there is no way to remove it from Target w/o breaking replication of course.
# prostrct remove /Target/sports d "Test Area"
You must use the proutil truncate bi command before doing a remove. (6953)
# proutil /Target/sports -C truncate bi
OpenEdge Release 11.7.1 as of Wed Jun 14 19:00:30 EDT 2017
Access to database /Target/sports not allowed. The database is enabled for site replication but either replication is not running, or this process is not authorized to open a replication enabled database. (10356)
Catch 22 :)
And if I remove an area from Source then replication is broken.
Why I am asking? Because I do that with Oracle all the time. Replication (DataGuard) does not mind that.
Hi Jeff,
Is builddb (official) solution to remove an area from replication enabled database? Does it have any pitfalls?
Not sure the question here. If it is: Am I right? Then, yes you are. Truncate Area is on the list of not allowed utilities (knowledgebase.progress.com/.../P68311). I would suggest your next step is to suggest it as an enhancement in the idea's area (knowledgebase.progress.com/.../P11255).
That was a statement.
There is work around however -- just leave the unused areas as is.
They will be like stumps in my backyard :)
I believe we can have up to 1000 areas in OE, so a couple of unused areas will not hurt much.
There is another way to remove the areas from a database:
proutil -C builddb
Unfortunately this utility will disable replication:
What effect does builddb have on a replication enabled database?
Hi Jeff,
Is builddb (official) solution to remove an area from replication enabled database? Does it have any pitfalls?
But it should work, should't it?
Thank you Jeff and George. That method works fine. Tested with sports on 11.7
On Target:
1. prostrct list dbname
2. edit dbname.st -- remove the line(s) with area that is going to be deleted
3. mv dbname.db dbname_old.db
4. prostrct builddb dbname
5. rm the area .d(s)
Now on Source
1. proutil dbname -C truncate bi
2. prostrct remove dbname d "Area name"
That is it. Start Target and then Source. Statuses are 3101 and 1101 accordingly, as they suppose to be.