Rotuer Error - Someone else modified this document at the same time

Mail routing Log26/05/2009 10:43:10 AM Router: Unable to deliver message 0003ED47 to Database from PERSON/ORG@DOMAIN

26/05/2009 10:43:10 AM Someone else modified this document at the same time

Misc Log

26/05/2009 10:44:00 AM Remote console command issued by ME/ORG: tell router show

tell router show

Msgs State Via Destination

3 Retry( 1) NRPC  [$LocalDelivery] database.nsf



                  Last error: Someone else modified this document at the same time



                  Next retry: 26/05/2009 10:44:10 AM

Transfer Threads: Max = 25; Total = 3; Inactive = 0; Max Concurrent = 12

Delivery Threads: Max = 19; Total = 1; Inactive = 0

26/05/2009 10:44:09 AM Remote console command issued by ME/ORG: tell router show

tell router show

Msgs State Via Destination

4 Retry( 1) NRPC  [$LocalDelivery] database.nsf



                  Last error: Someone else modified this document at the same time



                  Next retry: 26/05/2009 10:44:10 AM

Transfer Threads: Max = 25; Total = 3; Inactive = 0; Max Concurrent = 12

Delivery Threads: Max = 19; Total = 1; Inactive = 0

26/05/2009 10:44:20 AM Remote console command issued by ME/ORG: tell router show

tell router show

Msgs State Via Destination

4 Busy(1)   NRPC  [$LocalDelivery] 

Transfer Threads: Max = 25; Total = 3; Inactive = 0; Max Concurrent = 12

Delivery Threads: Max = 19; Total = 1; Inactive = 0

Database.nsf has a before new mail arrives agent that does some pre proessing. The only way I can force the mail to route is to restart the router - however if I leave it alone it does resolve itself after a period of time 30-150 seconds. Database.nsf is crictial and the timely delivery of document is key.

Any thoguhts?

FYI: I have logged a PMR…no real feedback yet.

Subject: Further Information

Database A contains a Before New Mail agent that receives a document and checks various values, calls an external process, and saves the document with various values. The agent generally takes about 2 seconds to process. In database B updates from the external process mentioned are received.

An agent in Database B runs constantly and processes these updates by looking back to database A and updating the corresponding record.

The issue occurs when Database B finds a document with a key of X in Database A and stamps it. This sometimes occurs before the Before New Mail Agent has finished. It appears likely that the save in the Before New Mail agent makes the document present in Database A, even though the router doesn’t consider it delivered, as the agent has completed.

The router then slows, and also attempts to deliver the document again, which causes a duplicate record to appear in Database A.

It is also the case that consistently the document creation time in Database A is 1 second before the router says it has delivered the message.

So document in Database A might say added in this file at 10:34:05 and the log will say the message was delivered at 10:34:06.

The issue as I see it is that a document saved by a before new mail agent should be considered delivered, regardless of what then occurs, and shouldn’t cause the router to slow and ‘fail to deliver’ because the document is present…

It is necessary for the process to save the mailed in documents with a status, in case the call to the external process fails.

After new mail has arrived is not a real option as the process being handled is very time critical.

I am in the process of creating a series of databases to reproduce the problem without having to provide the same environment as part of the PMR.

I would regard this a bug, or at least a poorly designed behaviour of the router, as you are not prevented from saving the newly arrived document in a before new mail agent, so it should be released from the router if this is the case, or at least shouldn’t cause a ‘failure to deliver’ when this isn’t really the case…