バグ #1392
完了ServicePortのポート間接続解除の問題
100%
説明
ServicePortのポート間接続解除処理が正常に行われていない。
ポート間接続後、ポート間接続を切断してもデータ通信が行われてしまう。
手順は以下の通り。
1. RTSEにてMyServiceProviderのproviderポートとMyServiceConsumerのconsumerポートを接続する。
2. MyServiceConsumer側のウィンドウにてecho test などと入力してデータ通信を行う。
3. RTSEにてポート間接続を切断する。
4. MyServiceConsumer側のウィンドウにてecho test などと入力してデータ通信を行う。
※ 3.にてポート間の接続を切断したにもかかわらず、データがMyServiceProvider側に送られてしまう。
匿名ユーザー さんが14年以上前に更新
接続に使用したルールを、切断にも同様に適用したほうがいいので、findProvider() 関数を切断時にも再利用するのが得策だと思われます。
以下のように修正をお願いいたします。
1. findProvider(), findProviderOld() は見つかった IOR文字列を返すようにします。
2. findProvider() と findProviderOld() をProviderを探す部分と
リファレンスをセットする部分setObject()に分割します。
3. ConsumerのHolderに(setObject()時に)IORを保持させ、IORを返す関数を追加します。
4. setObject() と逆のことをやる、releaseObject()関数を追加します。
5. unsubscribeInterfaces()は findProvider(Old)() とreleaseObject() を使って実装します。
一応これで、C++ではサービスポートの切断が確認できました。(SimpleService)