最近、Notes Designer 8.5.2に切り替えて、毎日08:00に実行するようにスケジュールされているエージェントを編集している場合、プログラマーパネルに変更を保存した直後にエージェントが実行されることに気付きました。
これは新機能ですか?エージェントが現在実行されていることを回避するにはどうすればよいですか?
最近、Notes Designer 8.5.2に切り替えて、毎日08:00に実行するようにスケジュールされているエージェントを編集している場合、プログラマーパネルに変更を保存した直後にエージェントが実行されることに気付きました。
これは新機能ですか?エージェントが現在実行されていることを回避するにはどうすればよいですか?
いいえ、それは古いバグです...{ahem}...機能。少なくとも私は6.0とおそらくそれ以前でそれをたくさん扱いました。スケジュールされたエージェントを保存すると、スケジュールされたエージェントが今日実行したサーバー上のレコードがクリアされ、エージェントがキューに戻されます。
私が採用した回避策は、スケジュールされたエージェントを非表示の手動エージェントに変更することでした。次に、非表示の手動エージェントを実行する別のスケジュールされたエージェントを作成します。その後、保存時にトリガーせずに、手動エージェントを好きなだけ編集できます。
これが、スケジュールされたエージェントで使用する一般的なコードです。エージェントの名前を変更するだけで、これでうまくいくはずです。
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim agt As NotesAgent
Set db = s.CurrentDatabase
Set agt = db.GetAgent("(Send Reminders)")
Call agt.Run()
End Sub
アップデート:
サーバーにアクセスできる場合は、Notes.iniに設定を追加して、この動作を防ぐことができます。
Amgr_SkipPriorDailyScheduledRuns=1
有効になっている本番アプリケーションでエージェントを編集することは良い習慣とは見なされませんが、エージェントで作業する必要がある場合は、完了するまで1日の終わりに実行する時間を変更してください。エージェントビューからエージェントを実行して、変更によってプロセスが中断されていないことを確認できます。
何年にもわたって、この機能が便利であることがわかりました。ドミノデザイナーでエージェントを開いて保存するだけで、サーバーにエージェントを強制的に再実行させることができたからです。エージェントリストから手動でエージェントを実行することは常に可能ですが、資格情報(ユーザーID)を使用して実行されるため、サーバーIDで実行した場合、同じように動作しない可能性があるため、お勧めできません。