ToolTalk ユーザーズガイド

静的パターンのファイル配信範囲は file_in_session と同じですか

違います。これらの配信範囲は使用目的が違います。

たとえば、すべてのセッションが同じ静的パターンを持ち、(アプリケーションが送信しようとしている) メッセージ M に一致するパターン P を少なくとも 1 つ持つとします。そして、ファイル foo.bar を処理対象とするクライアントのセッションが 1 つもないとします。

アプリケーションはセッション A に接続しており、ファイル foo.bar を配信範囲とするメッセージ M を発行します。このファイルを処理対象とするクライアントのセッションは 1 つもないため、このメッセージを受け取るファイルはセッション A だけです。(このメッセージは、セッション A の静的パターン P と一致します。) ptype が動作を開始すると、そのパターンは実際には (そのセッション中の) ファイルを配信範囲とするようになり、セッション A がすべて処理します。

セッションの静的パターンがすべて同じとは限らない場合は、結果は異なります。たとえばセッション B が、ファイル配信範囲指定でメッセージ M に一致する P' というパターンを持つことも考えられます。メッセージ M がセッション A に送信されると、ファイル foo.bar を処理対象にしたクライアントがセッション B に 1 つもない場合、dbserver はそのメッセージをセッション B に送信しません。しかし、セッション B のクライアントの 1 つがファイル foo.bar を処理対象としていれば、セッション B の少なくとも 1 つのクライアントがファイル foo.bar を処理対象としていることを知り、dbserver はセッション B にもそのメッセージを送信します。