2

サーバー 1 にデータベースがあり、レコードの検証のためにサーバー 2 の複数のデータベースを参照しています。スケジュールされたエージェントを実行すると、「オブジェクト変数が設定されていません」というエラーが発生します。ただし、エージェントを手動で実行しようとすると (エージェント名を右クリックし、[実行] をクリック)、エラーなくスムーズに実行されます。

2 台の仮想サーバーでデータベースのセットアップをシミュレートしたところ、エラーを再現できました。行ごとのデバッグは、他のサーバーでデータベースを開こうとしたときにエラーが発生したことを示しています。手動実行は問題なく動作するので、コードや変数 (サーバーとデータベースのパス) が間違っているとは思いません。

すべてのデータベースの ACL をチェックして、署名者とサーバーを含め、エージェントを 3 つのセキュリティ モード (制限付き、制限なし、および管理者権限で制限付き) で実行するようにスケジュールを設定しました。サーバーのドキュメントとセキュリティを調べて、両方のサーバーへのアクセスとサーバーからのアクセスを許可しました。私が見逃した可能性のあるものは他にありますか?

4

1 に答える 1

7

エージェントが実行されているサーバーを「server1」、データベースが保存されているサーバーを「server2」と呼びましょう。問題は、エージェントが署名したユーザーのIDで実行されており、server1がその署名を検証したが、server2は検証していないことです。Server2は、データベースにACLを適用できるように署名を認識する必要があるため、server2はserver1から署名情報を取得する必要があります。ただし、server1は理論的にはserver2にある可能性があるため、デフォルトではserver2はserver1からの署名情報を信頼しません。

幸い、server1で実行されているエージェントの署名を信頼するようにserver2に指示する方法があります。server2のDominoディレクトリにあるserver2のサーバードキュメントで、[セキュリティ]タブに移動し、[信頼されたサーバー]というラベルの付いたフィールドを見つけます。このフィールドにserver1の完全修飾名を入力し、server2を再始動します。(再起動が本当に必要かどうかはわかりません。)

これにより、server1のエージェントがserver2のデータベースを読み取ることができるようになります。

于 2013-02-04T05:24:36.337 に答える