Solution ID: 142179806 表題:WINDOWS/UNIX: ガードコンディションが偽を返した際に、"state received unexpected message"が報告されます。 製品: Rose-RT バージョン: 2002.05.21 OS: WINDOWS/UNIX DEFECT #: PATCH #: 参照事項: Solution ID 141997106 の日本語訳 作成年月日: 11-Dec-2002 改訂年月日: 30-Dec-2002 質問: ガードコンディションが偽(False)を返したときに"state received unexpected message"というメッセージが報告されるのなぜですか。 回答: カプセルの現在の状態に対し、遷移先がないからです。 遷移は1つ以上のポートが受信する1つ以上のシグナルと真(True)と判定 されたガードコンディションによって定義されたイベントがトリガーとなって 起こります。したがって、定義されたシグナルを受信したにもかかわらず、 ガードコンディションが偽を返した場合、遷移は発生しません。 そのトリガーイベントに対する遷移先が見つけられなかった場合、デフォル トのunexpectedMessage()がstderrに以下のメッセージを出力します。 application(1)@S1 received unexpected message: timer%timeout data: 0x0 unexpectedMessage()につきましては、Rational RoseRealTime C++言語 リファレンスガイド(日本語)の第12章 サービスライブラリクラスリファレンス -> RTActor→RTActor::unexpectedMessage、またはオンラインヘルプ(英 語)のC++ -> C++Reference -> Services Library Class Reference -> RTActor -> RTActor::unexpectedMessageをご参照下さい。 注意: パフォーマンス上の理由から、ガードコンディションの使用は、他に手段が ない場合以外は推奨できません。詳細はRational RoseRealTime C++言語 リファレンスガイド(日本語)の第9章 C++サービスライブラリの詳細 -> 設計 の最適化 -> カプセルインスタンスとカプセルの振る舞い、またはオンライン ヘルプ(英語)のC++ -> C++Reference -> Inside the C++ Services Library -> Optimizing Designs -> Capsule Instances and Capsule Behaviorをご参 照ください。 また、ガードコンディションはダイアグラムにて Show transition triggers が 選択されない限り表示されません。シングルトリガーに応じた動作が必要な 場合、チョイスポイントが使用できます。 ご不明な点等ありましたら、ラショナルカスタマサービスへお問い合わせ下さい。