Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Mail-in Agent proceses documents more than once

Posted on 2004-03-30
4
Medium Priority
?
405 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 2000 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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

  In today’s Arena we can’t imagine our lives without Internet as we are highly used to of it. If we consider our life style just for only 2 min we found that face to face communication is swapped by e-communication.  Every Where from Works place to…
This article covers general Notes 8.5 troubleshooting information including recreating the Notes\Data folder.
Are you ready to place your question in front of subject-matter experts for more timely responses? With the release of Priority Question, Premium Members, Team Accounts and Qualified Experts can now identify the emergent level of their issue, signal…
Screencast - Getting to Know the Pipeline

886 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