> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# arc.properties の設定

> 組み込みJetty Web サーバー向けのCData Arc arc.properties ファイルでサポートされているすべての設定オプションのリファレンスガイド。

export const siteNameShort = "Arc";

export const siteName = "CData Arc";

このリファレンスガイドでは、{siteName} の`arc.properties` ファイルでサポートされているすべての設定オプションについて説明します。このファイルは[組み込みJetty Web サーバー](./cross-platform-edition#組み込みjetty-サーバーの構成)で使用されます。

{siteNameShort} アプリケーションにこれらのオプションを追加するには、テキストエディタで（インストールディレクトリにある）`arc.properties` ファイルを開き、適切な構文を追加してください。各オプションの例は以下にあります。

<Tip>以下のオプションは、実装内に存在する任意の{siteNameShort} `.properties` ファイルで利用できます。</Tip>

## 変数の使用

設定オプションで変数を指定できますが、次の点に留意する必要があります：

* プロパティの *値* には変数を使用できますが、プロパティの *名前* には使用できません。
* 変数名は大文字と小文字を区別します。
* システムプロパティは環境変数より優先されます。システムプロパティと環境変数のいずれにも変数が見つからない場合、デフォルトで空の文字列になります。
* 変数はネストできません。例えば、`cdata.warPath=${cdata.prefix${cdata.arc}}/webapp` は許可されません。

次の例では、設定オプションで変数を使用して以下を行います：

* 初期化パラメータを定義する
* カスタムヘッダーを設定する

```
cdata.initParameters=ARCCLOUD_SERVICE_DEFINITION_PATH:${cdata.home}/service.json,APP_LOGS:${cdata.logdb}
cdata.http.customHeaders=Product-Version:[${ARC_ISSUER} 2025];/api.rsc,Product-Issuer:${ARC_ISSUER}
```

## 設定オプション

### cdata.app.db

{siteNameShort} が使用するバックエンドデータベースへの接続文字列を定義します。

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

### cdata.app.directory

{siteNameShort} がアプリケーションディレクトリとして使用するパスを定義します。

`cdata.app.directory=/mnt/shared/arc`

### cdata.contextPath

Web アプリケーションがデプロイされるベースURL パスを定義します。これは、Web アプリケーションが処理するすべてのURL のプレフィックスとして機能します。

`cdata.contextPath=/myapp`

例えば、アプリケーションが`www.mydomain.com` でホストされている場合、これによって受信エンドポイントが`http://www.mydomain.com/myapp/pub/Receive.rsb` になります。

### cdata.encryption.key

マスターキーとして使用する、ランダムな文字列を含むAES キーファイル、またはPFX（PKCS#12）証明書ファイルへのパスを指定します。マスターキーは、{siteNameShort} 内のパスワードやシークレットなどの機密データを暗号化する暗号化キーを暗号化します。独自のキーを使用したい場合、またはキーをデフォルト以外の場所に保存したい場合にのみ必要です。

`cdata.encryption.key=file:///var/opt/mykeys/mysecret.key`

または、AES キーを使用している場合は、`APP_KEY` 環境変数を使用してキーファイルへのファイルパスを指定できます。

### cdata.encryption.key.password

マスターキーに使用されているPFX ファイルのパスワードを定義します（[cdata.encryption.key](#cdata-encryption-key) を使用して設定）。

`cdata.encryption.key.password=MyS3curePa55w0rd`

または、環境変数（例えば、`ENCRYPTION_KEY_PASSWORD`）を使用してパスワードを保存し、ここで参照することもできます。

`cdata.encryption.key.password=${ENCRYPTION_KEY_PASSWORD}`

### cdata.fips.enabled

連邦情報処理標準（FIPS）モードを有効にするかどうかを制御するブールオプションです。FIPS は、セキュリティ、相互運用性、データ整合性を確保するために、コンピュータシステムで使用することを目的として米国連邦政府が策定した一連のセキュリティ標準です。

`cdata.fips.enabled=true`

### cdata.http.customHeaders

カスタムヘッダーを、次の形式の連結された文字列のキー / 値のペアとして指定できます：`key:value`。

変数が含まれている場合、文字列は変数が最初に出現する箇所で分割され、変数が置換されます。変数を使用できるのは値のみです。

`cdata.http.customHeaders=Product-Version:[${ARC_ISSUER} 2025];/api.rsc,Product-Issuer:${ARC_ISSUER}`

### cdata.http.gzipEnabled

HTTP レスポンスに対してGZIP 圧縮を有効にするかどうかを制御するブールオプションです。有効にすると、Jetty は帯域幅の使用量を削減するためにレスポンスを自動的に圧縮し、GZIP をサポートするクライアントのパフォーマンスを向上させます。

`cdata.http.gzipEnabled=true`

### cdata.http.host

Jetty のHTTP サーバーがバインドするホスト / IP アドレスを設定します。これは、サーバーが受信HTTP リクエストをどのネットワークインターフェースでリッスンするかを決定します。

`cdata.http.host=192.168.0.27`

### cdata.http.maxFormSize

HTTP フォーム送信（application/x-www-form-urlencoded やmultipart/form-data リクエストなど）で許可される最大サイズ（バイト単位）を定義します。これは、フォーム経由のファイルアップロードを含む、フォーム送信で処理できるデータ量を制限します。

`cdata.http.maxFormSize=2000000`

### cdata.http.port

{siteNameShort} が実行され、リッスンするHTTP ポートを設定します。

`cdata.http.port=4080`

### cdata.http.proxyMode

Jetty がリバースプロキシまたはロードバランサーの背後で実行されているかどうかを決定するブールオプションです。有効にすると、Jetty はX-Forwarded-For やX-Forwarded-Proto などのヘッダーを含むプロキシ経由のリクエストを適切に処理します。

* `true` の場合、Jetty はプロキシからのX-Forwarded-\* ヘッダーを信頼します。
* `false` の場合、Jetty はそれらのヘッダーを無視し、直接的なクライアント接続を想定します。

これにより、プロキシの背後で実行する際に、適切なクライアントIP の検出、HTTPS リダイレクト、ホスト解決が保証されます。

`cdata.http.proxyMode=true`

### cdata.http.timeout

HTTP 接続のアイドルタイムアウトを制御します。この設定は、Jetty が接続を閉じる前に、その接続でのアクティビティをどれくらいの時間（ミリ秒単位）待機するかを決定します。

`cdata.http.timeout=60000`

### cdata.initParameters

サーブレットの初期化パラメータを定義します。これらのパラメータは、実行時にサーブレットまたはフィルターによってアクセスされる連結された文字列のキー / 値のペアです。これらは、次の形式のカンマ区切りの文字列で設定する必要があります：`key:value`。

変数が含まれている場合、文字列は変数が最初に出現する箇所で分割され、変数が置換されます。変数を使用できるのは値のみです。

`cdata.initParameters=ARCCLOUD_SERVICE_DEFINITION_PATH:${cdata.home}/service.json,APP_LOGS:${cdata.logdb}`

### cdata.loginService.ldap

これは`cdata.loginService.ldap.*` として解釈されます。これらのプロパティは、Jetty でLightweight Directory Access Protocol（LDAP）認証を設定するために使用され、ユーザーがLDAP サーバーに対して認証できるようにします。多数のプロパティがサポートされています。最低限、組み込みJetty サーバーでLDAP を使用する場合は、以下が必要です：

```
cdata.loginService.ldap.hostname
cdata.loginService.ldap.bindDn
cdata.loginService.ldap.bindPassword
```

`arc.properties` の完全なLDAP セクションは、次のようになります：

```
;; LDAP
cdata.loginService.ldap.enabled=true
cdata.loginService.ldap.bindDn="CN=ldapuser,DC=example,DC=org"
cdata.loginService.ldap.hostname="127.0.0.1"
cdata.loginService.ldap.bindPassword="Adminpassword1"
cdata.loginService.ldap.port="1389"
cdata.loginService.ldap.debug=true
cdata.loginService.ldap.authenticationMethod="simple"
cdata.loginService.ldap.userBaseDn="DC=example,DC=org"
cdata.loginService.ldap.userRdnAttribute="cn"
cdata.loginService.ldap.userPasswordAttribute="userPassword"
cdata.loginService.ldap.forceBindingLogin="true"
cdata.loginService.ldap.roleBaseDn="DC=example,DC=org"
cdata.loginService.ldap.roleNameAttribute="cn"
cdata.loginService.ldap.roleMemberAttribute="member"
cdata.loginService.ldap.useLdaps="false"
```

その他の背景情報とサポートされるプロパティの完全な一覧については、[LDAP 認証の設定](./cross-platform-edition#ldap-認証の設定)を参照してください。

### cdata.loginService.ldap.enabled

Jetty でLDAP 認証を有効にするかどうかを決定するブールです。このプロパティは通常、設定のニーズに応じて、LDAP ベースのログインサービス全体を有効または無効にするために使用されます。

`cdata.loginService.ldap.enabled=true`

### cdata.requestLog.enabled

Jetty がHTTP リクエストをアクセスログに記録するかどうかを制御するブールです。有効にすると、Jetty はクライアントIP、リクエストメソッド、レスポンスステータス、レスポンス時間などの受信リクエストの詳細を記録します。

`cdata.requestLog.enabled=true`

### cdata.requestLog.filenameDateFormat

ログをローテーションする際にJetty がログファイル名に付加する日付形式のパターンを指定します。これにより、ログを日単位、時間単位、またはカスタムの間隔で整理できます。

* `cdata.requestLog.filename` とともに使用して、ローテーションするログファイル名を生成します。
* 形式はJava の`SimpleDateFormat` パターンに従います。デフォルトは`yyyy_MM_dd` であり、これは毎日新しいログファイルを作成します。
* 空（`""`）の場合、Jetty は日付ベースのローテーションを無効にします。

`cdata.requestLog.filenameDateFormat=MM_dd_yyyy`

### cdata.requestLog.retainDays

Jetty が古いアクセスログを自動的に削除するまでに保持する日数を指定します。

* デフォルトは`31` で、これはJetty が31日間ログを保持してから削除することを意味します。
* `0` に設定すると、Jetty はログの保持を無効にします。つまり、ログは自動的に削除されません。
* `cdata.requestLog.filenameDateFormat` とともに使用して、ローテーションするログファイルを管理します。

`cdata.requestLog.retainDays=90`

### cdata.session.timeout

Jetty Web サーバーでユーザーのセッションが期限切れになるまでの最大の非アクティブ時間（秒単位）を定義します。

* デフォルトは`600` 秒（10分）です。
* `0` 以下の値は無視されます。

`cdata.session.timeout=1200`

### cdata.tempDirectory

アプリケーションが使用するtemp ディレクトリの場所を定義します。

`cdata.tempDirectory=/tmp/arc`

### cdata.tls.keyStoreType

Jetty がTLS/SSL 証明書に使用するキーストアの種類を指定します。キーストアには、Jetty がセキュアなHTTPS 接続を確立するために必要な秘密鍵とSSL 証明書が含まれます。

一般的な種類には、JKS、PKCS12、BKS、PEM があります。

`cdata.tls.keyStoreType=PEM`

### cdata.tls.keyStorePassword

指定したキーストアのパスワードを定義します。

`cdata.tls.keyStorePassword=Password123`

### cdata.tls.keyStorePath

Jetty がTLS/SSL 暗号化に使用するキーストアへのファイルパスを指定します。

`cdata.tls.keyStorePath=/pathto/mykeystore.jks`

### cdata.tls.port

Jetty がTLS（HTTPS）接続に使用するポート番号を指定します。これは、プレーンなHTTP トラフィックに使用される`cdata.http.port` のセキュアな代替手段です。

`cdata.tls.port=443`

### cdata.tls.sniHostCheck

TLS/SSL 接続でのServer Name Indication（SNI）処理中に、Jetty がホスト名の検証を強制するかどうかを制御するブールです。

`cdata.tls.sniHostCheck=true`

### cdata.warPath

`arc.war` ファイルが別の場所にある場合に、そのパスを設定します。

`cdata.warPath=${cdata.home}/webapp/arc.war`
