我把头发拉到这里因为我无法理解发生了什么 我有以下内容:
当我运行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 Server 2008硬安全规则有关?
我无法删除跟踪文件,因为它是我们的要求 有什么建议?谢谢!
答案 0 :(得分:1)
知道Windows Server 2008 + SQL Server 2008中的管理权限可能会导致这些错误,这令人非常沮丧 以管理员身份运行解决了我的问题,OLAP创建过程没有停留