[INFO] Office 2000 Web コンポーネントをサーバー側で使用する場合の制約事項

文書翻訳 文書翻訳
文書番号: 317316 - 対象製品
この記事は、以前は次の ID で公開されていました: JP317316
すべて展開する | すべて折りたたむ

概要

Web サイトを開発する際に Microsoft Office 2000 Web コンポーネントを使用すると、スプレッドシート、グラフ、ピボットテーブルの機能を組み込むことによって動的な Web ページを作成することができます。Office 2000 Web コンポーネントは、クライアント側の ActiveX コントロールとして Microsoft Internet Explorer の中に埋め込んで使用することを前提に開発されたものです。

ただし、多くの開発者は Web コンポーネントの利便性に着目し、ASP (Active Server Pages) や COM+ でグラフを生成してエクスポートするなど、サーバー側のソリューションで Web コンポーネントを使用しています。Web コンポーネントはサーバー側で使用することもできますが、制約事項があるため、サーバー プログラムの安定性とパフォーマンスに悪影響を与える可能性があり、大規模なサーバー側のソリューションでは Web コンポーネントの使用によって問題が引き起こされることがあります。

詳細

マイクロソフトでは Office 2000 Web コンポーネントをサーバー側のソリューションに使用することを推奨していません。既知の制約事項がいくつかあるため、関数への再入が多発するマルチスレッドの非対話型環境の場合、Web コンポーネントは正常に機能できないことがあります。特に、以下のような問題が起こることがあります。
  • 実行速度が遅い、パフォーマンスが低い : Office 2000 Web コンポーネントは、Internet Explorer の複数のシングル スレッド アパートメント (STA) 環境を想定して設計されています。ほとんどのサーバー側アプリケーションが採用するマルチ スレッド アパートメント (MTA) 環境とは異なります。Office 2000 Web コンポーネントのスレッド同時処理に対する保護機構は、Web サービスで一般的に発生する大量のマルチ スレッド呼び出しに対応できるよう設計されておらず、パフォーマンスの低下につながることがあります。たとえば、Office 2000 Web コンポーネントでは多くの共有メモリ ブロックが同じクリティカル セクションを使用して保護されており、メモリ セクションを書き換えているスレッドがあると、そのメモリ セクションを書き換えない場合でも他のスレッドはブロックされる可能性があります。さらに、処理用の関数の多くは、シングル スレッド モデルで設計された Office の他のソースからインポートされており、このようなセクションのコードは同時実行できません。
  • メモリ不足エラー : Office 2000 Web コンポーネントは、Microsoft Office 9.0 オフィス ライブラリのスタティック ビルドを使用してメモリ管理を処理しています。Microsoft Office 9.0 オフィス ライブラリのメモリ割り当て機能は、クライアント側での使用を想定して設計されており、サーバー側のソリューションで起こりうる大量の負荷や同時要求を想定していません。このため、コンピュータ自体で利用可能な状態にあるメモリの量にかかわらず、Web コンポーネントがサーバー側で発生する処理に利用できるメモリの量が制限される場合があります。
  • 不規則に発生するオートメーション エラー : Office 2000 Web コンポーネントが使用する状態変数の一部は完全に保護されておらず、関数の実行中にこのような状態変数が変更されると、その関数は予期せず異常終了することがあります。非同期処理が必要な関数 (データ ソースからのデータを要求する、スプレッドシートのセルの値を計算するなど) では、複数のスレッドが同時にオートメーションを実行していると、このようなエラーが発生する可能性が高まります。
  • スレッドのデッドロック : 特定の状況下では、Office 2000 Web コンポーネントで無期限の待機状態やグローバル例外の発生につながる競合状態が起こることがあります。この結果、スレッドが孤立してリソースが失われることがあります。このような状況は基本的にコンポーネントに多大な負荷がかかると起こります。たとえば、コンポーネントのインスタンスを生成し、自動化し、破棄するようなコードの実行要求が大量の数のクライアントから同時にサーバーに対して送信されると、このような状況が起こりがちです。インスタンスをプーリングしておくことによって、デッドロックの可能性を最小限に抑えることができます。
この資料で説明した Office 2000 Web コンポーネントの問題は、クライアント側の ActiveX コントロールとして使用されることを本来想定している設計上の制約事項に基づくものです。したがって、Office 2000 Web コンポーネントのこのような制約事項を回避するための方法はありません。

これらの問題の多くは、Microsoft Office XP Web コンポーネントで解決されています。Web ソリューションで Office 2000 Web コンポーネントをサーバー側のコンポーネントとして使用している場合、または使用する予定がある場合は、Office XP Web コンポーネントにアップグレードして使用することを検討してください。

関連情報

Office XP Web コンポーネントをダウンロードするには、以下の Office Web サイトを参照してください。
http://office.microsoft.com/downloads/2002/owc10.aspx
Office XP Web コンポーネント サーバー サイドの使用の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
286278 HOWTO: Create an Interactive Office XP Chart Server-Side Using ASP
294798 HOWTO: Use ASP to Create an Office XP PivotTable and Display the Results as HTML

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 317316 (最終更新日 2002-02-04) をもとに作成したものです。

プロパティ

文書番号: 317316 - 最終更新日: 2004年8月13日 - リビジョン: 4.2
この資料は以下の製品について記述したものです。
  • Microsoft Office Chart Component 9.0
  • Microsoft Office Spreadsheet Component 9.0
  • Microsoft Office PivotTable Component 9.0
キーワード:?
kbdownload kbgrpdso kbinfo kbofficewebchart kbofficewebpivot kbofficewebspread KB317316
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com