我拉我的頭髮這裏,我不明白是怎麼回事
我有以下幾點:Ascmd.exe過程停留在OLAP創建
- 的Windows Server 2008 R2 64位
- SQL Server 2008 R2的64位
當我運行ascmd.exe它給人的XML文件,以建立OLAP數據庫,大多數的過程正好被卡住的時間和控制檯窗口打開後,即使十分鐘沒有進一步的消息。
但是,如果我簽入SQL Server Managment,我可以看到OLAP數據庫已創建。然後在其他時間(相同的機器,相同的場景,相同的快照)成功。 什麼會導致這種奇怪的行爲?
我試着到處尋找,但沒有發現任何類似的問題
我試圖與它的最新版本(版本10.0.87.5)
更換ascmd.exe工具,我不知道什麼造成這種情況,請幫忙!
謝謝!
更新: 請有人嗎?這是非常重要
更新: 我想我就可以了進展,但無法解釋的行爲。 我已經查看了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服務器2008年硬安全規則?
我不能刪除跟蹤文件,因爲它要求我們 有什麼建議?謝謝!