プロジェクトで実行している SQL Server エージェント ジョブはほとんどありません。ジョブはスケジュールどおりに完全に実行され、問題はありません。
しかし今、これらのジョブをフロントエンドから開始できるようにする必要があります (ボタンをクリックするなど)。
どうすればできますか?
これらのジョブは関数のように動作しますか?
プロジェクトで実行している SQL Server エージェント ジョブはほとんどありません。ジョブはスケジュールどおりに完全に実行され、問題はありません。
しかし今、これらのジョブをフロントエンドから開始できるようにする必要があります (ボタンをクリックするなど)。
どうすればできますか?
これらのジョブは関数のように動作しますか?
これは、私が試した任意の db コネクタで実行できます。いくつかの例を次に示します...
CallableStatement の使用:
Connection rConn = //however you get your connection...
CallableStatement cs = rConn.prepareCall("EXEC dbo.sp_start_job N'your job name'");
boolean checkvar = cs.execute();
または、jdbc テンプレートを使用する場合:
jdbcTemp = //however you get your template...
jdbcTemp.update("EXEC msdb.dbo.sp_start_job N'" + procName + "'");
また、これを機能させるには、msdb のアクセス許可を調整する必要がある可能性があります。アカウントは、sysadmin であるか、SQLAgentOperatorRole ロールを持っている必要があります。これを SQL Server Management で設定するには、db エンジンの下の [セキュリティ] に移動し、[ログイン] を展開し、使用するアカウントを右クリックして [プロパティ] を選択します。[サーバー ロール] で sysadmin を付与するか、[ユーザー マッピング] で msdb を確認してから、下のリストから TargetServersRole と SQLAgentOperatorRole を選択します。
h番目