SharePoint 2013 の「アップグレード評価サイト コレクション」について (後編)

こんにちは、SharePoint サポートの原橋です。

前回の投稿に引き続き、SharePoint 2013 の「アップグレード 評価サイトコレクション」についての記事となりますが、今回の投稿では、SharePoint 2013 でアップグレード評価サイト コレクションの作成に失敗するという事象についてご案内いたします。

 

<目次>

1. アップグレード評価サイト コレクションの作成に失敗する事例

2. アップグレード評価サイト コレクションの作成に失敗することによる影響と対処法

3. 補足 : アップグレード評価サイト コレクションの作成に失敗した際の診断ログ


1. アップグレード評価サイト コレクションの作成に失敗する事例

[アップグレード評価サイト コレクションの作成] ボタンをクリックすると、通常であれば 1 日から 2 日ほどお待ちいただくことにより、アップグレード評価サイト コレクションの作成が完了します。

しかし、「アップグレード評価サイト コレクションの作成」タイマージョブによって、要求を出したサイト コレクションのコピーに失敗した場合は、後続の「アップグレード サイト コレクション ジョブ」タイマージョブがアップグレード処理を行うことが出来ません。これにより、アップグレード評価サイト コレクションが作成されないという事例が報告されております。

 

「アップグレード評価サイト コレクションの作成」タイマージョブが失敗する場合は、コピーされたサイト コレクション内に、全体で 260 文字を超えるパスを持つファイルやフォルダーが存在する状況が発生したことが原因として挙げられます。

 

通常であれば、サイト コレクション内に全体で 260 文字を超えるパスを持ったファイルやフォルダーを作成することが出来ません。意図的に 260 文字を超えるパスを持ったファイルやフォルダーの作成を試みた場合は、以下のような “指定したファイルまたはフォルダーの名前が長すぎます” といったエラーが発生し、作成に失敗します。

[caption id="attachment_10055" align="alignnone" width="300"]パスが 260 文字を超えるファイルやフォルダーを作成した場合に発生するエラー パスが 260 文字を超えるファイルやフォルダーを作成した場合に発生するエラー[/caption]

 

具体的には、サイト コレクション内のファイルやフォルダーは、"https://サーバー名/" を文字数に含まず、以下の a) と b) を合計したパスの文字数が 260 文字以内に収まっている必要があります。

a) 管理パス (sites など) を含むサイト コレクションのパス

b) ファイルやフォルダーの相対パス

 

例) サイト コレクション "https://sps2013/sites/test" にドキュメント ライブラリ "doc001" に "test1.txt" がアップロードされている場合

"sites/test" (10 文字) + "/doc001/test1.txt" (17 文字) = 27 文字

 

しかし、前回の記事での解説の通り、「アップグレード評価サイト コレクションの作成」タイマージョブによって作成されるサイト コレクションのコピーは、元のサイト コレクションの URL の末尾に "-eval" という文字列が付与されたものになります。

このため、コピーされたサイト コレクション内では、さらに以下の c) を合計した全体のパスの文字数が 260 文字以内に収まっている必要があります。

 

a) 管理パス (sites など) を含むサイト コレクションのパス

b) ファイルやフォルダーの相対パス

c) "-eval" の 5 文字

 

このため、先ほどの例ではコピーされたサイト コレクションにおいて、"sites/test" (10 文字) + "-eval" (5文字) + "/doc001/test1.txt" (17 文字) = 32 文字 というパスとなります。

従いまして、コピー元のサイト コレクションのパスが a) と b)を合計して 256文字以上 260 文字以下であった場合に、コピーされたサイト コレクションでは "-eval" というパスが付与されて、全体のパスが 260 文字を超過するという状況が発生します。

 

2. アップグレード評価サイト コレクションの作成に失敗することによる影響と対処法

「アップグレード評価サイト コレクションの作成」タイマージョブが失敗した場合は、翌日の 1:00 に実行される同タイマージョブによって、再度サイト コレクションのコピーの作成を実行します。

しかし、コピーされたサイト コレクション内に 260 文字を超えるパスを持つファイルやフォルダーが存在する状況が発生している場合は、次回のタイマージョブによるコピー処理も必ず失敗に終わってしまいます。

このタイマージョブの失敗による影響は、単にアップグレード評価サイト コレクションが作成されないというだけではなく、コピー処理中は元のサイト コレクションが一時的にアクセス不可能となる現象が毎晩繰り返し発生するといったことが挙げられます。

この場合の対処法としましては、以下のいずれかの方法が考えられます。

  1. 「アップグレード評価サイト コレクションの作成」タイマージョブを停止する
  2. コピー元のサイト コレクション内で、パスが 256 文字以上となっているファイルまたはフォルダーを取り除く

 

1) 「アップグレード評価サイト コレクションの作成」タイマージョブを停止する

以下の手順によって、既定では毎日深夜 1:00 に実行される「アップグレード評価サイト コレクションの作成」タイマージョブを停止することにより、サイト コレクションのコピーを作成する処理が実行されなくなります。

 

<手順>

  1. SharePoint 2013 のサーバーの全体管理サイトにアクセスします。
  2. [監視] のリンクをクリックします。
  3. [タイマー ジョブ] セクションから [ジョブ定義の確認] のリンクをクリックします。
  4. 対象のサイト コレクションがホストされている Web アプリケーションに紐づいた [アップグレード評価サイト コレクション ジョブの作成] のリンクをクリックします。
  5. "アップグレード評価サイト コレクションの作成" タイマージョブの編集画面が表示されるので、 ページ下部の [無効] ボタンをクリックして、タイマージョブを停止します。

 

なお、この手順によってタイマージョブを停止した場合は、対象のサイト コレクションと同じ Web アプリケーション内にホストされている別のサイト コレクションについても、アップグレード評価サイト コレクションの作成を行えなくなります。

 

2) コピー元のサイト コレクション内で、パスが 256 文字以上となっているファイルまたはフォルダーを取り除く

コピー元のサイト コレクション内で256 文字以上のパスをもつファイルを取り除くことによって、次回の「アップグレード評価サイト コレクションの作成」タイマージョブの実行時にコピーが成功することが期待できます。

SQL Management Studio で以下のクエリを実行することによって、コピー元のサイト コレクション内のすべてのファイルまたはフォルダーのパスの文字数を、降順に表示することが可能です。

なお、以下のクエリ内の "コンテンツデータベース名" および "アップグレード元のサイト コレクションの SiteId" は、ご利用の環境に合わせて変更してください。

 

クエリ

 USE [コンテンツ データベース名]
 SELECT DirName + '/' + LeafName AS FullUrl, LEN(DirName + '/' + LeafName) AS UrlLength
 FROM AllDocs with (nolock)
 WHERE SiteId = 'アップグレード元のサイト コレクションの SiteId'
 ORDER BY UrlLength DESC

 

クエリの実行結果

 

上記のクエリなどによって 256 文字以上のパスを持つファイルまたはフォルダーを特定できた場合は、それらのパスを短くするか、あるいは削除してください。

なお、当該のファイルまたはフォルダーを削除する場合は、ユーザーのごみ箱またはサイト コレクション (第 2 段階) のごみ箱に移動しただけでは不十分です。サイト コレクション (第 2 段階)のごみ箱からも完全に削除しないと、「アップグレード評価サイト コレクションの作成」タイマージョブは、サイト コレクションのコピーの作成に失敗します。

 

なお、SharePoint のごみ箱については、以下の TechNet の記事にも解説がありますので、併せてご確認ください。(SharePoint 2010 の記事となっていますが、SharePoint 2013 でも同様に参考にしていただけます。)

 

タイトル: ごみ箱とバージョン管理を使用したコンテンツ保護を計画する (SharePoint Server 2010)
アドレス : https://technet.microsoft.com/ja-jp/library/cc263011(v=office.14).aspx

 

3. 補足 : アップグレード評価サイト コレクションの作成に失敗した際の診断ログ

コピーされたサイト コレクション上に 260 文字を超えるパスを持ったファイルやフォルダーが存在する場合は、SharePoint の診断ログにも以下のようなエラーが記録されます。

 

SharePoint 診断ログ

 11/17/2017 14:37:30.46 OWSTIMER.EXE (0x07D8) 0x06A0 SharePoint Foundation Upgrade al5ol Monitorable

Create eval sites job: Failed to create eval site for site [https://sharepoint2013:2000/sites/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234568790123456789], ID [8364980e-cdf0-4197-8b8b-52bc8a415d92], Eval site [https://sharepoint2013:2000/sites/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234568790123456789-eval], Content db [WSS_Content_sps2010_3000].

Exception thrown while copying site due to exceeding the maximum supported URL length: Microsoft.SharePoint.SPException: Cannot rename old site

https://sharepoint2013:2000/sites/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234568790123456789 on copy.

場所 Microsoft.SharePoint.Upgrade.SPSiteCollectionCopier.CopyOrMoveSite(SPMigratableSite msite, Boolean copy, Boolean copyEvents, Nullable`1 newSiteId)

場所 Microsoft.SharePoint.Upgrade.SPSiteCollectionCopier.Copy(Uri newSiteUri, Boolean userHostHeaderAsSiteName)

場所 Microsoft.SharePoint.SPSite.Copy(String newSiteUrl, Boolean hostHeaderAsSiteName, SPContentDatabase targetDb, SPDatabaseSnapshot snapShot)

場所 Microsoft.SharePoint.Administration.SPEvalSiteCreator.MakeCopy(SPDatabaseSnapshot snpShot). Eval site creation will be retried during the next timer job run, but will not succeed until the files or folders with excessive URL length are deleted or renamed.

75aa2d9e-2c53-80a9-a060-dab788e33cb2

 

Exception thrown while copying site due to exceeding the maximum supported URL length というメッセージから、パスが超過していることが原因で、サイト コレクションのコピーに失敗していることが分かります。

また、Eval site creation will be retried during the next timer job run, but will not succeed until the files or folders with excessive URL length are deleted or renamed. というメッセージから、上記のパスが超過しているファイルやフォルダーを取り除かない場合は、次回のタイマージョブによるコピー処理も失敗するといった内容が確認できます。

 

※本情報の内容は、作成日時点でのものであり、予告なく変更される場合があります。

 

今回の投稿は以上となります。