本資料は、Web Player(WPと略称)/ Automation Services(ASと略称)から共有フォルダへアクセスする際に必要な設定について説明します。
動作確認環境
- Spotfire Web Player 14.0 LTS
- Spotfire Automation Services 14.0 LTS
※本資料で記載した内容はSpotfire 10.10 LTS以降の環境にて利用できます。
背景
分析内のデータテーブルが共有フォルダにあるファイルをリンクで参照するように構成されている場合、WP/AS内で対象分析を開く際にはWP/ASのプロセスが該当ファイルの読み込みを行います。Spotfire内の設定や共有フォルダへの読み取り権限が不足している場合にはファイルの読み込みが失敗してしまい、WPでの分析閲覧やASでのジョブ実行が正しく処理できません。
Web Playerで分析を閲覧する際に共有フォルダ内のファイルの読み込みが失敗した場合には以下のエラー画面が表示されます。エラー画面はSpotfireユーザーのライセンス設定によって異なります。
「Spotfire Business Author」ライセンスを持っているユーザーの場合:
「Spotfire Consumer」ライセンスを持っているユーザーの場合:
上記エラー発生時に、Web Playerのログファイルに以下のエラーメッセージが出力されることがあります。
・C:\spotfire\nodemanager\14.0.X\nm\logs\Spotfire.Dxp.Worker.Host.<WPインスタンスID>.log
エラー①:
ERROR;2024-08-12T16:56:27,961+09:00;2024-08-12 07:56:27,961;60c22aa2-6140-461b-a036-f6c8d410bdfd;121646087cBQcF;WorkThread 110_23;consumer1 WAT 11;a615c272626c50d360255fd1d73eb619;Spotfire.Dxp.Data.AsyncImport.DataTablesLoader;"Prompting for failed to open table 'Baseball - Sheet1'. Spotfire.Dxp.Data.Exceptions.ImportException: Failed to execute data source query for data source "Baseball - Sheet1". ---> Spotfire.Dxp.Data.Exceptions.ImportException: パス '\\192.168.100.63\shared\Baseball.xlsx' へのアクセスが拒否されました。 ---> Spotfire.Dxp.Data.Exceptions.ImportException: パス '\\192.168.100.63\shared\Baseball.xlsx' へのアクセスが拒否されました。 ---> System.UnauthorizedAccessException: パス '\\192.168.100.63\shared\Baseball.xlsx' へのアクセスが拒否されました。
エラー②:
WARN ;2024-08-12T17:19:59,870+09:00;2024-08-12 08:19:59,870;60c22aa2-6140-461b-a036-f6c8d410bdfd;121718087cdV0e;WorkThread 94_14;consumer1 WAT 1;01678cc1c813b7bc8801d9383cb920b8;Spotfire.Dxp.Web.SiteManager;"Access to the file '\\192.168.100.63\shared\Baseball.xlsx' is not allowed. The file does not reside in one of the paths specified by the 'AllowedFilePaths' setting. "
ERROR;2024-08-12T17:20:00,034+09:00;2024-08-12 08:20:00,034;60c22aa2-6140-461b-a036-f6c8d410bdfd;121718087cdV0e;WorkThread 94_14;consumer1 WAT 1;01678cc1c813b7bc8801d9383cb920b8;Spotfire.Dxp.Web.Prompting.PromptHandler+PromptItem;"Spotfire.Dxp.Data.Exceptions.ImportException: Failed to open data source. ---> System.UnauthorizedAccessException: Cannot access file '\\192.168.100.63\shared\Baseball.xlsx'.
Automation Servicesでジョブ(タスク:「ライブラリーから分析を開く」)を実行する際に共有フォルダ内のファイルの読み込みが失敗した場合にはジョブの実行が失敗し、「Activity details」画面に以下のエラーメッセージが表示されます。
上記エラー発生時に、Automation Servicesのログファイルに以下のエラーメッセージが出力されることがあります。
・C:\spotfire\nodemanager\14.0.X\nm\logs\Spotfire.Dxp.Worker.Host.<ASインスタンスID>.log
エラー①:
ERROR;2024-08-12T17:15:13,212+09:00;2024-08-12 08:15:13,212;e000af8d-e4cb-4750-851f-75c44415ffe4;121713087c1-Pm;16;automationservices@SPOTFIRESYSTEM;TsasUserSession;Spotfire.Dxp.Automation.Tasks.Tasks.OpenAnalysisFromLibrary;"Could not open document from library. Spotfire.Dxp.Framework.Library.LibraryException: Import failed ---> Spotfire.Dxp.Data.Exceptions.ImportException: Failed to execute data source query for data source "Baseball - Sheet1". ---> Spotfire.Dxp.Data.Exceptions.ImportException: パス '\\192.168.100.63\shared\Baseball.xlsx' へのアクセスが拒否されました。 ---> Spotfire.Dxp.Data.Exceptions.ImportException: パス '\\192.168.100.63\shared\Baseball.xlsx' へのアクセスが拒否されました。 ---> System.UnauthorizedAccessException: パス '\\192.168.100.63\shared\Baseball.xlsx' へのアクセスが拒否されました。
エラー②:
WARN ;2024-08-13T09:48:37,271+09:00;2024-08-13 00:48:37,271;e000af8d-e4cb-4750-851f-75c44415ffe4;130947087cWD2Z;13;automationservices@SPOTFIRESYSTEM;TsasUserSession;Spotfire.Dxp.Web.SiteManager;"Access to the file '\\192.168.100.63\shared\Baseball.xlsx' is not allowed. The file does not reside in one of the paths specified by the 'AllowedFilePaths' setting. "
ERROR;2024-08-13T09:48:37,421+09:00;2024-08-13 00:48:37,421;e000af8d-e4cb-4750-851f-75c44415ffe4;130947087cWD2Z;13;automationservices@SPOTFIRESYSTEM;TsasUserSession;Spotfire.Dxp.Automation.Tasks.Tasks.OpenAnalysisFromLibrary;"Could not open document from library. Spotfire.Dxp.Framework.Library.LibraryException: Import failed ---> Spotfire.Dxp.Data.Exceptions.ImportException: Failed to open data source. ---> System.UnauthorizedAccessException: Cannot access file '\\192.168.100.63\shared\Baseball.xlsx'.
対策
上記問題を改善するには、以下の「WP/ASから外部ファイルへのアクセスの許可」と「共有フォルダへの読み取り権限の付与」の両方を実施してください。
1.WP/ASから外部ファイルへのアクセスの許可
Web PlayerやAutomation Servicesのデフォルト設定では、外部ファイル(ローカルファイルまたは共有フォルダにあるファイル)へのアクセスが許可されていません。以下の手順に従ってWP/ASサービスの設定を変更して、ステップ「③設定ファイル編集による設定変更」に記載されている「AllowAllFilePaths」を「True」に設定してください。これですべての外部ファイルへのアクセスが許可されるようになります。
※設定変更はWeb PlayerやAutomation Servicesのそれぞれに対して実施してください。
2.共有フォルダへの読み取り権限の付与
Web PlayerやAutomation Servicesを実行するOSサービス「Spotfire Node Manager 14.0.X LTS」のサービスアカウントに、共有フォルダへの読み取り権限を付与してください。
※14.0 LTSより前のバージョンの場合、OSサービスの名前が「TIBCO Spotfire Node Manager X.Y.Z」となります。
サービスアカウントはデフォルト設定では「LOCAL SYSTEM」となっていますが、専用アカウント(ドメインユーザーまたはOSユーザー)を別途作成してサービスアカウントに指定することも可能です。この場合、該当アカウントにWP/ASサーバーのローカル管理者権限(グループ「Administrators」にメンバー追加)を付与する必要があります。
共有フォルダへの読み取り権限の付与はWindowsの仕組みに従って実施してください。
本記事では参考程度で下記のいくつかの対応方法について説明いたします。
WP/ASサーバーと共有フォルダのサーバーともドメインに参加している場合、以下の2つの方法で対応できます。
方法①、共有フォルダへのアクセス権限を設定する際、ドメイン内の「コンピューター」アカウントを検索し、結果内にあるWP/ASサーバーに読み取り権限を付与してください。
例えば、WP/ASサーバーのホスト名(下記例:DC01)の後ろに「$」をつけて、アクセス権限を付与することができます。
方法②、ドメイン内で専用アカウント(ドメインユーザー)を作成し、OSサービス「Spotfire Node Manager 14.0.X LTS」のサービスアカウントに設定します。かつ、該当アカウントにWP/ASサーバーのローカル管理者権限を付与してください。その後に、該当アカウント(ドメインユーザー)に共有フォルダへの読み取り権限を付与してください。最後に対象OSサービス「Spotfire Node Manager 14.0.X LTS」を再起動して設定変更を反映させてください。
ドメインに参加していない場合、以下の手順で共有フォルダへのアクセス権限を付与できます。
※共有フォルダへの読み取り権限を「Everyone」に付与しても、デフォルト設定のサービスアカウント「LOCAL SYSTEM」からはアクセスできません。
1.WP/ASサーバー内で専用アカウント(OSユーザー)を作成し、OSサービス「Spotfire Node Manager 14.0.X LTS」のサービスアカウントに設定します。かつ、該当アカウント(OSユーザー)にWP/ASサーバーのローカル管理者権限を付与してください。
2.共有フォルダのサーバー内で、上記の1.と同じユーザー名、パスワードのOSユーザーを作成し、共有フォルダへの読み取り権限をこのOSユーザーに付与してください。
3.WP/ASサーバー内でサービス「Spotfire Node Manager 14.0.X LTS」を再起動し、動作確認してください。