ユーザー定義プロパティー (UDP) とは、メッセージ・フロー・エディターによって設計時に初期値を変更したり、ブローカー・アーカイブ・エディターによってデプロイメント時に初期値をオーバーライドしたりできるユーザー定義の定数のことです。UDP は、ESQL または Java プログラム内で使用できます。ESQL では、UDP をプログラムに定義するために DECLARE ステートメントを使用します。DECLARE ステートメントで UDP に初期値を与えることはできますが、コードでこの値を実行時に変更することはできません。
DECLARE ステートメントで UDP の初期値を指定すると、この値がデフォルトになります。しかし、メッセージ・フロー・エディターによって設計時に指定された値や、BAR エディターによってデプロイメント時に指定された値は (長さゼロのストリングであっても)、DECLARE ステートメントでコード化された初期値をオーバーライドします。
メッセージ・フロー中のすべての UDP に、DECLARE ステートメントで指定された値か、メッセージ・フロー・エディターまたは BAR エディターによって指定された値がなければなりません。ない場合は、デプロイメント時にエラーが発生します。実行時に、UDP を宣言した後で、後続の ESQL ステートメントによってその値を照会できますが、変更することはできません。
UDP の利点は、デプロイメント時に操作員が値を変更できることです。例えば、UDP を使用して構成データを保持している場合は、デプロイメント時にノード・レベルでコードに変更を加えずに特定のマシン、タスク、または環境用にメッセージ・フローを構成できることになります。例えばデータ・ソースからのプラグイン (データベースなど) から構成データにアクセスしたり、構成データを環境ツリーにコピーしたりする必要はありません。
UDP を使用すると、構成データの設定が容易になり、通常の定数と全く同じように使用できます。ユーザー作成プラグインに対する外部呼び出しや環境ツリーの構文解析は関係しないので、ESQL コードの作成と保守が容易になり、パフォーマンスも向上します。また、ツリーからデータを読み取る際の構文解析のコストも除かれます。ユーザー定義プロパティーの値はデプロイメント時に変数に転写されるので、高速アクセスできるようになります。
UDP をプログラムに追加するには、DECLARE ステートメントを使用します。モジュールまたはスキーマの中でのみ、UDP を宣言することができます。
メッセージ・フロー・エディターを使用してユーザー定義プロパティーの値を変更する場合は、UDP の値はフロー・レベルで設定され、そのフローに含まれるすべての適格なノードで同じ値になります。("適格なノード" とは、UDP をサポートしており、アプリケーションに対して UDP を宣言している DECLARE ステートメントの有効範囲内にあるノードのことです。) 例えば、メッセージ・フロー・エディターを使用して、"myFlow" というメッセージ・フロー中の "mySchema" というスキーマで宣言されている "timezone" というユーザー・プロパティーの値を変更する場合、 myFlow 中のすべてのノードのうち UDP をサポートしていて mySchema の範囲内のものに対して実行時に UDP を使用できます。
ご使用のプログラムに対してユーザー定義プロパティーを定義することに関する情報は、DECLARE ステートメントを参照してください。