Some design elements don't replicate [SOLVED]

I have searched through the forum and I didn’t find anything about my problem, so here it is :

I have a database (NTF) that I want to replicate from a principal replication server to some replication hubs, which then replicate with over 600 servers. The problem is that some of the design elements don’t replicate, they just stay the same whatever we do.

We have cleared replication history, nothing.

We have saved the design elements, one of them eventually replicated on one server.

The replication has been initiated from both servers, nothing.

I guess creating a new replica would do, but with so many servers, I would like to find an easy and fast solution.

Note : there is no replication formula.

Has anyone any clue to what is happening?

Subject: Some design elements don’t replicate

Ho Kristof -

Can you list specifically what type of design elements are not replicating?

I.e. Forms, Sub Forms, Agents?

Thanks,

TJ

Subject: RE: Some design elements don’t replicate

I have two forms (out of 51) and one script library (out of 31).

Kristof.

Subject: RE: Some design elements don’t replicate

If you right click on the design element in Designer and choose design properties, in the Design tab there is a check box that says ‘Prohibt design refresh or replca to modify’

If this box is checked then that specific design element will not update / replicate changes

Subject: RE: Some design elements don’t replicate

Sorry, but the check box isn’t checked…

I just found a server in a worse condition… 90% of the design elements didn’t recently replicate the changes (feb 2006)…

Subject: RE: Some design elements don’t replicate

It could be an ACL thing.

You could be missing design elements that were added/changed since the initial replica was created.

Are you replicating in hub-spoke from one central server?

What level of access do your servers have?

Are the ACLs the same on all copies of the database/template

Are there any old templates/ replica databases that could be screwing things up? This can be one of the most frequent cause of replication problems because people don’t understand that an operating system copy of a DB/template is actually a replica, and they make a ‘backup’ OS copy of a DB , but leave it in or below the server data directory.

Check the replication history in all your notes logs. This could give you some clues…

Subject: RE: Some design elements don’t replicate

The ACL says the servers are managers. The ACLS are the same all over our network (I checked some servers just in case), and there are no OS copies, our administrators are aware of this and the tools used to manage our servers never make any OS copy.

The logs don’t give any clue…

Subject: RE: Some design elements don’t replicate

Clear the replication history and try again. It might be that it was so long between replications at one point, that the changes fall out of date range that the system is looking for documents to replicate.

Subject: RE: Some design elements don’t replicate

Hi,

We have tried this during a phone call :

1 - Modify two forms that don’t want to replicate. Save, so that the last modification time is very recent.

2 - Clear replication history

3 - Replicate

Result : nothing. The two forms stayed with the same old version.

Subject: Time to debug replication?

See http://www-1.ibm.com/support/docview.wss?uid=swg21158590

Thomas - IBM

Subject: RE: Time to debug replication?

Thanks for this link.

We put the server in debug and found out that the sequence numbers don’t fit, the newest version has number 41 and the oldest 51… this explains why one element succesfully replicated after some saves.

I’m wondering how this is possible…

Subject: RE: Time to debug replication?

This might be related to an issue I had long ago …

Yes, I ran into this as well. The solution is NEVER to use cut and paste to replace design elements in a database that’s updated by a template. Doing this deletes the old form, and creates a new one with a new document number. The next template refresh gets very confused by this, deletes the “new” document, and tries to replace the old document. This seems to work until someone with designer access replicates, and that really confuses Notes, breaking the application.

I’ll copy my old note to my co-designer below … figuring this out took several days, and could not have been done without NotesPeak :wink:

Whew … after digging into the depths of the database with NotesPeek (a wonderful tool) I now know exactly what’s going on, and how to easily fix it.

When Notes does a replication, it needs to know what has changed in order to move those changes from the server copy to the local copy. The key to the problem we’ve been seeing it that it does NOT use the date/time of the change to decide this, but looks at each document’s sequence number. This is a number that’s incremented each time a document is changed.

What’s causing us trouble when Pasting forms into the production database is that we delete the old form, and the local replica sees that, and deletes it’s local copy, as it should. When we then replace the production design, the copy is deleted, and the original is “reactivated”. The problem is that when this reactivation happens on the server, Notes decrements the document’s sequence number. (I don’t know why).

This causes the local replica to ignore the reactivated form, since it’s sequence number for that document is greater than the server copy. Here’s an example.

Action

Template database

Server Database

Local Replica

Notes

Starting situation.

Original Form, sequence = 9

Original Form, sequence = 4

Original Form, sequence = 4

The Template version has been saved 9 times, but has only been Replaced in the server copy 4 times.

The form is changed.

Server copy is Replaced.

Local replicates.

Original Form, sequence = 10

Original Form, sequence = 5

Original Form, sequence = 5

As expected

The form is changed.

It’s Cut-&-pasted into the server copy, and the one that was there is deleted.

Local replicates.

Original Form, sequence = 11

Original Form, sequence = 6,

Marked as deleted

New Form, sequence = 2

Original Form, sequence = 6,

Marked as deleted

New Form, sequence = 2

The old form still exists as a Deletion Stub, and a new document is created by the Paste action.

The form is changed.

Server copy is Replaced.

Local replicates.

Original Form, sequence = 12

Original Form, sequence = 5,

Reactivated

New Form, sequence = 3,

Marked as deleted

Original Form, sequence = 6,

Marked as deleted

New Form, sequence = 3,

Marked as deleted

Note that when the server reactivated the original document, the sequence was decremented. Thus, it’s NOT copied over by the replication.

The reason that a Cut and Paste will not work, and would probably re-cause the problem is this.

The TEST system has an IE form with a particular Universal Notes ID in it. (The “AC86DC19C9125EDE8525682C005EDB59”)

When we do a Design Refresh, this number is carried over into the Production System, and then down to the Replicas.

If, in the production system, you Copy the form, delete the old one, and paste it back in, you are deleting “AC86…” and creating a new document, say “FFAA…”. When someone replicates, this is carried down to the replica.

So now in the Production and Replica system, we have AC86… as a deletion stub, which was the original IE form, and FFAA… as the new IE form. At this point, everything still works.

Now we do a design refresh. The system sees that there is a form in the TEST system, called IE, with a code of AC86… and a different IE form in the production system called FFAA… It assumes that the TEST system is correct (as it is the “master” copy) and so deletes the FFAA… form, and copies back in the AC86… form. So now the original is back, and the pasted version is deleted.

The problem comes in when we replicate. The replication process sees FFAA… as being deleted, and so deletes the same form in the local copy. It then looks at the AC86… documents, and sees the Sequence number in the Replica is greater then the Sequence number in the Server copy, and so assumes that the Replica is more recent, and thus “correct”.

And it’s just hit me that if you or I replicate back (having designer access) the replication process is going to delete the SERVER copy of AC86… and then the Production copy is now broken (Very Nasty).

So the bottom line is : Don’t paste into the Server copy. Always do a Design replace from the Test system, and so keep the original Universal Note IDs the same in the Production and Replica copies.