サーバーの設定

Version 25.3.9414


サーバーの設定


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

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.sh

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

systemctl enable cdatasync
systemctl start cdatasync

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

サービスを作成せずに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"

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

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:mysql:server=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 テクニカルサポート:[email protected] にお問い合わせください。

課題

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

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

推奨ソリューション

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

sudo chown -R cdatasync:cdatasync /opt/sync