動作するマシンが異なるプロセス同士が ToolTalk サービスを使用して通信するには、次の 2 つの方法があります。
同一セッションに接続する。
それぞれのマシン上で NFS にファイルをマウントし、そのファイルを配信範囲とする。
複数のプロセスを同一セッションに接続するには、まずプロセス共通の処理対象 (セッション名など) を決定します。次に、それらの全プロセスにセッション名を伝達する方法を決定します。ToolTalk サービスには、セッションアドレスを配布する手段がありません (できるのは、X サーバールートウィンドウの TT_SESSION
プロパティにセッション ID を表示することだけです)。
セッション名を入手するには、次のコマンドを使用できます。
ttsession -p |
これはセッションを新規に生成し、標準出力にそのセッション名を出力します。また、次のコマンドも使用できます。
ttsession -c |
これは環境変数 $TT_SESSION
にセッション ID を設定します。
次に、他のプロセスが見つけられる場所に、セッション名を設定する必要があります。セッション名を設定する場所の例としては、次のものがあります。
共有ファイル
.plan ファイル
メールメッセージ
独自に設計した別の RPC 呼び出し
NIS
NFSTM 公開ファイルシステムで、公共ファイルを使用する場合の例を次に示します。
次のコマンドで ttsession を起動します。
ttsession -p >/home/foo/sessionaddress |
この /home/foo/sessionaddress ファイルに入っているセッションアドレスをクライアントで確実に使用するには、たとえば、次のようなシェルスクリプトでセッションアドレスを読み取り、_SUN_TT_SESSION
を設定してからクライアントを起動します。
#!/bin/csh setenv TT_SESSION `cat /home/foo/sessionaddress` exec client-program |
プロセスからこのセッションに接続するには、tt_default_session_set を呼び出す際にセッション名を指定します。
また、個々の X サーバーに関連付けられた ttsession からメッセージを送信すると、新規に作成した ttsession を表示できます。
ファイルが配信範囲になるのは、ファイルを配信範囲とするパターンをプロセスが登録したときです。登録したプロセスのセッション名は、登録したファイルに関連付けられた rpc.ttdbserverd のセッションリスト上に格納されます。ファイルを配信範囲とするメッセージが送信されると、ToolTalk サービスは、この該当ファイルのセッションリストを検索し、そのリスト上の各セッションにメッセージを配布します。
NFS にマウントしたファイルを配信範囲とするには、すべてのシステム上で 1 つのファイルシステムを NFS にマウントし、rpc.ttdbserverd を NFS サーバー上で実行する必要があります。