Service Manager OLAP キューブのトラブルシューティングTroubleshoot Service Manager OLAP cubes

重要

このバージョンの Service Manager はサポート終了に達したため、 Service Manager 2019 にアップグレードすることをお勧めします。This version of Service Manager has reached the end of support, we recommend you to upgrade to Service Manager 2019.

次のセクションでは、 ( Service Manager データウェアハウスでのオンライン分析処理 OLAP データキューブのトラブルシューティングに必要となる可能性がある一般的な問題について説明し ) ます。The following sections describe common problems that you might need to troubleshoot online analytical processing (OLAP) data cubes in the Service Manager data warehouse.

処理エラーProcessing failures

DWRepository データベースには、データ整合性を確保ためのセーフガードが存在しますが、処理エラーの可能性を完全に防ぐことはできません。Although safeguards exist in the DWRepository database to ensure data integrity, they cannot completely prevent the possibility of a processing error. 最も一般的な処理エラーは DimensionKeyNotFound 例外です。The most common processing error is a DimensionKeyNotFound exception.  既定では、SQL Server 分析サーバー ( SSAS ) ディメンションは60分ごとに処理されるため、ファクトのメジャーグループを処理しているときに、ディメンションキーがまだ存在していない可能性があります。Because SQL Server Analysis Server (SSAS) dimensions are processed every 60 minutes by default, it is possible that, while processing the fact's measure group, the dimension keys do not yet exist. この場合、既定では、処理ロジックは ProcessUpdate タスクを使用して SSAS ディメンションを再処理してから、キーのエラーを解決するために 2 回までファクトを再処理します。In this case, by default the processing logic reprocesses the SSAS dimensions using a ProcessUpdate task and then reprocesses the fact up to two times to resolve the key errors.

この再処理がエラーになる可能性がある、まれな状況がいくつかあります。There are some uncommon situations in which the reprocessing might fail. このエラーの原因として考えられるのは、次のとおりです。The following are possible causes of this failure:

  • データ整合性を確保するために、データ ウェアハウス リポジトリのみが外部キーを使用します。Only the data warehouse Repository enforces foreign keys to ensure the integrity of the data. データ マートは、パフォーマンスを配慮して外部キーを持っていません。The data mart does not have any foreign keys for performance considerations. 読み込みプロセスは、データをリポジトリから ActiveX Data Objects メソッドを使用してデータ マートに一括移動するため、タイミングの問題で、ディメンション キーの前にファクト データが読み込まれる結果となる可能性があります。Because the load process bulk moves the data from the repository to the data mart using ActiveX Data Objects methods, it is possible that the fact data may have been loaded before the dimension keys as a result of a timing problem. この問題を解決するには、既存のディメンション キーを移動するために、読み込みプロセスの再実行が必要です。To resolve this problem, the load process must be run again to move the existing dimension keys.

  • データ マートが複数ある状況では、各データ マートのすべてのディメンションが、プライマリ データ ウェアハウス データ マートをターゲットにします。In multiple data mart situations, all the dimensions of each data mart target the primary data warehouse data mart. これは、OLAP キューブのサイズと処理時間を小さくするためです。This is to reduce the size and processing time of the OLAP cubes. しかし、Operations Manager か Configuration Manager のデータ マートのファクトが、プライマリ データ ウェアハウス データ マートにまだ存在しないディメンション キーをターゲットにする可能性があります。It is possible, however, for facts in the Operations Manager or Configuration Manager data marts to target dimension keys that do not yet exist in the primary data warehouse data mart. この場合、Operations Manager か Configuration Manager のデータ マートをターゲットとするキューブの処理エラーを解決するために、プライマリ データ マートで読み込みジョブを実行する必要があります。In this case, you must run the load job on the primary data mart to resolve the processing failure for cubes that target the Operations Manager or Configuration Manager data marts.

MDX のカスタマイズのトラブルシューティングTroubleshoot MDX customizations

多くのキューブのカスタマイズでは多次元式の mdx に関する実用的な知識が必要であるため ( ) 、OLAP キューブのカスタマイズに使用される初期 MDX 式で構文エラーが発生することはよくあります。Because many cube customizations require a working knowledge of Multidimensional Expressions (MDX), it is common for syntax errors to occur in the initial MDX expression that is used for OLAP cube customization. ニーズに適した式になるまで、何回も試す必要がある場合があります。Multiple attempts may be necessary before the expression is suitable for your needs. ( ) Cubeextension を使用して olap キューブに mdx 式を追加する前、または SystemCenterCube 要素で定義する前に、変更を保存せずに Business Intelligence Development Studio の入札または SSAS を使用して、olap キューブで mdx 式をテストする必要があります。You should test the MDX expression on the OLAP cube using Business Intelligence Development Studio (BIDS) or SSAS, without saving the changes, before you add the MDX expression to the OLAP cube using a CubeExtension or defining it in the SystemCenterCube element.

ただし、CubeExtension を使用して管理パックで MDX 式を追加してエラーが発生した場合は、そのキューブ拡張をアンインストールして、OLAP キューブで行われた変更を元に戻すことができます。However, if you do have an error in the MDX expression when you add it in a management pack by using a CubeExtension, you can uninstall the cube extension to revert any changes that were made on the OLAP cube. SystemCenterCube 要素を使用して式が定義されている場合は、管理パックをアンインストールしてから、OLAP キューブ管理パックの変更と展開を行う前に、SSAS から OLAP キューブを手動で削除する必要があります。If the expressions are defined using a SystemCenterCube element, you must uninstall the management pack and then manually delete the OLAP cube from SSAS before you make any corrections and redeploy the OLAP cube management pack. このため、CubeExtension 要素を使用して、キューブのカスタマイズを定義する必要があります。Because of this, you should define cube customizations by using the CubeExtension element.

OLAP キューブ管理パックの展開エラーOLAP Cube management pack deployment failures

WorkItems Assigned To User メジャー グループを確認して、特定の部署のすべてのユーザーをスライスする状況があるとします。You may have a situation in which you want to browse the WorkItems Assigned To User measure group and then you want to slice on all users in a particular department. UserDimにフィルターを適用しても、何も起きない、つまり何のデータも返りません。When you attempt to perform filter on UserDim, nothing happens or no data is returned. UserDim には、そのメジャー グループとのリレーションシップがあるため、これは不思議な状況です。This might be very confusing because UserDim has a relationship to the measure group.

このような場合、多次元モデルでは、同じデータベース ディメンションが複数のロールを持つことができるということに注意してください。In this situation, remember that the same database dimension can have multiple roles in the multidimensional model. これらのディメンションのロール - 再生ディメンションを呼び出します。We call these dimensions role-playing dimensions. たとえば、時間ディメンションは、フライト情報を記述する OLAP キューブで複数回使用されることがあります。For example, the time dimension can be used multiple times in an OLAP cube that describes flight information. このケースでは、さまざまなロールを再生するときに、 - 時間ディメンションを対象とする出発時刻と到着時刻を指定できます。The different role-playing dimensions in this case could be Departure Time and Arrival Time, where both target the Time dimension.

作業項目 割り当て先ユーザー/グループユーザー の例では、ユーザーディメンションの指定されたロール - プレイ名は実際には AssignedToUserです。In a WorkItems Assigned To User example, the given role-playing name of the user dimension is actually AssignedToUser. ユーザーが "UserDim" ではなくこの特定のディメンションによってフィルター処理された場合は、正しい情報が返されます。If the user filtered by this particular dimension instead of "UserDim", they would return the correct information.

BIDS には [ディメンションの使用法] タブと呼ばれる便利な機能があり、ディメンションと OLAP キューブの間のリレーションを表示して、OLAP キューブのスライス アンド ダイスに使用するディメンションを特定できます。BIDS has a useful feature called a Dimension Usage tab that shows the relationships between dimensions and OLAP cubes so that you can determine which dimensions you can use to slice and dice the OLAP cube. さらに、 workitem 割り当て先ユーザー/グループユーザーの例では、 UserdimにはWorkItemAssignedToUserメジャーグループとのリレーションシップがありませんが、 *userdim ( AssignedToUser ) *には、結合属性が UserDimKey であるメジャーグループへのリレーションシップがあります。Furthermore, in the WorkItems Assigned To User example, UserDim has no relationship to the WorkItemAssignedToUser measure group, while UserDim(AssignedToUser) does have a relationship to the measure group where the join attribute is UserDimKey. この場合は、 - [ディメンションの使用法] タブのかっこ内で、ロールの再生名が強調表示されていることがわかります。In this case, you can see the role-playing name is highlighted within the parentheses of the Dimension Usage tab.

Service Manager には、[ディメンションの使用法] タブの機能がありません。Service Manager does not have a Dimension Usage tab capability. そのため、特定のキューブにフィルターを適用できるディメンションを正確に特定するには、BIDS を見る必要があります。Therefore, you will have to look at BIDS to determine exactly which dimensions can filter on a particular cube.

リモート SSAS サーバーで OLAP キューブを処理できないFailure to process OLAP cubes on a remote SSAS server

特定の状況では、リモート SSAS サーバーの OLAP キューブの処理が、ファイアウォールが適切に構成されていないために、失敗することがあります。In certain situations, processing an OLAP cube on a remote SSAS server might fail because the firewall has not been configured properly. SSAS の既定のインスタンスは TCP / IP ポート2383を使用します。アクセスを許可するには、ファイアウォールでこのポートのブロックを解除する必要があります。The default instance of SSAS uses TCP/IP port 2383, and this port must be unblocked in the firewall to allow access. ポートのブロックを解除するには、次のコマンドラインの手順を実行し - ます。To unblock the port, run the following command-line instructions:

C:\Windows\system32>set port=2383   
C:\Windows\system32>netsh advfirewall firewall add rule name="Analysis Services" protocol=TCP dir=in localport=2383 action=allow  

OLAP キューブ処理が停止するOLAP cube processing stops

OLAP キューブの処理が停止する多くの原因が考えられます。There can be many causes for OLAP cube processing to stop. まず、サーバーに十分な RAM があることを確認する必要があります。特に、データウェアハウスと SSAS サーバーが同じサーバー上でホストされている場合は、データウェアハウスの抽出、変換、および ( ETL とキューブの処理ジョブを同時に実行するための十分なメモリがあることを確認する必要があり ) ます。You must first ensure that the server has enough RAM, especially in situations in which the data warehouse and the SSAS server are hosted on the same server, so that there is enough memory to run data warehouse extraction, transformation, and load (ETL) and cube processing jobs concurrently. 次は、解決方法のいくつかの一覧です。A few potential solutions are listed here:

  1. Microsoft SQL Server 2008 Analysis Services には、デッドロックに関する既知の問題があり     ます。There are known deadlock problems in Microsoft SQL Server 2008 Analysis Services. 回避策は、処理が停止する前にスレッド プールの処理でスレッド数を増やすことです。The workaround is to increase the number of threads in the processing thread pool before the processing stops. システムが既に停止している場合、回避策は、System Center 管理サービスと Analysis Services サービスの両方を再起動してから、キューブ処理作業項目を開始していないことを示す3の状態にリセットして、Service Manager ワークフローエンジンが再起動できるようにすることです。If the system is already stopped, the workaround is to restart both the System Center Management service and the Analysis Services service and then reset the cube processing workitem to a status of 3, which means not started, so that the Service Manager workflow engine can restart it.

    注意

    関連作業アイテムのキューブ処理を特定するには、DWStagingAndConfig データベースで次のクエリを実行できます。To determine the relevant cube processing workitem, you can run the following queries on the DWStagingAndConfig database. これらのクエリは個別に表示されていますが、簡単に 1 つのクエリに結合できます。Note that these queries are shown individually; however, you can easily join them together in one query:

    select processId from infra.process where processname like 'Process.{CubeName}'  
    select batchid from infra.batch where processId = {ProcessId from previous query}  
    select * from infra.workitem(nolock) where BatchId = {BatchId from previous query}  
    update infra.workitem set statusid = 3 where workitemId = {workitemId from previous query)  
    
    
  2. SSAS サービスの CoordinatorExecutionMode プロパティが、適切に設定されていることを確認します。Check the CoordinatorExecutionMode property on the SSAS service, and ensue that it is set properly. この問題の詳細については、 SQL Server フォーラムの問題を参照してください。You can read more about this problem on the SQL Server forums.

ManageCubePartitions または ManageCubeTranslations ステップで DWMaintenance タスクが停止するThe DWMaintenance task stops on the ManageCubePartitions or ManageCubeTranslations step

この状況で、最も一般的な原因は、SSAS サーバーの応答がないことです。In this situation, the most common cause is a nonresponsive SSAS server. この回避策は、前の「OLAP キューブ処理が停止する」セクションの最初の手順と同じです。The workaround is the same for the first step in the previous section, "OLAP Cube Processing Stops." 関連作業アイテムのキューブ処理を特定するには、DWStagingAndConfig データベースで次のクエリを実行できます。To determine the relevant cube processing workitem, you can run the following queries on the DWStagingAndConfig database. これらのクエリは個別に表示されていますが、簡単に 1 つのクエリに結合できます。Note that these queries are shown individually; however, you can easily join them together in one query:

select processid from infra.process where processname = 'DWMaintenance'  
select * from infra.ProcessModule where ProcessId = {ProcessId from previous query} (Note the ProcessModuleId where the VertexName is ManageCubePartitions/ManageCubeTranslaions)  
Select * from infra.batch where ProcessId = {ProcessId from previous query} (Note the BatchId from the largest batch)  
select * from infra.WorkItem where BatchId = {BatchId from previous query}  
update infra.workitem set statusid = 3 where workitemId = {workitemId for the step that is hung with the corresponding processmoduleid for ManageCubePartitions/ManageCubeTranslations)  

次のステップNext steps