notesrookie
asked on
Scheduled agents and the documents they run on
Greeting learned ones,
I was about to schedule an agent to run on a weekly basis but then wondered how exactly does a scheduled agent work. You set the schedule and then you select either all documents in the database or all new and modified documents. And yet I don't want the agent to run on either of these choices. My agent grabs information from databaseB, checks it against documents in a specific view in databaseA and if a doc does not exist in databaseA but does in databaseB, it will create the doc in databaseA. So I should be able to go ahead and run this agent? Anything to look out for other than UI type functions? Thank you.
I was about to schedule an agent to run on a weekly basis but then wondered how exactly does a scheduled agent work. You set the schedule and then you select either all documents in the database or all new and modified documents. And yet I don't want the agent to run on either of these choices. My agent grabs information from databaseB, checks it against documents in a specific view in databaseA and if a doc does not exist in databaseA but does in databaseB, it will create the doc in databaseA. So I should be able to go ahead and run this agent? Anything to look out for other than UI type functions? Thank you.
How many documents are you running through? And what is the average time spent, so that you don't exceed the agent time - most servers have a maximum agent time set, and if you exceed it, then the agent shuts down. While it generally runs fine at first, when the databases accumulate documents, they get slower.
So, agent takes too long to process.. is another one. It shouldn't create duplicates from the sound of it, and if it runs when nothing else is running then you shouldn't get replication conflicts.
So, agent takes too long to process.. is another one. It shouldn't create duplicates from the sound of it, and if it runs when nothing else is running then you shouldn't get replication conflicts.
ASKER
I looked at the ACL in databaseB and saw that the server that databaseA is on will not be able to open databaseB. It only allows a selected group reader access to it and I am a part of that group but not the server. If I sign the agent will that allow the agent to do what it needs to do? Thanks.
Yes it should work if you sign it.
ASKER
Unfortunately, signing the agent, running on behalf of and allowing restricted operation with full administrator rights did not work. Is there anything else that I should try? I know it works but only if I run it from my Notes client. It won't run when scheduled on the server and it specifically stops at the point where it is trying to open the databaseB. Thank you.
There should be an error message in the log.nsf database if the agent is not running properly on schedule. If you tell me what that message is I should be able to help a little more.
ASKER
Basically I coded the agent so that if it is unable to open the database, to exit the procedure. The portion of the agent involved is
ServerName = "Server/Domain"
dbReplicaID = "852570EE006801F3"
Dim db As New NotesDatabase ("", "")
If db.OpenByReplicaID(ServerN ame, dbReplicaID) Then
Print (db.Title & " was successfully opened")
Else
Messagebox ("Unable to open " & db.Title & ". This procedure will now exit.") *
Exit Sub
End If
The notes log shows the * lines above. Before I coded it this way the error message I received was AMgr: Agent ('SomeAgent' in 'path\databaseA.nsf') error message: Database ServerB!!path\databaseB.ns f has not been opened yet.
Thanks.
ServerName = "Server/Domain"
dbReplicaID = "852570EE006801F3"
Dim db As New NotesDatabase ("", "")
If db.OpenByReplicaID(ServerN
Print (db.Title & " was successfully opened")
Else
Messagebox ("Unable to open " & db.Title & ". This procedure will now exit.") *
Exit Sub
End If
The notes log shows the * lines above. Before I coded it this way the error message I received was AMgr: Agent ('SomeAgent' in 'path\databaseA.nsf') error message: Database ServerB!!path\databaseB.ns
Thanks.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Yes they are and I will not be able to add serverA as a trusted server on serverB's server doc. I guess that answers my question. Thank you.
If you are using Lotusscript in your agent then your document does not run on all document or all new and modified documents unless you use the UnprocessedDocuments property of the database object. Those options are intended more for formula agents.
Your agent sounds like it should run fine. One thing to consider is whether or not databaseA and databseB are on the same server. If not then you may have to change the security settings on the server documents in order for and agent on one server to operate on a database on another.