サーバーの設定

Version 24.1.8910


サーバーの設定


CData Sync には組み込みEclipse Jetty Web サーバーが含まれ、外部サーバー構成なしでSync を実行できます。組み込みJetty サーバーの使用には、JDK 11 またはそれ以上のバージョンがマシンにインストールされている必要があります。

Windows

Windows の場合、CData Sync はサービスとしてデフォルトでインストールされます。アプリケーションにアクセスするには、まず、サービスが起動していることを確認する必要があります。サービスが起動したら、Web ブラウザを開いてURL にhttp://localhost:8181/ を入力すると、CData Sync 管理コンソールにアクセスできます。

また、サービスを使用せずにjava コマンドを介してアプリケーションを実行することもできます。CData はサービスの利用を推奨していますが、特定の構成ではこちらの方法が有効です。

サービスの起動と停止

サービスの開始と停止は、次のいずれかの方法で行います。

スタートメニューのショートカット

CData Sync インストーラーは、アプリケーションを簡単に使用できるスタートメニューのショートカットを作成します。これらのショートカットにアクセスするには、スタートメニューを開いてCData Sync 2023 フォルダを展開します。以下のショートカットが利用可能です。

  • Start CData Sync:CData Sync サービスを開始します。デフォルトでは、このサービスはWindows 起動時に実行されます。そのため、アプリケーションを実行するたびにこのコマンドを実行する必要はありません。

  • Stop CData Sync:CData Sync サービスを停止します。このアクションは、Sync のアップグレード時に必要です。

  • Launch CData Sync Admin Console:デフォルトのWeb ブラウザでWeb ブラウザウィンドウを開き、管理コンソールURL http://localhost:8181/ にアクセスします。サービスが起動していない場合、Web ブラウザはエラーを返します。

サービス管理コンソール

サービス管理コンソールを開くには、スタートメニューを開きサービスと入力します。表示されたサービスアプリケーションを選択します。

CData Sync というサービスが表示されるまでスクロールダウンします。サービスが起動している場合は、状態カラムに実行中と表示されます。サービスを右クリックすると、開始停止、および再起動のオプションを利用できます。

コマンドプロンプト

高度なユーザーは、Windows のコマンドプロンプトを使用して、サービスに対して手動でコマンドを発行することができます。コマンドプロンプトを開き、ディレクトリをインストールフォルダに変更します(デフォルトはC:\Program Files\CData\CData Sync です)。

Note:Microsoft PowerShell ウィンドウを使用してこれらのコマンドを発行することもできますが、構文が若干異なります。PowerShell を使用する際は、コマンドを適宜修正してください。

CData Sync サービスを開始するには、次のコマンドを実行します。

sync.exe -start

以下のコマンドで、サービスを再起動または停止できます。

sync.exe --restart --ServiceName "CData Sync"
sync.exe --stop --ServiceName "CData Sync"

サービスを使わずに起動

サービスを開始せずにCData Sync を実行するには、インストールフォルダでコマンドプロンプトを開きます。アプリケーションを開始するには、次のコマンドを実行します。

java -jar sync.jar

Linux

CData Sync を任意の場所にインストールしたら、CData Sync をサービスとして実行するか、アプリケーションを手動で実行することができます。CData は、重要なアプリケーションにSync を使用する場合は、サービスの使用をお勧めします。

Sync をサービスとして実行

CData Sync をサービスとして実行すると、アプリケーションをユーザープロセスから独立して実行し、再起動時に自動的に再起動することができます。この方法は、クリティカルな用途に適しています。

CData では、Linux 上でCData Sync アプリケーションを管理するデーモンの作成を推奨しています。インストールパッケージに含まれるスクリプトで、これを自動的に行うことができます。必要に応じて、手動でデーモンを作成することも可能です。

システムが systemd デーモンマネージャーを使用している場合に、CData Sync デーモンを設定する最も安全な方法は、インストールパッケージに含まれているスクリプトを実行することです。

bash ./service

このスクリプトは、cdata-sync.service という名前のデーモンを作成します。その後、systemctl を使用してデーモンを管理できます。

systemctl enable cdata-sync
systemctl start cdata-sync

スタンドアロンアプリケーションの実行

サービスを作成せずにCData Sync を開始するには、ターミナルでインストールディレクトリのsync.jar ファイルを開き、次のように設定ファイルを引数として指定します。

java -jar sync.jar

組み込みJetty サーバーの構成

CData Sync は、あらゆる環境ですぐに動作するようあらかじめ設定されています。ただし、CData Sync インストールディレクトリにsync.properties ファイルを生成することで、Sync で公開されているデータへのアクセス方法をカスタマイズできます(Windows の場合、インストールディレクトリのデフォルトはC:\Program Files\CData\CData Sync です)。

sync.properties ファイルの生成

組み込みJetty サーバーをカスタマイズする前に、sync.properties ファイルを作成する必要があります。これを行うには、sync.jar ファイルがあるインストールディレクトリ(InstallationDirectory)で以下のコマンドを実行します。

java -jar sync.jar -GenerateProperties

Note:sync.properties ファイルを生成すると、Syncをアップグレードしてもこのファイルは上書きされません。

sync.properties ファイルには、次のセクションで説明するように、ポートを変更したりTLS / SSL を有効にするために変更できるパラメータが含まれています。

ポートの変更

組み込みサーバーがリッスンするポートを設定するには、

  1. InstallationDirectory にあるsync.properties ファイルを見つけ、テキストエディタで開きます。

  2. ポートが設定されている次の行を探します。

    cdata.http.port=8181

  3. この値を、希望するポート番号に変更します。

非アクティブ時タイムアウトの変更

デフォルトでは、Sync の非アクティブ(セッション)タイムアウトは10分(600秒)です。

タイムアウト値を変更するには、以下のようにsync.properties ファイルのcdata.session.timeout プロパティを設定します。

cdata.session.timeout=1200

SSL / TLS の有効化

SSL / TLS 接続(HTTPS)を有効化する場合にも、以下のように、 InstallationDirectory のsync.properties ファイルを修正します。

  1. cdata.tls.keyStoreType 設定を、使用するキーストアのタイプに設定します。有効な値には、jkspkcs12、およびjceks が含まれます。

  2. cdata.tls.keyStorePath 設定を、使用するキーストアのパスに設定します。${cdata.home} は、 InstallationDirectory を参照するために使用される場合があることに注意してください。

  3. cdata.tls.keyStorePassword 設定を、キーストアのパスワードに設定します。

  4. cdata.tls.port 設定を、サーバーをホストするために使用するポートに設定します。

  5. (オプション)cdata.http.port 設定を、プレーンテキスト接続を無効にするために空の文字列に設定します。

最終的にはこの例のようになります:

;; HTTP
cdata.http.port=

;; TLS
cdata.tls.port=8443
cdata.tls.keyStoreType=PKCS12
cdata.tls.keyStorePath=${cdata.home}/mycertificate.pfx
cdata.tls.keyStorePassword=MyPassword

Note:Sync で設定するために外部秘密鍵を取得する場合は、必ず証明書の所有者をSync (cdatasync:cdatasync) をホストするために使用されるサービスアカウントに変更してください。

LDAP 認証の有効化

Sync はLDAP 認証の使用をサポートしています。LDAP 認証を有効にするには、LDAP ユーザーと一致するユーザーがSync で定義されている必要があります。Sync でユーザーを作成する方法については、ユーザーを追加を参照してください。

LDAP 認証を有効化する場合は、以下のように、 InstallationDirectory のsync.properties ファイルを修正します。

  1. ldap.hostname をLDAP サーバーのドメイン名またはIP アドレスに設定します。

  2. ldap.port をLDAP サーバーが実行されているポートに設定します。

  3. ldap.authenticatedMethod をLDAP サーバーに接続するときに使用する認証メカニズムに設定します。オプションはnone およびsimple です。

  4. ldap.bindDnldap.bindPassword を、LDAP サーバーを認証するユーザーの識別名とパスワードに設定します。

  5. ldap.debug には、サーバーログにデバッグ情報を追加するかどうかについて設定します。オプションはtrue またはfalse です。

  6. ldap.user* には、ユーザーエントリを検索するために使用するプロパティを設定します。

  7. ldap.role* には、ロールエントリを検索するために使用するプロパティを設定します。

最終的にはこの例のようになります:

;; LDAP 
cdata.loginService.ldap.enabled=true 
cdata.loginService.ldap.hostname="Server" 
cdata.loginService.ldap.bindDn="CN=CommonName,CN=CommonUsers,DC=ka,DC=com" 
cdata.loginService.ldap.bindPassword="Password" 
cdata.loginService.ldap.debug=true 
cdata.loginService.ldap.port="Port" 
cdata.loginService.ldap.authenticationMethod="AuthMechanism" 
cdata.loginService.ldap.userBaseDn="DC=DomainComponent,DC=DomainComponent" 
cdata.loginService.ldap.userObjectClass="organizationalPerson" 
cdata.loginService.ldap.userRdnAttribute="cn" 
cdata.loginService.ldap.userIdAttribute="sAMAccountName" 
cdata.loginService.ldap.userPasswordAttribute="userPassword" 
cdata.loginService.ldap.forceBindingLogin="true" 
cdata.loginService.ldap.roleBaseDn="DC=ka,DC=com" 
cdata.loginService.ldap.roleNameAttribute="cn" 
cdata.loginService.ldap.roleMemberAttribute="member" 
cdata.loginService.ldap.roleObjectClass="group" 
cdata.loginService.ldap.useLdaps="false"

CData Sync をMicrosoft インターネットインフォメーションサービス(IIS)にデプロイ

Sync には組み込みのJetty Web サーバーが同梱されていますが、Microsoft IIS Web サーバーにデプロイすることもできます。以下のセクションでは、IIS へのデプロイを実行するために必要な手順について説明します。

手順のついてご不明な点がありましたら、弊社のサポートフォームよりお気軽にお問い合わせください。

前提条件の手順

新しいWeb サイトの作成を始める前に、以下の前提条件の手順を実行してください:

  1. Microsoft IIS ダウンロードページより、HttpPlatformHandler モジュールをダウンロードします。

  2. Sync 用の新しいフォルダを作成します(例えば、C:\inetpub\sync)。

  3. 手順2で作成したフォルダにweb.config ファイルを作成します。次に、以下の内容をweb.config に追加します:

    <?xml version="1.0" encoding="UTF-8"?>
     <configuration>
       <system.webServer>
         <handlers>
           <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
         </handlers>
         <httpPlatform processPath="C:\Program Files\CData\CData Sync\jre\jdk-17.0.5+8\bin\java.exe" 
                       arguments="-Dcdata.http.port=%HTTP_PLATFORM_PORT% -jar &quot;C:\Program Files\CData\CData Sync\sync.jar&quot;" 
                       stdoutLogEnabled="true" 
                       stdoutLogFile="C:\inetpub\sync\log.txt"
                       >
         </httpPlatform>
       </system.webServer>
     </configuration>
    
    

これで、次のセクションで説明するように、Sync アプリケーションをホストする新しいWeb サイトを作成する準備ができました。

新しいWeb サイトの作成

Note:この例では、デフォルトWeb サイトを使用します。

Web サイトでSync をホストするには:

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

  2. サイト接続ペイン内)を右クリックし、Web サイトの追加を選択します。

  3. Web サイトの追加ダイアログが表示されたら、次の情報を入力します。

    • サイト名 - Web サイトの名前(例えば、”My Sync Website”)。

    • 物理パス - 先ほど作成したフォルダの物理パス

    • 種類 - プロトコルの種類(デフォルト値http のままにしておきます)。

    • ポート - Web サイトをバインドするポート番号。デフォルトポート(80)で問題ありませんが、別のポートを選択することもできます。

  4. OK をクリックして新しいWeb サイトを起動します。

  5. ブラウザでhttp://127.0.0.1:YourPortNumber に移動し、Sync にアクセスします。

    Note:HTTP パスでは”localhost” を使用できません。代わりにIP 値を使用する必要があります。

ディレクトリ権限の設定

アプリケーションが完全に機能するには、Sync アプリケーションディレクトリにフルアクセスできる必要があります。

アプリケーションディレクトリには次のフォルダが含まれます。

  • connections

  • data

  • db

  • downloads

  • locks

  • logs

  • profiles

アクセス許可を設定するには、Sync インストール用のアプリケーションディレクトリを探して以下の手順に従います。

  1. フォルダを右クリックして、プロパティをクリックします。セキュリティタブで編集 > 追加を選択します。

  2. 選択するオブジェクト名を入力してくださいボックスに、以下のテキストを入力します。以下の行の YourApplicationPool をお使いのアプリケーションプール名に置き換えます(例:IIS AppPool\\DefaultAppPool)。

    IIS AppPool\\[YourApplicationPool]

  3. アプリケーションプールId が、次の権限を持っていることを確認します。

    • 読み出し

    • 書き込み

    • 変更

    • 読み出しと実行

    • フォルダコンテンツをリスト

Note:アプリケーションプールへのアクセスの許可には、この例で示すようにコマンドラインを使うこともできます。

icacls "www" /grant "IIS APPPOOL\\DefaultAppPool":(OI)(M)

アプリケーションプロセスのアンローディングの防止

IIS は、アイドルタイムアウト超過の場合や、IIS がアプリケーションプールのリソース使用が高すぎると判断した場合など、いくつかの理由でWeb アプリケーションを閉じることができます。このアクションにより、アプリケーションで発生するバックグラウンドタスクを止めてしまうことがあります。次の設定を変更することで、アプリケーションを常時実行しておくことができます。

  1. オプションのApplication Initialization 機能を有効化します。

    Windows Server 2012 R2 およびWindows Server 2016 では、サーバーマネージャーを開いて、ダッシュボード > クイックスタート > 役割と機能の追加を選択し、役割と機能の追加ウィザードを開きます。サーバーの役割のステップで、Web サーバー(IIS)> アプリケーション開発 > Application Initialization を選択します。

    Windows 8 およびWindows 10 では、コントロールパネルを開いて、プログラムと機能 > Windows の機能の有効化または無効化を選択します。次に、インターネットインフォメーションサービス > World Wide Web サービス > アプリケーション開発機能 > Application Initialization を選択します。

  2. IIS マネージャーの接続パネルで、アプリケーション プール > YourApplicationPool > 詳細設定を選択します。続いて、これらを設定します。

    • 全般設定で、開始モードAlwaysRunning に設定。

    • プロセス モデル設定で、アイドル状態のタイムアウトプロパティを0 に設定。

      IIS 8 を使用する場合、全般設定の自動的に開始プロパティがTrue に設定されていることを確認してください。

    • CPU セクションでは、制限間隔プロパティを0 に設定。

    • リサイクルセクションで、定期的な期間 プロパティを0 に設定。

    • リサイクルセクションのリサイクル イベント ログ エントリの生成ノードで、定期的な期間False に設定。

ASP.NET アプリケーションプールのリサイクル設定

IIS は定期的にリサイクルし、ASP.NET アプリケーションプールのプロセスをクリーンアップします。リサイクルをオフピーク時にスケジュールできます。リサイクルセクションに移動して特定の時間True に設定します。次に、リサイクルを開始する時間をhh:mm:ss 形式で入力します。

アプリケーションのプリロード

IIS のプリロード機能は、ユーザーが接続する前にアプリケーションを実行することで、パフォーマンスを向上させることができます。この機能を有効にするには、接続ペインで、Sync に関連しているWeb アプリケーションを右クリックし、アプリケーションの管理 > 詳細設定を選択します。「有効化されたプリロード」メニューで、True を選択します。

「有効化されたプリロード」がTrue に設定されている場合、IIS はユーザーリクエストをWeb サイトのデフォルトページ、または仮想ディレクトリにシミュレートして、アプリケーションを初期化します。

設定の確認

アプリケーションを開いて設定を確認するには、http://127.0.0.1/YourPortNumber に移動します。

TLS/SSL 接続のホスト(IIS)

取引先との間でビジネスクリティカル・ミッションクリティカルな通信の機密を保持するためにSSL/TLS を使用できます。次の手順では、すでにお客様のサーバーにSSL/TLS を有効化させるための証明書を持っていることが前提となっています。

  1. IIS マネージャーの接続ペインでWeb サイトのノードをクリックします。

  2. アクションペインでバインディングをクリックします。

  3. 追加をクリックし、HTTPS を選択します。

  4. サーバー証明書を選択します。

TLS/SSL を要求したい場合には、Web サイトのノードが選択されている状態で、ワークスペースでSSL 設定アイコンをダブルクリックします。SSL が必要を選択して、アクションペインで適用をクリックします。

アプリケーションディレクトリの設定

Sync ApplicationDirectory フォルダには、アプリケーションで使用されるすべてのデータ(設定データ、アプリケーションデータ、ログデータ、証明書など)が格納されます。ApplicationDirectory のデフォルトの場所は、Sync が組み込みWeb サーバー経由でホストされているか、外部のJava サーブレットコンテナ経由でホストされているかによって異なります。

組み込みWeb サーバーの場合、 ApplicationDirectoryInstallationDirectory と同じです。デフォルトの場所は次のとおりです。

/opt/sync

Sync が外部のJava サーブレットコンテナにホストされている場合、 ApplicationDirectory はサーバーを実行しているユーザーのホームディレクトリからの相対パスです。

~/sync

このパスでは、’~’ はアプリケーションをホストするサーバーを実行しているユーザーのホームディレクトリに解決します。

ApplicationDirectory フォルダを構成でき、これはさまざまなシナリオで役立ちます。

  • Sync の複数インスタンスのクラスタリング

  • アプリケーションデータ用の共有ネットワークドライブの使用

  • 同じフォルダにアクセスする他のシステム内へのSync の組み込み

ApplicationDirectory を変更すると、アプリケーションのデータファイルが移動します。ただし、EXE ファイルやJAR ファイルなどの他のアプリケーションリソースは移動しません。これらのリソースは InstallationDirectory フォルダに格納されます。このフォルダは ApplicationDirectory と同じ場合がありますが、 ApplicationDirectory を変更しても、これらのリソースの場所は変わりません。

Sync を組み込みJetty サーバーで使用する場合、 ApplicationDirectoryInstallationDirectory にあるsync.properties ファイルに設定されます。このサーバー設定ファイル内で、`cdata.app.directory’ の設定に希望するディレクトリのパスを設定する必要があります。次の例は、マウントされたドライブ上の共有フォルダにデータディレクトリを設定した場合を示しています。

cdata.app.directory=/mnt/shared/sync

Sync がcdata.app.directory のパスを見つけることができ、そのパスで読み取りと書き込みができる適切なアクセス許可を持つ場合、指定したディレクトリ内にデータフォルダを作成します。

アプリケーションデータベースの設定

Sync のアプリケーションデータベースは、以下のようなアプリケーションデータの複数のテーブルを保存します。

  • ジョブ

  • タスク

  • 接続

  • 履歴(ジョブとタスク両方)

  • アプリケーションログ(アプリケーションレベルのエラーとイベント)

  • 監査ログ(ユーザーによるSync の設定変更)

デフォルトでSync は ApplicationDirectory に存在するDerby データベースをアプリケーションデータベースとして使用します。ただし、SQL Server、PostgreSQL、MySQL などのエンタープライズデータベースを使用するようにアプリケーションを設定できます。

組み込みJava サーバー

Sync を組み込みJetty サーバーで使用する場合、アプリケーションデータベースは InstallationDirectory にあるsync.properties ファイルに設定されます。このサーバー設定ファイル内で、cdata.app.db の設定に、希望するデータベースの適切な接続パラメータを含むJava Database Connectivity (JDBC) 接続文字列を設定する必要があります。次の例は、この設定をMySQL、PostgreSQL、およびSQL データベースについて示しています。

MySQL

cdata.app.db=jdbc:cdata:mysqlserver=localhost;port=3306;database=mysql;user=MyUserName;password=MyPassword

PostgreSQL

cdata.app.db=jdbc:cdata:postgresql:server=localhost;port=5432;database=postgresql;user=MyUserName;password=MyPassword

SQL Server

cdata.app.db=jdbc:cdata:sql:server=localhost;database=sqlserver;user=MyUserName;password=MyPassword

Sync がcdata.app.db 接続文字列で正常に接続を確立できる場合、そのデータベースをアプリケーションデータベースとして使用します。

ログインのロックアウト

Sync は、ブルートフォースアタックを防ぐために、不正なパスワードを何度も入力するユーザーを自動的にロックアウトします。デフォルトでは、5分以内に6回不正なパスワードを入力したユーザーは30分間ロックアウトされます。

Web サーバーの動作を規定するXML 設定ファイルを編集することで、ロックアウトの設定を変更できます。この3つの設定はロックアウトに関係します。

  • LockoutFailedAttempts - ロックアウトのトリガーとなる不正なパスワードの数。ロックアウトを無効にするには、LockoutFailedAttempts を0に設定します。

  • LockoutMinutes - ロックアウトする時間。デフォルトは30分です。

  • LockoutTimeCheckPeriod - 失敗した試行回数を0にリセットするまでの時間。デフォルトは5分です。

組み込みJetty サーバーの場合、sync.properties ファイル内のロックアウト設定を変更するには、以下のように、name:value ペアのカンマ区切りのリストをinitParameters に追加します。

cdata.initParameters=LockoutFailedAttempts:0

一般的な課題と解決方法

このセクションでは、Java 環境にSync をデプロイする際に遭遇する可能性がある一般的な課題をリストアップします。それぞれの課題について推奨ソリューションを記載します。その他のヘルプについては、CData テクニカルサポート:support@cdata.co.jp にお問い合わせください。

課題

Sync が起動しない、または期待されるものとは異なるAppDirectory を使用して起動する

このエラーは、Sync が ApplicationDirectory にアクセスするために必要な権限を持っていない可能性があります( ApplicationDirectory は、ジョブ、接続、変換などの設定に関する重要な情報を保存するフォルダです)。このエラーの原因として考えられるのは、サービスをセットアップする前にローカルユーザーとしてSync を実行している場合です。この場合、アプリケーションで作成される特定のリソースが、ローカルユーザーの下に作成されている可能性があります。結果として、Sync をサービスとして実行する場合にこれらのリソースを利用できません。

推奨ソリューション

Linux オペレーティング環境で、サービスアカウント(またはSync を実行させるための他のアカウント)が ApplicationDirectory にアクセスできることを確認する最も簡単な方法は、chown コマンドを使用することです。例えば、 ApplicationDirectory がLinux のデフォルトの場所にあってSync がサービスアカウントで実行されるべき場合、以下のコマンドでエラーが解決されるはずです。

sudo chown -R cdatasync:cdatasync /opt/sync