2016-06-23 5 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が時々反映されるという問題がありました。そこで、この代替アプローチに切り替えました。そのバグが修正されたかどうかは分かりませんし、あなたが説明しているクラッシュに精通していません。しかし、私は上記のアプローチがあなたの周りに働くことを願っています。

関連する問題