Процесс Ascmd.exe застрял при создании OLAP
Я дергаю себя за волосы из-за этого, я не могу понять, что происходит
У меня есть следующее:
- Windows Server 2008 R2 64-разрядная
- SQL Server 2008 R2 64-разрядная
Когда я запускаю ascmd.exe, он дает XML-файл для создания базы данных OLAP, большую часть времени процесс просто застревает, и окно консоли открывается даже через десять минут без дальнейших сообщений.
Однако, если я проверяю в SQL Server Managment, я вижу, что база данных 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?
Я не могу удалить файл трассировки, так как это требование для нас. Есть предложения? Спасибо!
1 ответ
Очень печально осознавать, что административные привилегии в Windows Server 2008 + SQL Server 2008 могут приводить к таким ошибкам. Запуск, когда администратор решил мою проблему, а процесс создания OLAP не застрял