何が起こっているのか理解できないので、ここで髪を引っ張って
います。次のようなものがあります。
- Windows Server 2008R264ビット
- SQL Server 2008R264ビット
ascmd.exeを実行すると、OLAPデータベースを構築するためにxmlファイルが提供されますが、ほとんどの場合、プロセスがスタックし、10分経ってもコンソールウィンドウが開いてメッセージが表示されなくなります。
ただし、SQL Server管理をチェックインすると、OLAPデータベースが作成されていることがわかります。その後、他の時間(同じマシン、同じシナリオ、同じスナップショット)で成功します。この奇妙な行動の原因は何ですか?
どこでも検索しようと
しましたが、ascmd.exeツールを最新(バージョン10.0.87.5)に置き換えようとした同様の問題は見つかりませんでした
何が原因なのかわかりません、助けてください!
ありがとう!!!
更新: 誰かお願いしますか?それは非常に重要です
更新:
私はそれについて進歩していると思いますが、行動を説明することはできません。Ascmdのコードを調べたところ、何らかの理由でトレースファイル(ログファイル)が開始されなかったため、コードが永久ループセクションに入り、出力されなかったことがわかりました(プリントを追加しました)ここでスタックしているかどうかを確認するためのコードに移動し、スタックしていることに気づきましたwhile (!TraceStarted) { Thread.Sleep(1); }
:
private static void WaitForTraceToFinish()
{
int delay = Int32.Parse(TraceTimeout, CultureInfo.CurrentCulture);
TraceTimeoutCount = TraceTimeoutCountReset = delay * PollingInterval; // TraceTimeoutCount is in 1/4 seconds
Console.WriteLine("TraceTimeoutCount is : " + TraceTimeoutCount);
Console.WriteLine("Did Trace Start Already ? : " + TraceStarted);
// Wait for trace to start to flow
while (!TraceStarted) { Thread.Sleep(1); } // loop every 20ms waiting for trace to start
// Wait BeginEndBlockCount becomes 0 or TraceTimeoutCount expires
while (TraceTimeoutCount > 0)
{ // loop forever until TraceFinished
Console.WriteLine("TraceTimeoutCount is : " + TraceTimeoutCount);
Console.WriteLine("PollingInterval is : " + PollingInterval);
Console.WriteLine("1000 / PollingInterval = " + 1000 / PollingInterval);
if (BeginEndBlockCount == 0) return;
Thread.Sleep(1000 / PollingInterval); // wait a polling interval
Console.WriteLine("TraceTimeoutCount is : " + TraceTimeoutCount);
TraceTimeoutCount--;
Console.WriteLine("TraceTimeoutCount is : " + TraceTimeoutCount);
}
Console.WriteLine("Got out from trace");
// TraceTimeoutCount expired -- just exit
}
トレースファイルが開始されない理由を誰かが知っていますか?Windows Server 2008のハードセキュリティルールに関連していますか?
トレースファイルが必要なため、削除できません。何か提案はありますか?ありがとう!