CLR ストアド プロシージャ内で HttpWebRequest を作成する場合 (以下のコードに従って)、SQL Server が (再) 起動された後、または特定の (ただし不確定な) 期間が経過した後の最初の呼び出しは、サーバー上でかなりの時間待機します。 GetResponse() メソッド呼び出し。
Sql Server Agent ジョブを数分ごとに実行して、最初の「遅い」呼び出しが「実際の」本番ではなくエージェントによって行われることを確認するなど、「ハック」を伴わないこれを解決する方法はありますか?コード?
function SqlString MakeWebRequest(string address, string parameters, int connectTO)
{
SqlString returnData;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Concat(address.ToString(), "?", parameters.ToString()));
request.Timeout = (int)connectTO;
request.Method = "GET";
using (WebResponse response = request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream))
{
SqlString responseFromServer = reader.ReadToEnd();
returnData = responseFromServer;
}
}
}
response.Close();
return returnData;
}
(簡潔にするために、エラー処理とその他の重要でないコードは削除されています)
この Sql Server フォーラム スレッドも参照してください。