Page 1 sur 1

Coment exécuter un agent instantanément

MessagePublié: 15 Fév 2008 à 07:41
par abertisch
Un petit code pour lancer immédiatement un agent en dehors du délai minimum de 5 minutes.

Petit copier/coller de l'aide du designer:

Tell Amgr Run: Runs the agents that you designate with these arguments:“db name” ‘agent name’ Example: Tell Amgr Run “DatabaseName.nsf” ‘AgentName’


Ok, l'dée est d'utiliser la commande "SendConsoleCommand()" de Notessession qui laisse envoyer une commande directement sur un serveur.

Ainsi il est possible de lancer un agent sans attendre les 5 minutes minimum obligatoires.

Code : Tout sélectionner
   Dim se As New notessession
   Dim sCmd As String
   
   sCmd = |tell amgr run "databasePath\file.nsf″ 'agentName'|
   Call se.SendConsoleCommand("yourServerName", sCmd)


Facile non ?!? :danse004:

MessagePublié: 15 Fév 2008 à 08:19
par Stephane Maillard
Salut,

Intéressant mais quand tu as des serveurs mutualisé est ce que tu peux être sur de tenir la qualité de service en faisant ça ?

MessagePublié: 15 Fév 2008 à 08:31
par abertisch
Stéphane Maillard a écrit:Salut,

Intéressant mais quand tu as des serveurs mutualisé est ce que tu peux être sur de tenir la qualité de service en faisant ça ?


Salut,

Nan je ne pense pas !

Cette astuce est plutôt pour faire du développements car je doute que le serveur tienne le coup si tous les agents sont appelés avec cette méthode.

MessagePublié: 15 Fév 2008 à 10:06
par Michael DELIQUE
salut

génial, ça permet de faire un RunOnServer qui ne bloque pas le client... pour lancer un agent en dev c'est top !

j'en ai fait une fonction

Code : Tout sélectionner
Public Sub AgentTellRunOnServer(wDB As Notesdatabase, wAgent As String)
   
   Dim Session As NotesSession
   Dim DBAgent As NotesDatabase
   
   On Error Goto ErrorHandle
   
   If Trim(wAgent)="" Then
      Error 9999,"Pas de nom d'agent"
      Exit Sub
   End If
   
   Set Session = New NotesSession
   
   If wDB Is Nothing Then
      Set DBAgent = Session.CurrentDatabase
   Else   
      Set DBAgent = wDB
   End If
   
   If DBAgent.GetAgent(Trim(wAgent)) Is Nothing Then
      Error 9999, "Agent inconnu ("+DBAgent.FilePath+") => "+wAgent
   End If
   
   Call Session.SendConsoleCommand(DBAgent.Server, {Tell amgr run "}+DBAgent.FilePath+{" '}+Trim(wAgent)+{'})
   
   Set DBAgent = Nothing
   Exit Sub
ErrorHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"   
   Exit Sub
End Sub

MessagePublié: 15 Fév 2008 à 10:34
par abertisch
Salut Michael,

Merci .