2016-06-23 2 views
0

현재 사용자에 따라 역할 차원 데이터를 설정하는 어셈블리가 있습니다. 어셈블리에서 Context.CurrentCube.LastProcessed 속성에 액세스해야합니다. 코드 자체는 문제없이 작동합니다. 큐브가 새로 배포되거나 처리 된 경우 제외. 그리고 때로는 Context.CurrentCube.LastProcessed 속성을 던졌습니다 검색 다음과 같은 오류 :SSAS 큐브에서 LastProcessed 속성에 액세스하는 중 오류가 발생했습니다.

Microsoft.AnalysisServices.AdomdServer.AdomdException: Server: The operation was cancelled by the user. at Microsoft.AnalysisServices.AdomdServer.CubeCollection..ctor(String mpCubeName) at Microsoft.AnalysisServices.AdomdServer.CubeDef.get_LastProcessed()
at Reporting.TryGetLastProcessDate() in d:\Projects\reporting\Reporting_Cube_Addons\Permissions.cs:line 181

나는 대체 값, 시도 캐치에서 그 라인을 포장했습니다

public static DateTime TryGetLastProcessDate() 
    { 
     DateTime last; 
     try 
     { 
      last = Context.CurrentCube.LastProcessed; 
     } 
     catch (Exception ex) 
     { 
      log("Failed to retrieved lastProcess Date. Error:"); 
      log(ex.ToString()); 
      last = new DateTime(2015, 01, 01); 
     } 
     return last; 
    } 

그러나 보인다 큐브 예외가 잡힌 경우에도 작업을 멈 춥니 다.

내가 잘못하고있는 것에 대한 아이디어가 있습니까? 마지막으로 처리 된 날짜를 검색하는 다른 안전한 방법이 더 있습니까?

답변

1

ASSP를 설치하거나 code을 사용하는 것이 좋습니다. 사용 예는 here입니다.

10 년 전처럼 큐브를 처리했을 때보 다 SSAS 인스턴스를 시작했을 때 Context.CurrentCube.LastProcessed에 문제가있는 것으로 나타났습니다. 그래서 우리는이 대체 접근 방식으로 전환했습니다. 그 버그가 수정되었는지 그리고 당신이 설명하는 충돌에 익숙하지 않은지 전혀 알지 못합니다. 그러나 위의 방법이 당신 주위에서 효과가 있기를 바랍니다.

관련 문제