SharePoint Foundation アップグレード オブジェクト モデル

最終更新日: 2010年11月19日

適用対象: SharePoint Foundation 2010

この記事の内容
アップグレード クラス
アップグレード シーケンス
構成ファイル

ここでは、Microsoft SharePoint Foundation 2010 アプリケーションおよび Microsoft SharePoint Server 2010 アプリケーションで Microsoft.SharePoint.Upgrade オブジェクト モデルを使用して、展開をアップグレードする方法について説明します。このトピックでは説明的な情報を提供します。この情報は一般的な使用を目的としたものではありません。

SharePoint Foundation 2010 および SharePoint Server 2010 では、Microsoft.SharePoint.Upgrade 名前空間のオブジェクト モデルを使用して、SharePoint Foundation 2010 プラットフォーム上に構築されているサーバー アプリケーションを、次のバージョンまたはビルドの SharePoint Foundation にアップグレードするときのアップグレード操作を定義します。オブジェクト モデルは、新しいバージョンまたはビルドの SharePoint Foundation にアップグレードするときにサーバー アプリケーションによって必要とされるように、さまざまなタスクを一貫した方法で実行するための操作順序を定義する際に使用します。

注意注意

SharePoint Foundation アップグレードのパイプラインの一部としてカスタム コードを組み込もうとすると、さまざまな問題が発生する可能性があります。たとえば、名前空間の名前付けは一意である必要があり、既定の製品名と重複してはいけないので、SharePoint Foundation サービス パックがリリースされると必ず、スキーマのバージョン管理がわかりにくくなり、環境が壊れることがあります。また、カスタム アップグレード アプリケーションでこのオブジェクト モデルを使用すると、パフォーマンスに深刻な影響を及ぼす場合があります。このオブジェクト モデルは、現在のバージョンの SharePoint Foundation のビルド間のアップグレード、または現在のバージョンから次のバージョンへのバージョン間のアップグレード (カスタム アプリケーションのサービス パックまたはビルド間のアップグレードなど) を行うときにのみ使用します。

このオブジェクト モデルを使用してアップグレード ロジックを定義するのではなく、SharePoint Foundation に用意されている他の手段を使用して展開をアップグレードします。たとえば、フィーチャー展開イベント ハンドラーを使用すると、カスタム コードを実装して機能をアップグレードできます。可能な場合は、コードを記述するのではなく、SharePoint Foundation の宣言型の操作を使用してタスクを実行します。Web パーツを個別に変更するを使用することで、Web パーツは Microsoft SharePoint Foundation 2010 で動作します。サイト定義をアップグレードするには、アップグレード定義ファイル (UDF) を使用してアップグレード操作を定義します。

アップグレード クラス

SPAction クラスは他のクラスの派生元となる基本クラスで、アップグレードにおける特定のニーズに対応できるようにすることを目的としています。たとえば、SPDatabaseAction クラスは、データベースをアップグレードするための操作を定義するという目的のために、SPAction から派生します。アップグレード アプリケーションでは、SharePoint Foundation がサーバー ファームをアップグレードする操作や、インターネット インフォメーション サービス (IIS) Web サイト、データベース、SharePoint サイト コレクション、Web アプリケーション、サーバーなどをアップグレードする操作を行わなければならない場合があります。

SPSequence クラスは、Microsoft.SharePoint.Upgrade 名前空間の他のシーケンス クラスに対する最終的な基本クラスです。このようなシーケンス クラスとしては、SPActionSequence、およびそこから派生する SPDatabaseSequenceSPIisWebSiteSequenceSPPersistedObjectSequenceSPSiteSequence などがあります。また、このオブジェクト モデルは、アップグレード プロパティや移行インストールにアクセスするための SPManager クラスや SPMigrator クラスなどのリソースも実装しています。SharePoint Foundation に固有の例外をトラップするには、SPUpgradeException クラスを使用します。

アップグレード シーケンス クラスには、読み込んで実行するアップグレード操作の基本タイプを指定する属性があります。各アップグレード操作にはバージョン属性タグがあり、アップグレード対象リソースの現在のバージョンと、アップグレード操作の対象バージョンを比較することで、特定のアップグレード操作を実行する必要があるかどうかを指定します。バージョン属性タグは、個別のアップグレード操作の並べ替えでも使用されます。

[TargetSchemaVersion("14.0.1.0")]
[ActionBaseType(typeof(MyWebAppAction))]
[TargetUpgradableObject(typeof(SPWebApplication))]

シーケンスの TargetSchemaVersion 属性は、操作モジュールの最新の更新操作の TargetSchemaVersion 属性と一致します。

アップグレード シーケンス

SharePoint Foundation のアップグレード インフラストラクチャでは、アプリケーションの特定のリソースやサービス インスタンスをアップグレードするためのインターフェイスを定義します。各アクション モジュールは、処理の適切な順序を定義する別のディレクトリで同じように名付けられたアクション シーケンス モジュールと対になっています。アップグレード シーケンスでは、SharePoint Foundation のオブジェクト モデルによって提供されるシーケンス クラスの 1 つから継承した、メンバーを実装するクラスまたは無効にするクラスを定義します。一貫性を保ち、状況によってアップグレード結果が違ってしまうことのないよう、あるリソースを対象とするアップグレード処理コードを論理的な単位としてまとめたアップグレード シーケンスを作成し、当該リソースに一括して適用するようになっています。

注意注意

SharePoint Foundation では、既定のアップグレード シーケンスの 1 つへの上書きまたは追加はサポートされていません。

論理階層で高レベルに配置されたアイテム (ルートに近い位置) から順次アップグレード処理が行われますが、実際には低レベルのアイテムが事前に (たとえば、他のオブジェクトよりも前にデータベースが) アップグレードされ、最終的にサーバー ファーム全体がアップグレードされます。アップグレード プロセスでは、まず、構成データベース、SharePoint サーバーの全体管理、ファーム内の各サーバーに特有のデータがアップグレードされ、次に、各 Web アプリケーション上のサイト コレクションが順にアップグレードされます。これで前のバージョンの Web アプリケーションが、順次現在のバージョンの Web アプリケーションにアップグレードされ、同時に対応するサイト コレクションの基盤となるコンテンツ データベースも新しくなります。

ある機能をアップグレードするのに必要なアクションは複数存在し得るので、これを実行時に検索してアップグレード シーケンスにまとめます。SharePoint Foundation は、アップグレードするよう指定されたリソース インスタンスについて、どのアップグレード シーケンスを適用するか、構成ファイルで指定されたアセンブリを読み込んだうえで決定し、実際にその処理を行います。シーケンスの実行順序は、構成ファイルの記述に基づいて決まります。

SharePoint Foundation のアップグレードはデータ駆動です。つまり、アップグレード可能として構成データベースに登録されているリソースは、特定の順序でアップグレードされます。サイト コレクションなどのオブジェクトには、複数のアップグレード シーケンスがある可能性があります。たとえば、Web アプリケーション (仮想サーバー)、コンテンツ データベース、共有サービスなどに対するアップグレード シーケンスが存在する場合があります。アップグレード可能なオブジェクトにはスキーマのバージョン管理機能が組み込まれているので、アップグレードの依存関係を分析して処理できます。また、現在のオブジェクトはアップグレードが必要か、実際にアップグレードするか、を判断するためのプロパティがあります。

アップグレード インフラストラクチャには、特定のリソースをアップグレードするアップグレード可能なオブジェクトのインターフェイス定義が含まれます。アップグレード シーケンス (またはプラグイン) は、アップグレード コードを呼び出せるように、アップグレードする必要があるリソースに基づいてこのインターフェイスを実装します。アップグレード シーケンスは、同じサーバーに対して何回でも実行できます。アップグレード シーケンスでは、ある操作を所定の時間内に実行する必要があるかどうかを判断します。また、エラーが発生したら、次にアップグレード コードが実行されたときにアップグレードを所定の状態から再開できるように、チェック ポイントをいくつか設けます。さらに、実行の過程をログとして出力し、エラーが発生した場合には報告し、進捗状況を画面に表示します。

構成ファイル

構成ファイルは、すべてのプラグインの DLL とクラス名を示す XML ファイルです。これらのファイルは、正しいクラスをインスタンス化し、リフレクションを使用してそれを実行するために、実行時に使用されます。SharePoint Foundation では、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\Config\Upgrade フォルダーに既定の構成ファイルがあります。このファイルを使用して、アップグレードを適用する製品バージョンとスキーマ バージョンの定義、アップグレードするクラスを定義するアセンブリの登録、SharePoint Foundation 2010 セットアップ ディレクトリの指定した場所への古いファイルのマップ、および古いバージョンに含まれる機能の廃止を行います。

関連項目

参照

Microsoft.SharePoint.Upgrade

概念

アップグレード処理のサンプル アウトライン

その他の技術情報

SharePoint Foundation をアップグレードする