Question

akiyama1192 on Mon, 25 Feb 2019 00:51:30


環境:

Azure IaaS / sql server 2017

SSASキューブのバッチ処理(完全処理)

別件で、オンラインでキューブ処理すると、0xC1000012でエラー終了する投稿させていただいていますが、今まで何とかうまく夜間バッチ処理できていたキューブの完全処理が、以下のエラーで終了しています。

 ※キューブ処理はSSISで定義し、ログ記録を設定して、夜間バッチでSSISパッケージを起動

なにやら、OLE-DB,ODBCエラーの発生が発端みたいなんですが、キューブ処理中に、接続が遮断された??ような気配なんですが、原因がよくわからない状況です。

すいませんが、確認店や考えられる原因等。ご教示下さい。

-----------------------------------------------------------------------------------------------------

OnError,CSVC004,CSVC004\azadmin,キューブ処理(在庫),{E7CFCFA8-BA2E-40F4-A866-94030BA7563D},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1056571392,0x,OLE DB エラー: OLE DB または ODBC エラー。     
OnError,CSVC004,CSVC004\azadmin,キューブ処理(在庫),{353C2C51-D3E2-4742-8197-44F601437DC3},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1056571392,0x,OLE DB エラー: OLE DB または ODBC エラー。     
OnError,CSVC004,CSVC004\azadmin,PSL_ZZZ_Cube_MM_EOMInventoryAndFlow,{30EC0307-6BA5-4D9A-8DBC-1722E2732699},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1056571392,0x,OLE DB エラー: OLE DB または ODBC エラー。     
OnError,CSVC004,CSVC004\azadmin,キューブ処理(在庫),{E7CFCFA8-BA2E-40F4-A866-94030BA7563D},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1054932978,0x,OLAP ストレージ エンジン エラー: 'SAP MMT NQ MARDH TFR EOM' パーティション ('EOMSLocTransferInventory' メジャー グループ、'MMC_EOMInventoryAndFlow' キューブ、XXXXXXX_BI データベース) を処理中にエラーが発生しました。     
OnError,CSVC004,CSVC004\azadmin,キューブ処理(在庫),{353C2C51-D3E2-4742-8197-44F601437DC3},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1054932978,0x,OLAP ストレージ エンジン エラー: 'SAP MMT NQ MARDH TFR EOM' パーティション ('EOMSLocTransferInventory' メジャー グループ、'MMC_EOMInventoryAndFlow' キューブ、XXXXXXX_BI データベース) を処理中にエラーが発生しました。     
OnError,CSVC004,CSVC004\azadmin,PSL_ZZZ_Cube_MM_EOMInventoryAndFlow,{30EC0307-6BA5-4D9A-8DBC-1722E2732699},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1054932978,0x,OLAP ストレージ エンジン エラー: 'SAP MMT NQ MARDH TFR EOM' パーティション ('EOMSLocTransferInventory' メジャー グループ、'MMC_EOMInventoryAndFlow' キューブ、XXXXXXX_BI データベース) を処理中にエラーが発生しました。     
OnError,CSVC004,CSVC004\azadmin,キューブ処理(在庫),{E7CFCFA8-BA2E-40F4-A866-94030BA7563D},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1056964601,0x,内部エラー: 操作が正しく終了しませんでした。     
OnError,CSVC004,CSVC004\azadmin,キューブ処理(在庫),{353C2C51-D3E2-4742-8197-44F601437DC3},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1056964601,0x,内部エラー: 操作が正しく終了しませんでした。     
OnError,CSVC004,CSVC004\azadmin,PSL_ZZZ_Cube_MM_EOMInventoryAndFlow,{30EC0307-6BA5-4D9A-8DBC-1722E2732699},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1056964601,0x,内部エラー: 操作が正しく終了しませんでした。     
OnError,CSVC004,CSVC004\azadmin,キューブ処理(在庫),{E7CFCFA8-BA2E-40F4-A866-94030BA7563D},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1055129594,0x,サーバー: トランザクションの別の操作が失敗したため、現在の操作は取り消されました。     
OnError,CSVC004,CSVC004\azadmin,キューブ処理(在庫),{353C2C51-D3E2-4742-8197-44F601437DC3},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1055129594,0x,サーバー: トランザクションの別の操作が失敗したため、現在の操作は取り消されました。     
OnError,CSVC004,CSVC004\azadmin,PSL_ZZZ_Cube_MM_EOMInventoryAndFlow,{30EC0307-6BA5-4D9A-8DBC-1722E2732699},{8632E763-58C9-470A-8744-FCA632C3BC6D},2019/02/25 1:15:14,2019/02/25 1:15:14,-1055129594,0x,サーバー: トランザクションの別の操作が失敗したため、現在の操作は取り消されました。     

     

Replies

akiyama1192 on Mon, 25 Feb 2019 01:00:35


補足します。

該当キューブですが、

・完全にMolapモードのストレージ指定

・集計デザインは設定していない状況

です。

akiyama1192 on Mon, 25 Feb 2019 02:51:57


補足します。

エラーの発生する、メジャーGRP,およびパーテションは特定できたんですが、やはり同じ現象でした。

データソースとして、ビューを使用しているんですが、さらにビュー~ビューの入れ子の設定で、相当パフォーマンスが悪い感じですが、何かデータアクセス中に接続が遮断されるような状況があるんでしょうか?

------------------------------------------------------------------------------------------

FIX は SSAS 2016、2017 で多数の同時実行のデータ ソースへの接続を生成する多くのパーティションを持つキューブの処理

のように、今回キューブは、異常にたくさんのメジャーGRP,及びパーティションが設定されています。

別ベンダさんの開発キューブのyため、詳細仕様も不明のため、何かチェックポイントの指示いただけますと、大変ありがたい状況です。

********************************************************

なお、現時点ではsql server 2017累積パッチ:CU13を適用しています。

********************************************************

-----------------------------------------------------------------------------------------

現象


         
            

多くのパーティションを含むキューブを処理すると、開かれているデータ ソースへの同時接続の場合があります。

この問題は、データ ソースのプロパティで[最大接続数の値に関係なく発生します。 などの設定は10 (デフォルト) の場合、可能性があります。

でも、データ ソースのサーバーに同時接続の上限に達するため処理に失敗するがあります。たとえば、Oracle データベースの場合、表示される次のエラー メッセージ:

OLE DB エラー: OLE DB または ODBC のエラー: ORA-02391: 同時 SESSIONS_PER_USER の制限を超えています。

        
    
    
<section applies-to-saps="[]" aria-hidden="false" class="section ng-scope" data-before="" data-grid="col-12" ng-attr-id="{{contentSection.meta.id}}" ng-class="{'internal-content': isInternalSection(), 'flighted-content': shouldHighlightFlight }" ng-if="typeof(contentSection) !== 'string'" ng-show="shouldShow">         
        

原因


            

この問題は、接続プーリングが動作していないため意図したとおりにに発生します。

     解決方法
</section>
<section applies-to-saps="[]" aria-hidden="false" class="section ng-scope" data-before="" data-grid="col-12" ng-attr-id="{{contentSection.meta.id}}" ng-class="{'internal-content': isInternalSection(), 'flighted-content': shouldHighlightFlight }" ng-if="typeof(contentSection) !== 'string'" ng-show="shouldShow">

     この修正プログラムは SQL Server の以下の更新プログラムに含まれています。

SQL Server の新しいビルドたびにはには、すべての修正プログラムおよびセキュリティ修正プログラム以前のビルドに存在していたが含まれています。 SQL Server のバージョンには、最新のビルドをインストールすることをお勧めします。

状態

</section>
<section applies-to-saps="[]" aria-hidden="false" class="section ng-scope x-hidden-focus" data-before="" data-grid="col-12" ng-attr-id="{{contentSection.meta.id}}" ng-class="{'internal-content': isInternalSection(), 'flighted-content': shouldHighlightFlight }" ng-if="typeof(contentSection) !== 'string'" ng-show="shouldShow">

            

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

</section>

akiyama1192 on Mon, 25 Feb 2019 05:58:15


お世話になっております。

追加情報です。

---------------------------------------------------------------------------------------------------------

OLE-DB/ODBCエラーの発生するSSASキューブの構造がわかりました。 何かすごい作り??みたいですが・・・

<DB側                      >  <BI/SSASキューブ側                                            >

DWH-DB <-->View定義<-->データソースVIEW<------------->キューブ定義

                                         ※ソースTBLの実体は           パーティション--メジャーGRP

                      SQL定義(名前付きクエリ)

・結局、該当キューブのエラー発生するメジャーGRPのみのパーテイションを処理すると、データソースVIEWで定義したSQLを

実行し、このSQL内からは、さらにDB側のVIEWを入れ子で参照するという構成になっています。

データソースVIEWで定義したSQLから参照するVIEWの実態は存在しますが、かなり重い状況になっており、結局データソースVIEWで定義したSQLが実行中に、OLE DB/ODBCエラーとなって、エラー終了しているように見えます。

SQL Server側でタイムアウトを制御できない認識なんですが、SQL実行中に、当該エラーが発生する条件が不明です。

何か情報いただけましたら・・・・

宜しくお願い致します。


akiyama1192 on Wed, 27 Feb 2019 01:35:13


お世話になっております。

ネット検索の結果、以下の英文ページが検索できました。

Analysis Services Cube processing fails with error "OLE DB error: OLE DB or ODBC error: Operation canceled; HY008."    (URL書くと、エラーになり、タイトルだけ記入しました。)

で発生原因とかが特定できました。

どうも、負荷のかかりすぎる SSAS側の名前付きクエリの実行で、OLEDB層でタイムアウトが発生するみたいです。

SSASのデータソースでの接続プロパティでは、クエリタイムアウト=0(無制限)指定のため、まさかOLEDBでもタイムアウトがあるとは思いませんでした。  (確かに、丁度1時間経過したころに、OLEDBエラーがでました。)

SSASサーバーのプロパティで、ExternalCommandTimeoutプロパティ値を、規定の3600秒から7200秒にあげて検証してみます。

結果がでましたら、再度ご連絡させてください。

一旦は、完了にさせて下さい。