MID Server 構成パラメーターの設定と優先度
MID Server の設定は複数のテーブルに存在し、MID Server は設定された順序でそれらの設定に優先順位を付けます。MIDConfigParameter は、正しい型スタイル ビルダーで定義する必要があります。
MID Server 設定の優先度
- MID 構成パラメーター
- MID プロパティ (特定の MID)
- MID プロパティ (グローバル)
MIDConfigParameter の設定と API
MID Server は、文字列だけでなく、MIDConfigParameter のタイプベースのパラメーターをサポートしています。列挙型、期間、整数、長型、文字列、およびブール型のパラメーターを作成するための API が存在します。
* public static final MIDConfigParameter<Duration> REFRESH_RATE = new DurationParam.Builder(
"MID Server refresh rate.", "refresh_rate", ChronoUnit.SECONDS)
.withReadOnly(false)
.withHidden(false)
.withListed(true)
.withMinValue(Duration.ofSeconds(15))
.withMaxValue(Duration.ofDays(1))
.withDefaultValue(Duration.ofSeconds(65))
.build(); MIDConfigParameter の新しいインスタンスは、型スタイル ビルダーを使用して定義する必要があります。この API は com.snc.midserver.config.api.IConfig にあります。従来の API では、この型スタイルの MIDConfigParameter インスタンスが指定されている場合、例外がスローされます。同様に、この API は、レガシースタイルの MIDConfigParameter インスタンスが指定されている場合は例外をスローします。
public static final MIDConfigParameter<Duration> REFRESH_RATE = new DurationParam.Builder(
"MID Server refresh rate.", "refresh_rate", ChronoUnit.SECONDS)
.withReadOnly(false)
.withHidden(false)
.withListed(true)
.withMinValue(Duration.ofSeconds(15))
.withMaxValue(Duration.ofDays(1))
.withDefaultValue(Duration.ofSeconds(65))
.build();
// will throw IllegalArgumentException
Config config = Config.get();
String value = config.getProperty(MIDConfigParameter.REFRESH_RATE);
// ok, since REFRESH_RATE is a new style param
IConfig newConfigApi = Config.get();
Optional<Duration> optionalValue = newConfigApi.get(MIDConfigParameter.REFRESH_RATE); 値の検証
- config.xml ファイルのパラメーターをコメント アウトします
- メモリへのパラメータのロードをスキップします
- エージェント ログにエラーを記録します。
- MIDIssueLogger レコードをキューに入れて、インスタンス接続が使用可能になったらインスタンスに送り返します
インスタンス接続が利用可能な場合は、キューに入れられた MIDIssueLogger レコードをインスタンスに送信します。
無効なレコードの防止
レコードが無効になる可能性があるため、MID プロパティテーブルに重複レコードを作成しないでください。重複するプロパティは同じ名前を持ち、同じ MID Serverに割り当てられています。
同様に、グローバル構成パラメーターはサポートされていないため、作成しないでください。グローバル設定パラメーターは、MID Server が割り当てられていない設定パラメーターです。設定をすべての MID Server に適用する必要がある場合は、グローバル MID プロパティを使用します。