のデプロイ方法に関わらず、
AppDirectory 内のファイルおよびフォルダは、アプリケーションを実行するユーザーによって読み取り / 書き込み可能である必要があります。Java 版のセットアップに同梱されるサービスインストーラーは、cdatarc を実行しているユーザーとして使用します。アプリケーションが別のユーザーで以前実行されていて、cdatarc ユーザーがアプリケーションを実行するために必要な権限を復元したい場合は、以下のようなコマンドを使用してください:sudo chown -R cdatarc:cdatarc /opt/arcWindows
Windows の場合、 はサービスとしてデフォルトでインストールされます。アプリケーションにアクセスするには、まず、サービスが起動していることを確認する必要があります。サービスが起動したら、Web ブラウザを開いてURL にhttp://localhost:8080/ を入力すると、 管理コンソールにアクセスできます。 また、サービスを使用せずにjava コマンドを介してアプリケーションを実行することもできます。 はサービスの利用を推奨していますが、特定の構成ではこちらの方法が有効です。
サービスの起動と停止
サービスの開始と停止は、次のいずれかの方法で行います:- スタートメニューのショートカット(推奨)
- サービス管理コンソール
- コマンドプロンプトコマンド
スタートメニューのショートカット
インストーラーは、アプリケーションを簡単に使用できるスタートメニューのショートカットを作成します。これらのショートカットにアクセスするには、スタートメニューを開いて フォルダを展開します。以下のショートカットが利用可能です:- 管理コンソールを起動:デフォルトのWeb ブラウザでWeb ブラウザウィンドウを開き、管理コンソールURL http://localhost:8080/ にアクセスします。サービスが起動していない場合、Web ブラウザはエラーを返します。
- を起動: サービスを開始します。デフォルトでは、このサービスはWindows 起動時に実行されるため、アプリケーションを実行するたびにこのコマンドを実行する必要はありません。
- を停止: サービスを停止します。このアクションは、 のアップグレード時に必要です。
サービス管理コンソール
サービス管理コンソールを開くには、スタートメニューを開きサービスと入力します。表示されたサービスアプリケーションを選択します。 というサービスが表示されるまでスクロールダウンします。サービスが起動している場合は、状態カラムに実行中と表示されます。サービスを右クリックすると、サービスを開始、停止、再開するオプションにアクセスできます。コマンドプロンプト
高度なユーザーは、Windows のコマンドプロンプトを使用して、サービスに対して手動でコマンドを発行することができます。コマンドプロンプトを開き、ディレクトリをインストールフォルダに変更します(デフォルトはC:\Program Files\CData\CData Arc です)。
Microsoft PowerShell ウィンドウを使用してこれらのコマンドを発行することもできますが、構文が若干異なります。PowerShell を使用する際は、コマンドを適宜修正してください。
サービスを使わずに起動
サービスを開始せずに を実行するには、インストールフォルダでコマンドプロンプトを開きます。アプリケーションを開始するには、次のコマンドを実行します:Linux
を任意の場所にインストールしたら、 をサービスとして実行するか、アプリケーションを手動で実行することができます。 は、重要なアプリケーションに を使用する場合は、サービスの使用をお勧めします。をサービスとして実行
をサービスとして実行すると、アプリケーションをユーザープロセスから独立して実行し、再起動時に自動的に再起動することができます。これは、重要なアプリケーションに推奨される方法です。 では、Linux 上で アプリケーションを管理するデーモンの作成を推奨しています。インストールパッケージに含まれるスクリプトで、これを自動的に行うことができます。必要に応じて、手動でデーモンを作成することも可能です。 システムが systemd デーモンマネージャーを使用している場合に、 デーモンを設定する最も安全な方法は、インストールパッケージに含まれているスクリプトを実行することです:arc.service という名前のデーモンを作成します。その後、systemctl を使用してデーモンを管理できます:
スタンドアロンアプリケーションの実行
サービスを作成せずに を開始するには、ターミナルでインストールディレクトリのarc.jar ファイルを開き、次のように設定ファイルを引数として指定します:組み込みJetty サーバーの構成
は、あらゆる環境ですぐに動作するようあらかじめ設定されています。ただし、 インストールディレクトリにarc.properties ファイルを生成することで、 で公開されているデータへのアクセス方法をカスタマイズできます(Windows の場合、インストールディレクトリのデフォルトはC:\Program Files\CData\CData Arc です)。
すべてのarc.properties 設定オプションについて詳しくは、arc.properties Configuration を参照してください。
arc.properties ファイルの生成
組み込みJetty サーバーをカスタマイズする前に、arc.properties ファイルを作成する必要があります。arc.jar があるインストールディレクトリで以下のコマンドを実行します:
arc.properties ファイルが作成されます。このファイルには、ポートを変更したりTLS/SSL を有効化したりするために変更できるパラメータが含まれています。
一度このファイルを生成すると、 へのアップグレードでは上書きされません。
ポートの変更
組み込みサーバーがリッスンするポートを変更するには:-
InstallationDirectoryにあるarc.propertiesファイルを見つけ、テキストエディタで開きます。 -
ポートが設定されている次の行を探します:
cdata.http.port=8080 - この値を、希望するポート番号に変更します。
TLS/SSL の有効化
TLS/SSL 接続(HTTPS)を有効化する場合にも、以下のように、InstallationDirectory のarc.properties ファイルを修正します:
-
cdata.tls.keyStoreType設定を、使用するキーストアのタイプに設定します。有効な値には、jks、pkcs12、およびjceks が含まれます。 -
cdata.tls.keyStorePath設定を、使用するキーストアのパスに設定します。${cdata.home}は、InstallationDirectoryを参照するために使用される場合があることに注意してください。 -
cdata.tls.keyStorePassword設定を、キーストアのパスワードに設定します。 -
cdata.tls.port設定を、サーバーをホストするために使用するポートに設定します。 -
(オプション)
cdata.http.port設定を、プレーンテキスト接続を無効にするために空の文字列に設定します。
で設定するために外部秘密鍵を取得する場合は、必ず証明書の所有者を(cdatarc:cdatarc)をホストするために使用されるサービスアカウントに変更してください。
を別の.properties ファイルに指定する
-config パラメータを使用して、 をデフォルトのarc.properties ファイル以外の設定ファイルに指定します。例えば、次のコマンドを実行すると、 はtest.properties ファイルを検索します:
Jetty XML ファイルの生成
ほとんどのデプロイメントで、arc.properties ファイルは、組み込みJetty サーバーに必要なすべての設定オプションを提供します。ただし、より複雑なデプロイメントが必要な場合は、Jetty XML ファイルを生成し、そこからさらに修正を加えることができます。このファイルを生成するには、arc.jar がある インストールディレクトリで以下のコマンドを実行します:
webapp フォルダにarc.xml 設定ファイルが表示されます。そのフォルダに保存されている限り、アプリケーションの起動に使用されます。
サーバーの起動と停止
service.sh スクリプトを使用して サービスをセットアップする場合は、サービスとして実行を参照してください。それ以外の場合は、インプロセスで実行セクションが該当します。
インプロセスで実行
セットアップ中にアプリケーションダウンロードから抽出されるarc.jar ファイルを実行して、組み込みJetty サーバーを起動します。このファイルを実行してサーバーを起動するには、以下に示すような標準のJava 構文を使用できます:-stop パラメータを渡します:
サービスとして実行
サービス名としてarc を参照して、標準のシステムサービスコマンドを使用して サービスを操作できます。 サービスを起動するには、次のコマンドを送信します:LDAP 認証の設定
次の手順では、組み込みJetty Web サーバーを使用する場合に、LDAP を使用してユーザーを認証するように を設定します。arc.properties の設定
まだ存在しない場合は、次のコマンドを使用してデフォルトのarc.properties ファイルを生成します:java -jar arc.jar -GenerateProperties
次の必須設定は、組み込みJetty サーバーにLDAP を認証に使用するよう指示します:
cdata.loginService.ldap.enabled=true
他のセクションと同じように、ファイル内でこれをセクション分けすることもできます:
arc.properties の完全なLDAP セクションの例です:
でLDAP ユーザーを作成する
ユーザーがLDAP サーバー経由で にログインできるようにするには、各LDAP ユーザーを に追加する必要があります。これにより、 は設定済みのLDAP サーバーでログインしようとしているユーザーを相互参照できるようになります。各ユーザーを作成するには、以下の手順に従います(ユーザー管理の詳細については、ユーザー管理とロールを参照してください):- を起動し、 管理者ユーザーとしてログインします。
- へのアクセスが必要なすべてのLDAP ユーザーを作成します。ナビゲーションバーの歯車アイコンをクリックして、ユーザーを選択します。 ユーザーはLDAP ユーザーと同一でなければなりません。例えば、LDAP ユーザーが
user01やuser02である場合、 でも同じユーザー名を使用する必要があります。
設定をテストする
必要なLDAP 設定を記載したarc.properties ファイルを作成し、LDAP ユーザーを に追加し、LDAP サーバーの要件に基づいて構成が正しいことを確認したら、機能をテストすることができます。
java -jar arc.jar を使用して を起動するか、 サービスを起動します。ログイン画面が表示されたら、LDAP ユーザーの1つを使ってログインを試みます。LDAP サーバーにあるユーザー名とパスワードを入力します(これは のユーザーセクションに入力したものと同じである必要があります)。
ログインプロセスでは、ログインしたユーザーを で設定されたユーザーと照合し、次にLDAP サーバーと照合して、ユーザーが存在し、アプリケーションへのアクセスが許可されていることを確認します。設定が成功した場合、そのユーザーとしてアプリケーションにログインします。
LDAP 設定のトラブルシューティング
LDAP サーバーへの認証に問題がある場合、 はApache Directory Studio でLDAP 接続とフィルターをテストすることを推奨します。同じ接続設定と検索フィルターをarc.properties またはlogin.config ファイルに適用できます。
認証失敗のデバッグログの作成
arc.properties ファイルで次の設定を使用してデバッグを有効化できます:cdata.loginService.ldap.debug。
追加のログ情報をコンソール出力とWeb サーバーログに送ることもできます。アプリケーションインストールディレクトリ内のarc.properties ファイルおよびwebapps フォルダと同じ場所に、arc.logging.properties という名前のファイルを作成し、以下の内容を記述します:
Tomcat での設定
WAR ファイルの配布
Tomcat にWAR ファイルを配布するには2つのオプションがあります。webappsフォルダにWAR ファイルをコピーする。- Tomcat の管理コンソール内でWAR ファイルの配布を行う。Apache Tomcat のドキュメントには、この方法のさらに詳しい説明があります。お使いのTomcat のバージョンのドキュメントを参照してください。
web.xml ファイルを変更して、より大きなファイルを許可することができます。Tomcat の設定に応じて、このファイルは/usr/share/tomcat7-admin/manager/WEB-INF、または類似ディレクトリにある場合があります。このファイルでは、許容される最大ファイルサイズ(バイト単位)を変更できます。例えば、200MB のWAR ファイルのデプロイメントを許容するには、次の値を変更して許容される最大ファイルサイズを変更します:
Java 認証・承認サービス(JAAS)の設定
がアプリケーション内で動的にユーザーを管理できるようにするには、次のガイドで説明するようにJAAS を設定する必要があります。このガイドでは、Tomcat の構成を制御し、コンテキストのオーバーライドを定義するためにarc.xml を使用します。 は、Tomcat の構成を制御するためにserver.xml の代わりにarc.xml を使用することを推奨しています。また、APP_DIRECTORY やAPP_DB などのアプリケーションコンテキストをオーバーライドするものは、JAASRealm モジュールが定義されているarc.xml に移動することを推奨します。
これは でTomcat を設定する際に必要な最初のステップです。
ログインモジュールの作成
$CATALINA_BASE/conf/ フォルダに、jaas.config という名前のJAAS コンフィギュレーションファイルを作成します。
標準認証を使用するには、jaas.config に次の内容を含めます:
LDAP を使用する場合は、標準ログインモジュールのセットアップを続行します。完了したら、LDAP を使用してユーザーを認証するの手順に従います。
JAASRealm モジュールの作成(または変更)
-
$CATALINA_BASE/conf/Catalina/localhost/にarc.xmlファイルがあるかどうかを確認します。ある場合は、arc.xmlを編集して以下のXML コンテンツブロックを追加します。パスにarc.xmlが存在しない場合は、作成し、以下のXML コンテンツブロックを追加する必要があります。arc.xmlには、この内容のみを含めるようにしてください。Tomcat インスタンスの構成によっては、このパスが若干異なる場合があります。この例では、Catalinaはエンジン名、localhostはserver.xmlで定義されたホスト名を示します。 -
Tomcat サーバーのコンフィギュレーションファイル
server.xmlの<Host/>要素を、以下のようにcopyXML属性をtrue に設定して更新します:アプリケーション固有のコンテキストがserver.xmlに存在する場合は、arc.xmlよりも優先されます。 は、コンテキストのオーバーライドにはserver.xmlよりもarc.xmlを使用することを推奨しています。次に例を示します:
ログインモジュールの表示
コンフィギュレーションを表示するには、Java 仮想マシン(JVM)がログインモジュール(jaas.config)に誘導される必要があります。$CATALINA_BASE/conf/catalina.properties ファイルに次の行を追加して、JVM のjava.security.auth.login.config システムプロパティをjaas.config ファイルのパスに設定します:
LDAP を使用してユーザーを認証する
Tomcat でLDAP を使用するように を構成する前に、Java 認証・承認サービス(JAAS)の設定の手順に従って、管理者ユーザーを作成できるようにします。管理者ユーザーは、LDAP ユーザーを に追加する前に必要です。ログインモジュールを設定し、管理者ユーザーとして に正常にログインできるようになったら、次の手順に従ってLDAP サポートを設定します。-
管理者ユーザーとして にログインします。 へのアクセスが必要なすべてのLDAP ユーザーを作成するには、ナビゲーションバーにある設定歯車アイコンをクリックし、ユーザーを選択します。 ユーザーはLDAP ユーザーと同一でなければなりません。例えば、LDAP ユーザーが
user01やuser02である場合、 でも同じユーザー名を使用する必要があります。 -
ログインモジュールの作成で作成した
$CATALINA_BASE/conf/jaas.configファイルを、LDAP サーバーで動作するように編集します。jaas.configにいくつかの設定オプションを追加する必要があります。 a.com.sun.security.auth.module.LdapLoginModule REQUIREDを追加して、LDAP ログインモジュールが必須であることを確認します。また、以前に作成したログインモジュールをオプションにする必要もあります。これを行うには、arc.LoginModule optional;を設定します。 b. 必要なLDAP モジュールの設定オプションを追加します。少なくとも、次のオプションが必要です:userProvider、authIdentity、userFilter、およびuseSSL。これらのオプションに指定する値は、LDAP サーバーおよび要件に固有のものです。サーバー管理者および / またはLDAP のマニュアルを参照のうえ、値を決定してください。以下は、その設定例です。arc.loginModuleがoptionalに、com.sun.security.auth.module.LdapLoginModuleがREQUIREDに設定されていることに注意してください。値に特別なトークン{USERNAME}が含まれている場合、そのトークンはログイン時に指定されたユーザー名の値に置き換えられます。
データディレクトリ権限の設定
Java サーブレットコンテナを実行するプロセスのユーザーに、以下のように、適切な場所にあるデータディレクトリへの読み / 書きのアクセス権限を許可します:- Windows:
C:\ProgramData\CData\Arc\ - Linux:
~/cdata/arc
WebSphere Liberty での設定
WebSphere Liberty で を設定するには、次の手順に従います。WebSphere Liberty で アプリケーションを作成
このガイドでは、Liberty での の基本的なインストールについて説明します。よりカスタマイズされたLiberty インストールが必要な場合は、社内で追加の設定やオプションが必要かどうかを確認してください。
- Open Liberty またはWebSphere Application Server Liberty 24.0.0.12 からLiberty をダウンロードします。 はWeb Profile 8 パッケージを想定しています。
-
このコマンドを実行して
arcという名前のサーバーを作成します:- Windows:
.\bin\server.bat create arc - Linux:
./bin/server create arc
- Windows:
-
arc.war ファイルを
./usr/servers/arc/appsディレクトリにコピーします。 -
必要に応じて、
./usr/servers/arc/server.xmlのhttpEndpoint要素でHTTP およびHTTPS ポートを変更します(sample server.xml ファイルは以下にあります)。 - server.xml ファイルを編集して、追加の構成アプリケーションの更新を行います。
-
このコマンドを実行してサーバーを起動します:
- Windows:
.\bin\server.bat start arc - Linux:
./bin/server start arc
- Windows:
Sample server.xml File
以下は、 がLiberty で実行するために必要な設定を含むサンプルのserver.xml ファイルです。JAAS 設定に必要な設定も含まれています。以下のセクションでは、このファイルの一部について詳しく説明します。Java 認証・承認サービス(JAAS)の設定
server.xml の以下の設定はJAAS を設定し、 がLiberty アプリケーションサーバーで動的にユーザーを管理できるようにします。上記のserver.xml サンプルファイルをコピーした場合、これらの要素はすでに存在します。それ以外の場合は、次の手順に従います:-
server.xml に次の要素を追加して、JAAS 認証用に ログインモジュールを設定します:
-
server.xml の
webApplication要素でユーザーグループとロールマッピングを設定します。application-bndセクションは のセキュリティロールをユーザーグループにマッピングし、アプリケーション内で各ユーザーが持つ権限を制御します。各security-role要素は の権限レベルの1つを定義し、対応するユーザーグループに関連付けます。cdata_admin、cdata_standard、cdata_support、およびcdata_user のsecurity-role要素が存在することを確認してください。 -
webContainer要素にAllowQueryParamWithNoEqualプロパティを追加して、等号(=)なしのクエリパラメータを有効にします。この設定により、 は等号を含まない特定のURL クエリパラメータを適切に処理できるようになります。 - Liberty を再起動します。
LDAP を使用したユーザー認証
Liberty でLDAP を使用するように を設定する前に、Java 認証・承認サービス(JAAS)の設定の手順に従って、ローカル管理者ユーザーを作成してください。LDAP ユーザーを に追加するには、管理者ユーザーが必要です。ログインモジュールを設定し、管理者ユーザーとして に正常にログインできるようになったら、次の手順に従ってLDAP サポートを設定します。-
server.xml を編集して、LDAP リポジトリをLiberty に追加します。
-
featureManager要素に、新しいフィーチャーldapRegistry-3.0を追加します。 -
webContainer要素の後にLDAP レジストリの詳細を追加します。 -
arc.LoginModuleのコントロールフラグをOPTIONALに変更します。
-
-
ローカル管理者ユーザーとして にログインします。 でLDAP ユーザーを作成するには、ナビゲーションバーの設定歯車アイコンをクリックして、ユーザーを選択します。 ユーザーはLDAP サーバーのユーザーと同一でなければなりません。例えば、LDAP ユーザーが
user01やuser02である場合、 でも同じユーザー名を使用する必要があります。 - 変更を保存し、Liberty を再起動してプロセスを完了します。正常に構成されると、 にサインインするユーザーはLDAP 経由で認証されます。
デバッグ設定
sample server.xml ファイルには、セキュリティ、認証、Web コンテナ操作、および 固有のコンポーネントの詳細なトレース情報をキャプチャする包括的なログ設定が含まれています。これは、LDAP やその他の設定で構成上の問題が発生している場合に役立ちます。traceSpecification 属性は、セキュリティバインディング、承認、JAAS 認証、Web コンテナ操作、およびすべての とRSSBus モジュールを含むいくつかの主要なコンポーネントグループに対してall に設定されています。この構成は、認証の問題、承認の問題、およびアプリケーション固有のエラーのトラブルシューティングに役立つ詳細な診断情報を提供します。ログは${server.config.dir}/logs ディレクトリに、メッセージ(messages.log)とトレースデータ(trace.log)の別々のファイルとして書き込まれます。
本番環境では、パフォーマンスを向上させ、ログファイルの増大を最小限に抑えるために、ログの冗長性を減らすことを検討するとよいでしょう。これを行うには、特定のトレース仕様をall からinfo に変更するか、監視する必要のないコンポーネントを削除します。例えば、セキュリティの問題をトラブルシューティングしていない場合は、構成をtraceSpecification="arc.*=all:rssbus.*=all" に簡略化して、 固有のログのみに焦点を当てることができます。逆に、トラブルシューティング中にさらに詳細な診断が必要な場合は、一時的にtraceSpecification="*=all" に設定して、すべてのLiberty コンポーネントにわたる包括的なログを有効にできます。これは大きなログファイルをすぐに生成するため、短期間のデバッグにのみ使用すべきであることに注意してください。
データディレクトリ権限の設定
Java サーブレットコンテナを実行するプロセスのユーザーに、データディレクトリへの読み書きのアクセス権限を許可します:- Windows:
C:\ProgramData\CData\Arc\ - Linux:
~/cdata/arc
Jetty での設定
にはJetty Web サーバーが組み込まれていますが、アプリケーションを外部のJetty 設定で使用することもできます。WAR ファイルとarc.xml の配布
arc.war を${JETTY_BASE} のwebapps フォルダにコピーします。また、arc.xml ファイルも同じ${JETTY_BASE} フォルダに配置します。arc.xml がない場合は、作成する必要があります。少なくとも、Jetty の標準構成では、arc.xml ファイルに次の内容が含まれている必要があります:
Java 認証・承認サービス(JAAS)の設定
JAAS を設定して がアプリケーションのユーザーを管理できるようにするには、次のセクションで説明する手順を実行する必要があります。JAAS モジュールの追加
JAAS モジュールをインストールするには、次のコマンドを送信します:ログインモジュールの作成
login.config というログイン設定ファイルを作成し、次のパスに配置します:{JETTY_BASE}/etc/login.conf。login.config ファイルに以下の内容を記述します:
セキュリティハンドラの更新
セキュリティハンドラの設定は、arc.xml 設定ファイルにあります。WAR ファイルとarc.xml の配布の内容を使用してarc.xml ファイルを作成した場合は、この変更がすでにその内容に含まれているため、この手順をスキップできます。そうでない場合は、securityHandler ブロックを以下のように変更します:
Jetty でのLDAP
Jetty で を実行する際にLDAP を設定するには、標準の ログインモジュールを使用してJetty で実行されるように を設定する必要があります。 がJetty で ログインモジュールを使用して起動したら、次の手順に従ってJetty がユーザー認証にLDAP を使用するように構成します。-
LDAP ユーザーを に追加します。
- にLDAP ユーザーを追加するには、管理者ユーザーとしてログインします。 でLDAP ユーザーを作成するには、ナビゲーションバーの設定歯車アイコンをクリックして、ユーザーを選択します。 ユーザーはLDAP サーバーのユーザーと同一でなければなりません。例えば、LDAP ユーザーが
user01やuser02である場合、 でも同じユーザー名を使用する必要があります。 - 完了したら を停止します。
- にLDAP ユーザーを追加するには、管理者ユーザーとしてログインします。 でLDAP ユーザーを作成するには、ナビゲーションバーの設定歯車アイコンをクリックして、ユーザーを選択します。 ユーザーはLDAP サーバーのユーザーと同一でなければなりません。例えば、LDAP ユーザーが
-
login.conf で、Jetty LDAP ログインモジュールのJAAS 構成を作成します。
-
${JETTY_BASE}/etc/login.confにあるlogin.conf ファイルを開き、Jetty LDAP モジュール用のJAAS 設定を追加します。さまざまな構成設定が利用可能ですが、JAAS の構成は特定の要件とLDAP サーバーの構成によって異なります。利用可能なJAAS 構成のリストについては、Jetty ドキュメントおよび以下を参照してください: -
以下は、LDAP サーバーで構成されたlogin.conf ファイルの例です。必要な設定と値は、特定の要件とLDAP サーバーの構成によって異なることに注意してください。セットアップに必要な設定と値を決定するには、LDAP 管理者に問い合わせるか、LDAP サーバーのドキュメントを参照してください。
arc.LoginModuleとorg.eclipse.jetty.jaas.spi.LdapLoginModuleは両方ともオプションに設定されていることに注意してください。これにより、ユーザー認証を行う際に両方のログインモジュールを使用できるようになります。1つのログインモジュールがユーザーの認証に失敗した場合、ログインは2つ目のモジュールにフォールバックします。両方のログインモジュールがユーザー認証に失敗した場合は、ログインは完全に失敗します。 - login.conf が必要なLDAP 設定で更新されたら、 を再起動します。正しく設定されていれば、LDAP ユーザーは にログインできるようになります。
-
データディレクトリ権限の設定
Java サーブレットコンテナを実行するプロセスのユーザーに、データディレクトリへの読み / 書きのアクセス権限を許可します:- Windows:
C:\ProgramData\CData\Arc\ - Linux:
~/cdata/arc
ユーザー管理
初めて起動する際、 はユーザー名とパスワードの資格情報を持つユーザーの作成を要求します。最初のユーザーを作成後、アプリケーションの設定ページのユーザータブで、ユーザーの追加、削除、および管理を行うことができます。 を外部のJava サーブレットにデプロイする場合(つまり、アプリケーション付属の組み込みサーバーを使用しない場合)、 によるユーザーの管理を可能にするためJAAS の設定が必要です。前のセクションで、特定の外部サーブレットごとにJAAS を設定するプロセスを詳しく説明しています。アプリケーションディレクトリの検索と設定
のApplicationDirectory フォルダには、アプリケーションで使用されるすべてのデータ(設定データ、アプリケーションデータ、ログデータ、証明書など)が格納されます。ApplicationDirectory のデフォルトの場所は、 が組み込みWeb サーバー経由でホストされているか、外部のJava サーブレットコンテナ経由でホストされているかによって異なります。
組み込みWeb サーバーの場合、 ApplicationDirectory は InstallationDirectory と同じです。デフォルトの場所は次のとおりです:
ApplicationDirectory はサーバーを実行しているユーザーのホームディレクトリからの相対パスです:
~/arc
このパスでは、’~’ はアプリケーションをホストするサーバーを実行しているユーザーのホームディレクトリに解決します。
ApplicationDirectory フォルダを構成でき、これはさまざまなシナリオで役立ちます:
- の複数インスタンスのクラスタリング
- アプリケーションデータ用の共有ネットワークドライブの使用
- 同じフォルダにアクセスする他のシステム内への の組み込み
ApplicationDirectory を変更すると、アプリケーションのデータファイルが移動します。ただし、EXE ファイルやJAR ファイルなどの他のアプリケーションリソースは移動しません。これらのリソースは InstallationDirectory フォルダに格納されます。このフォルダは ApplicationDirectory と同じ場合がありますが、 ApplicationDirectory を変更しても、これらのリソースの場所は変わりません。
組み込みJava サーバー
クロスプラットフォーム版を組み込みJetty サーバーで使用する場合、デフォルトでApplicationDirectory は InstallationDirectory となります。これを変更するには、arc.properties ファイルを生成します。テキストエディタでファイルを開き、cdata.app.directory 設定を、目的のディレクトリのパスに設定します。次の例は、マウントされたドライブ上の共有フォルダにデータディレクトリを設定した場合を示しています:
cdata.app.directory のパスを見つけることができ、そのパスで読み取りと書き込みができる適切なアクセス許可を持つ場合、指定したディレクトリにデータフォルダを作成します。
外部Java サーバー
クロスプラットフォーム版を外部のJava サーブレット(アプリケーションに含まれるJetty サーバー以外のサーバー)で使用する場合、アプリケーションのデータディレクトリの設定の詳細は使用する特定のサーブレットに依存します。特定のサーブレットに適した構文を使用するAppDirectory 環境変数を必要なディレクトリのパスに設定する必要があります。
がAppDirectory のパスを見つけることができ、そのパスで読み取りと書き込みができる適切なアクセス許可を持つ場合、指定したディレクトリにデータフォルダを作成します。
アプリケーションデータベースの設定
のアプリケーションデータベースは、以下のようなアプリケーションデータの複数のテーブルを保存します:- トランザクションログ:アプリケーションによって処理される各トランザクションのメタデータ
- アプリケーションログ:アプリケーションレベルのエラーとイベント
- アクセスログ:アプリケーションのWeb エンドポイントへのリクエスト
- 監査ログ:ユーザーによる の設定変更
ApplicationDirectory に存在するH2 データベースをアプリケーションデータベースとして使用します。このデータベースは最大100,000 トランザクションまでを推奨します。その件数に達したら、 は外部データベースへの移行を推奨します。SQL Server、PostgreSQL、MySQL などのエンタープライズデータベースを使用するようにアプリケーションを設定できます。
セキュリティ上の理由から、アプリケーションデータベースを切り替える場合は、必ずintegrityResetTampering オペレーションを実行してハッシュチェーンをリセットする必要があります。
組み込みJava サーバー
クロスプラットフォーム版を組み込みJetty サーバーで使用する場合、デフォルトのアプリケーションデータベースはApplicationDirectory にあるH2 データベースです。これを変更するには、arc.properties ファイルを生成します。テキストエディタでファイルを開き、cdata.app.db の設定に、必要なデータベースの適切な接続パラメータを含むJava Database Connectivity (JDBC) 接続文字列を設定します。次の例は、この設定をMySQL、PostgreSQL、およびSQL Server について示しています:
MySQL
PostgreSQL
SQL Server
cdata.app.db 接続文字列で正常に接続を確立できる場合、そのデータベースをアプリケーションデータベースとして使用します。
アプリケーションデータベースとしてSQL Server を使用する際のデッドロックの可能性を減らすため、 ではREAD_COMMITTED_SNAPSHOT が有効化されていることの確認を推奨しています。
暗号化されたデータベース接続文字列の生成
は、アプリケーションのデータベース接続用に暗号化された接続文字列を生成する機能を提供します。この暗号化された接続文字列を使用することで、 設定ファイルにログイン認証情報をプレーンテキストで保存することなく、アプリケーションデータベースを指定することができます。暗号化された接続文字列を生成するには、arc.jar があるインストールディレクトリで、接続情報を引用符で囲んだ例の文字列に置き換えて、以下のコマンドを実行します:cdata.app.db のプレーンテキスト値の代わりに使用することができます。
外部Java サーバー
クロスプラットフォーム版を外部のJava サーブレット(アプリケーションに含まれるJetty サーバー以外のサーバー)で使用する場合、アプリケーションのデータベースの設定の詳細は使用する特定のサーブレットに依存します。特定のサーブレットに適した構文を使用する、サーバーを設定する際のアプローチを次のいずれかから選択します:- ターゲットデータベースの接続プロパティを含むJNDI データソースを定義。
APP_DB環境変数をJDBC 接続文字列に設定。
APP_DB 接続文字列を使用してデータベースに接続できる場合、そのデータベースをアプリケーションデータベースとして使用します。
デフォルト文字セットの指定(MySQL のみ)
MySQL 8.0 以降などのMySQL バージョンでは、データベースおよびそのテーブルのデフォルト文字セット(charset)はUTF8(具体的にはutf8mb4)です。ただし、8.0 より前のバージョンのMySQL では、デフォルトのcharset は通常Latin1 であり、基本ラテン文字以外の文字を含むデータで問題が発生する可能性があります。
古いバージョンのMySQL を使用している場合は、代わりにutf8mb4 を使用するようにデータベースを設定することで、これらの問題を回避できます。この変更を行うには2つの方法があります。既存のデータベースを直接更新するか、MySQL のエクスポートおよびインポートツールを使用してデータを新しいUTF8 エンコードのデータベースに移行します。
データベースを直接更新する
-
データベースをバックアップします:
mysqldump -u root -p --default-character-set=latin1 --databases [database name] > backup.sql -
デフォルトのcharset をUTF8 に変更します:
ALTER DATABASE [database name] CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -
すべてのデータベーステーブルのデフォルトのcharset をUTF8 に変更するSQL ステートメントを生成します:
- 前のステップで生成されたSQL ステートメントを実行します。
-
データ定義言語(DDL)とデータをエクスポートします:
-
schemas.sql のデフォルトcharset を
CHARSET=latin1からCHARSET=utf8mb4に変更します。 -
UTF8 をデフォルトのcharset とする新しいデータベースを作成します:
CREATE DATABASE [new database name] CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -
新しいデータベースにインポートします:
ログインのロックアウト
は、ブルートフォースアタックを防ぐために、不正なパスワードを何度も入力するユーザーを自動的にロックアウトします。デフォルトでは、5分以内に6回不正なパスワードを入力したユーザーは30分間ロックアウトされます。 Web サーバーの動作を規定するXML 設定ファイルを編集することで、ロックアウトの設定を変更できます。この3つの設定はロックアウトに関係します:- LockoutFailedAttempts:ロックアウトのトリガーとなる不正なパスワードの数。ロックアウトを無効にするには、LockoutFailedAttempts を0に設定します。
- LockoutMinutes:ロックアウトする時間。デフォルトは30分です。
- LockoutTimeCheckPeriod:失敗した試行回数を0にリセットするまでの時間。デフォルトは5分です。
組み込みJetty サーバー
ロックアウト設定を変更するには、arc.properties ファイルを生成し、以下のようにname:value ペアのカンマ区切りのリストをinitParameters に追加します:
Tomcat
Tomcat のarc.xml ファイルのロックアウト設定を編集するための構文は以下のとおりです:一般的な課題と解決方法
このセクションでは、Java 環境に をデプロイする際に遭遇する可能性がある一般的な課題をリストアップします。それぞれの課題について推奨ソリューションを記載します。その他のヘルプについては、 テクニカルサポート:support@cdata.co.jp にお問い合わせください。課題
が起動しない、または期待されるものとは異なるAppDirectory を使用して起動する
このエラーは、 がApplicationDirectory にアクセスするために必要な権限を持っていない可能性があります( ApplicationDirectory は、ジョブ、接続、変換などの設定に関する重要な情報を保存するフォルダです)。このエラーの原因として考えられるのは、サービスをセットアップする前にローカルユーザーとして を実行している場合です。この場合、アプリケーションで作成される特定のリソースが、ローカルユーザーの下に作成されている可能性があります。結果として、 をサービスとして実行する場合にこれらのリソースを利用できません。
推奨ソリューション
Linux オペレーティング環境で、サービスアカウント(または を実行させるための他のアカウント)がApplicationDirectory にアクセスできることを確認する最も簡単な方法は、chown コマンドを使用することです。例えば、 ApplicationDirectory がLinux のデフォルトの場所にあって がサービスアカウントで実行されるべき場合、以下のコマンドでエラーが解決されるはずです: