Solved

Mail-in Agent proceses documents more than once

Posted on 2004-03-30
4
401 Views
Last Modified: 2013-12-18
I have a database with a LotusScript mail-in Agent set to "after new mail has arrived". The problem is that my Agent randomly processes the same document more than once. The server is Domino 6.0.2 CF2.

Yesterday I made five tests, each with eight new mails sent at the same time. There was a delay of approx. 45 minutes between each test. Before starting the next test I deleted the documents received in the previous test.

Test 1: everything was fine.

Test 2: three out of eight memos received were processed twice. The second run started exactly 15 minutes after the first run.

Test 3: see Test 1.

Test 4: two out of eight memos received were processed twice. The second run started exactly 2 Minutes after the first run.

Test 5: see Test 3.

In the last test two mails out of eight were processed three times. The second run started exactly 15 minutes after the first run and the third run with a further delay of 16 minutes.

After my last test I went at home, leaving the eight documents in the database. This morning I've seen that all eight documents have been processed again at night, 0:03, when the Agent Manager's agent cache gets updated.

Now I restartet the Agent manager and all documents were processed again.

The agent processes the documents very fast (all eight documents within same second).

Basically the agent processes data received in a message from a Web application. It extracts pairwise (field=value) some data from the body text and writes the data into another notes document. Finally it stamps the memo form with a status.

The agent processes the documents using the following structure (original code with overhead removed):
Sub Initialize
  Dim session As New NotesSession
  Dim db As NotesDatabase          
  Dim dc As NotesDocumentCollection
  Dim memo As NotesDocument
  Dim status As Integer

  On Error Goto Error_Handler  
  Set db = session.CurrentDatabase
  Set dc = db.UnprocessedDocuments
  Set memo = dc.GetFirstDocument
  While Not memo Is Nothing
    ' *** Processing takes place here ***
    '
   
    '    
    memo.Status = "1"
Next_Memo:
    Call memo.Save( True, True )        
    Set memo = dc.GetNextDocument( memo )
  Wend
 
Exit_Sub:
  Exit Sub
 
Error_Handler:
 if Not memo Is Nothing Then
   ' Write error into memo, set status and continue with next memo
    memo.ErrorText = Cstr(Err) & ": " & Error & ", Zeile " & Cstr(Erl)
    memo.Status = "2"
    Resume Next_Memo  
  Else
    ' Stop processing.
    Print "Error " & Cstr(Err) & ": " & Error & _
    " in Agent 'Dispatcher' " & db.Title & " (db.FilePath)"
    Resume Exit_Sub    
  End If  
End Sub

As a workaround, I check the status in the while loop and do no processing an documents having a Status field. However, this is not a solution, since I need to keep the documents for a while.

Is there a known problem or what am I doing wrong?

Peter
0
Comment
Question by:pgloor
  • 2
  • 2
4 Comments
 
LVL 24

Accepted Solution

by:
HemanthaKumar earned 500 total points
ID: 10713712
To avoid agent from processing the documents again and again you have to use this function

Call notesSession.UpdateProcessedDoc( notesDocument )

So that agent will mark this as processed and then it will not touch them again and again

~Hemanth
0
 
LVL 5

Author Comment

by:pgloor
ID: 10713803
Whoops... Sorry, actually I made 6 tests and mixed up my test results.
Read it as follows:

Test 1: everything was fine.

Test 2: three out of eight memos received were processed twice. The second run started exactly 15 minutes after the first run.

Test 3: see Test 1.

Test 4: two out of eight memos received were processed three times. The second run started exactly 15 minutes after the first run and the third run with a further delay of 16 minutes.

Test 5: two out of eight memos received were processed twice. The second run started exactly 2 Minutes after the first run.

Test 6: see Test 4.

0
 
LVL 5

Author Comment

by:pgloor
ID: 10714150
@~Hemanth,

I obviousely removed Call session.UpdateProcessedDoc( memo ) by accident when I added the Next_Memo label.

Thanks.
0
 
LVL 24

Expert Comment

by:HemanthaKumar
ID: 10714195
Accidents do happen ;-)
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I thought it will be a good idea to make a post as it will help in case someone else faces these issues. I trust this gives an idea how each entry in Notes.ini can mean a lot for the Domino Server to be functioning properly. This article discusses t…
This article covers general Notes 8.5 troubleshooting information including recreating the Notes\Data folder.
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question