1

ここでの調査と議論の後、分散システムの同じ制御フローに属する異なる JVM 上のスレッドに同じ名前を設定する必要があると判断しました。スレッドは、RMI などによって作成されます。その方法でスレッドを作成するときに名前を設定することはできますか?

4

2 に答える 2

2

この情報をクライアントからサーバーに自動的に転送する手段はありません。

クライアント上で(スレッドごとに)ある種のContextオブジェクトを設定し、メソッド引数としてRMIサーバーに渡す必要があるようです。そのContextオブジェクトには、スレッド名だけでなく、呼び出しプロセスの pid などの他の情報も含まれている可能性があります。

次に、そのオブジェクトを使用して、Contextスレッド名などを設定する必要があります。これは、ネットワークを介しThread.setName()て渡された後です。今後は、これを使用してロギング フレームワークにコンテキスト固有の情報を設定できます (例: Log4j のネストされた診断コンテキストを使用) 。

これをさらに自動化するためのアスペクトの使用は、読者のさらなる課題として残されています :-)

于 2012-07-30T08:06:15.297 に答える
0

Thread クラスには、 への静的メソッドがありsetName(String)ます。スレッドがどこから来ても、そのメソッドを実行できる場合は、問題ありません。これらの人は、Tomcat 関連のスレッドで同様の問題を抱えていました。

于 2012-07-30T08:05:33.720 に答える