2.6 sgtech_config.jsonファイルを使用した構成の変更

この項では、sgtech_config.jsonファイルの重要なプロパティの構成について説明します。

デフォルトでは、Spatial Studioはほとんどの重要な構成情報を保存するためにsgtech_config.jsonという名前のJSONファイルを(まだ存在していない場合)作成して使用します。

通常、このファイルはオペレーティング・システム・ユーザーのホーム・ディレクトリの.sgtechという名前のサブフォルダにあります。アプリケーションEARをWebLogicドメインにデプロイしたか、クイック・スタートのみを使用している場合は、これが当てはまります。

ノート:

sgtech_config.jsonファイルを保護し、定期的にバックアップがあることを確認する必要があります。このファイルが失われた場合、Spatial Studioがデータ接続のデータベース・スキーマ・パスワードなどの機密情報の暗号化に使用したマスター・キーが失われます。つまり、次回Spatial Studioを起動すると、そのような情報を復号化できなくなり、どのデータ接続も使用できなくなり、その中のデータセットもすべて使用できなくなります。そのようなシナリオの詳細は、失われたマスター・キーのリカバリを参照してください。

次の各トピックでは、システム管理者が気を付ける必要がある構成ファイルの重要なプロパティについて説明します:

2.6.1 HTTPS-ONLYアクセスの許可

sgtech_config.json構成ファイルの最上位レベルのプロパティの1つは、https_onlyです。この値がtrue (デフォルト)に設定されている場合、Oracle Spatial Studioはすべての受信リクエストをアクティブにモニターし、SSLを使用して行われたリクエストのみを許可します。通常のhttp://リクエストは拒否されます。

このため、http://localhost:8080/spatialstudioなどのhttp:// URLを使用してSpatial Studioアプリケーションにアクセスしようとする場合に、https_onlyの値にtrueが設定されていると、ログインできません。実際、ブラウザからアクセスできるページ・リソースがないため、ログイン・ページ自体が表示されません。同様に、HTTPSを使用してアクセスしないかぎり、すべてのRESTfulリクエストはブロックされます。

httpアクセスを有効にする場合は、https_onlyの値をfalseに変更してから、Spatial StudioアプリケーションまたはSpatial StudioがデプロイされているJavaEEコンテナを再起動します。

httpアクセスの有効化には、次の事項も必要になります:

  • JaveEEコンテナで、httpが有効になっていること。

    Spatial Studioクイック・スタートを実行している場合は、JettyコンテナでHTTPアクセスを有効にする方法について、「Spatial Studioクイック・スタートのインストールおよび構成」を参照してください。

  • ホストOSのファイアウォールで、httpポートが開いていること。

2.6.2 Spatial Studioメタデータ・スキーマへの接続

Spatial Studioは、SGTECH_OBJECTなどの一連のメタデータ表にアクセスできる必要があります。これらの表は全体として、Spatial Studioアプリケーションのリポジトリとみなされます。これらの表をホストするデータベース・スキーマは、Spatial Studioのメタデータ・スキーマまたはリポジトリ・スキーマとみなされます。

sgtech_config.jsonファイルのmetadata_schemaセクションに接続の詳細が含まれている場合、Spatial Studioは起動時の最初のステップとしてこのメタデータ・スキーマへの接続を確立できる必要があります。

緊急時には、このセクションを手動で編集して、接続詳細を変更または修正することもできます。ただし、構文エラーによってSpatial Studioが動作を停止したり、再起動に失敗する可能性があるため、このファイルを編集するときは常に注意してください。

sgtech_config.jsonファイル(のmetadata_schemaセクション)にリポジトリ・スキーマ接続の詳細を手動で入力する場合は、CONTAINERまたはSPATAL_STUDIOのどちらで物理JDBC接続を管理するかを最初に指定する必要があります。

"metadata_schema" : {
    "connection_manager": "CONTAINER"
}

または

"metadata_schema" : {
    "connection_manager": "SPATIAL_STUDIO"
}

connection_managerCONTAINERを設定すると、Spatial Studioのリポジトリ・スキーマへのJDBC接続は、Jetty (クイック・スタートの場合)またはWebLogic Serverにすでに作成したJava EEデータ・ソースを使用して管理されることになります。たとえば、WLSドメインにjdbc/studioMetadataというデータ・ソースがあり、Studioでこのデータ・ソースを使用してターゲット・スキーマに接続する場合、sgtech_config.jsonの関連セクションは次のようになります。

"metadata_schema" {
"connection_manager" : "CONTAINER",
"container_managed":{
        "jndi_datasource_name" : "jdbc/studioMetadata"
}
}

ノート:

Spatial Studioリリース19.2以降では、Spatial Studioアプリケーションにコンテナ管理の接続の詳細を入力できないため、サポートされている唯一の方法はsgtech_config.jsonファイルを手動で編集することです。

ただし、Spatial Studioでそのメタデータ・スキーマへの物理接続を管理する場合は、connection_managerSPATIAL_STUDIOを設定し、JDBC接続の詳細の完全なセットを指定します。この詳細は、スキーマがOracle Autonomousデータベース(接続を確立するにはデータベースWalletが必要となります)に存在するか、通常のオンプレミスのデータベースに存在するかによって異なります。sgtech_config.jsonファイル内のインライン・コメントで詳細を確認できますが、Spatial Studioに管理ユーザーとしてログオンし、リポジトリ・スキーマの接続の詳細を対話形式で指定することをお薦めします。そのような詳細は、Spatial Studioが接続を検証した後に、sgtech_config.jsonに自動的に保存されます。

2.6.3 メタデータ・オブジェクトのキャッシュ

実行時に、ユーザーが接続、データセットおよびプロジェクトを作成すると、Spatial Studioは、データセットの定義やそのすべての列の定義、すべてのビジュアライゼーションの完全なレイアウトを含むプロジェクトの定義などの大量のメタデータ(Spatial Studioのドメイン・オブジェクトとも呼ばれます)を作成、変更および格納します。

すべてのメタデータ・オブジェクトは、メタデータ表SGTECH_OBJECTに永続的に格納されますが、データベースに頻繁にアクセスする必要がある場合(プロジェクトを開くとき、データセットのプロパティを表示するときなど)は、パフォーマンスが低下する可能性があります。これが発生する場合は、そのようなメタデータ・オブジェクトの頻繁にアクセスされるコピーをメモリーにキャッシュすることが解決策となります。

sgtech_config.jsonファイルのcacheセクションでは、メタデータ・オブジェクトのそのようなインメモリー・キャッシュを有効にするかどうかを指定できます。キャッシュが有効になっている場合は、そのようなオブジェクトをキャッシュできる数とキャッシュする期間をさらに指定できます。一般的なルールとしては、max_size (キャッシュされるメタデータ・オブジェクトの最大数)は1000未満にしますが、Spatial Studioに割り当てるメモリー量が非常に多い場合を除き、10000を超えないようにしてください。

2.6.4 Spatial Studioでの追加構成ファイルのインポート

Spatial Studio 22.1では、様々な構成ファイルをメインのsgtech_config.json構成ファイルにインポートできます。

複数の構成ファイルを処理するためのワークフローを次に示します。

図2-5 複数の構成ファイルを処理するワークフロー

図2-5の説明が続く
「図2-5 複数の構成ファイルを処理するワークフロー」の説明
  1. 起動時に、Spatial Studioはプライマリ構成ファイルsgtech_config.jsonをロードします。

    sgtech_config.jsonで定義されている設定はすべて、基本設定として使用されます。

  2. sgtech_config.jsonファイルにimportsディレクティブが含まれている場合は、インポート・ファイルが宣言された順序(上から下)でロードされます。

    ロードされたインポート・ファイルごとに、設定が読み込まれ、基本設定に追加されます。

  3. 基本設定がすべて読み込まれると、機密項目が暗号化され、対応するファイルに保存されます。
  4. Spatial Studioは、システムの残りのロードを再開します。

sgtech_config.jsonへのimportsの追加

次のように、sgtech_config.jsonファイルを編集し、新しいトップレベルのimportsディレクティブを追加できます。

"imports" : {
   "<import_name>" : {
      "module" : "<import_file_path>",
      "description" : "<import_description>"
   }
}

前述のコードで:

  • <import_name>: 一意である必要があるインポート・ファイルの名前。これは主に、importsファイルのロード時にエラーをレポートするためにSpatial Studioで使用されます。
  • <import_file_path>: importsファイルのファイル・パスは、メイン構成ファイル(~/.sgtech/sgtech_config.json)の格納先ディレクトリに対して相対的である必要があります。
  • <import_description>: インポートの目的を記述します。

    descriptionは、importsプロパティのオプションのパラメータです。

たとえば、sgtech_config.dbsettings.jsonファイルで、次のコードに示すようにmetadata_schemaの詳細を構成します。ファイル・パスは~/.sgtech/extras/sgtech_config.dbsettings.jsonとなります。
{
  "metadata_schema" : {
    "connection_manager" : "CONTAINER",
    "container_managed" : {
      ...
    },
  }
}

また、sgtech_config.jobs.jsonでファイル・パス~/.sgtech/extras/sgtech_config.jobs.jsonの後に、jobsの詳細を別に構成します。

{
  "jobs" : {
    "init_threads_count" : 45
  }
}

これで、次のように、前述の2つの構成ファイルをメインのsgtech_config.jsonファイル(~/.sgtech/sgtech_config.json)のimportsディレクティブに含めることができるようになります。

{
  "version" : "22.1.0",
  "work_dir" : "",
  "https_only" : true,
  "master_seed" : "<somerandommasterseed>",
  "logging" : {
    "level" : "INFO"
  },
  "imports" : {
    "jobs" : {
      "module" : "extras/sgtech_config.jobs.json"
    },
    "db" : {
      "module" : "extras/sgtech_config.dbsettings.json",
      "description" : "Database settings optimized for clustering"
    }
  }
}

インポート・ファイルの要件

複数のインポート・ファイルを処理する場合は、次の要件に準拠することが重要です。

  • importsのファイルは、プライマリsgtech_config.jsonファイルと同じディレクトリまたはそのサブディレクトリ内にある必要があります。
  • importsファイルに含まれる設定は、プライマリsgtech_config.json構成ファイルなど、他の構成ファイルですでに宣言されている設定との競合を回避する必要があります。
  • importsファイルには機密データを含めることができるため、ファイルの所有者のみが読取りまたは書込み(あるいはその両方)のアクセス権を持っている必要があります。
  • versionwork_dirmaster_seedおよびimportsは、プライマリ構成ファイルsgtech_config.jsonに制限されている設定です。

2.6.5 Spatial Studioのリポジトリ・スキーマ・パスワードが変更されている場合

Spatial Studioのリポジトリ・スキーマ・パスワードが変更されている場合は、次のようにsgtech_config.json構成ファイルを更新する必要があります:

  1. このファイルのバックアップ・コピーを作成します。たとえば、~/.sgtech/sgtech_config.json~/.sgtech/sgtech_config.json_backupにコピーします。
  2. Spatial Studioの計算ノードで、ファイル~/.sgtech/sgtech_config.jsonを編集します。
  3. metadata_schemaセクションで、database_passwordを必要な値に更新します。
  4. ファイルを保存してSpatial Studioデプロイメントを再起動します。クイック・スタート・キットを使用している場合に再起動するには、クイック・スタートのREADMEファイルを参照してください。WebLogic Serverデプロイメントの場合は、WebLogic Serverコンソールを使用して再起動します。
  5. Spatial Studioアプリケーションを開きます。ログインできる必要があります。

必要に応じて編集できる他の(リポジトリ以外の)接続も含め、作成したすべてのアーティファクトが残ります。