Hajime Okada
h.oka****@sdy*****
2008年 3月 7日 (金) 14:08:01 JST
木谷様、お世話になります。 岡田です。 現在UTコードを書いているところですので、もうじき出来上がります。 少々お待ちください Yumi Kitani さんは書きました: > 岡田 様 > > 木谷です。 > お世話になっております。 > > Replication機能の追加に伴い、Service側で変更が必要な処理について > 御質問を頂いていましたが、ここで改めてReplication機能の仕様を > 整理してお答えいたします。 ありがとうございます。 文中にコメントします。 > ・ACT/SBY切り替え時、SBY側でプールされるAct側から受信したデータの > 取得方法について。 > → SBY側で、l7vs_replication_pay_memory関数を利用してください。 > 引数として(char*,unsigned int*)を指定すると、 > プールされたAct側から受信したデータが保存されているmemoryと > を返し、指定のポインタ(unsigned int*)に、Block数(領域)を代入します。 了解しました。 > ・レプリケーション領域のブロックの構造について > →1ブロック500バイトで管理し、送信単位はこの500バイトです。 > ただし、1ブロック内には、ヘッダが含まれるので > コンポーネントとして使用できるサイズは1ブロック480バイト > になります。 > > ・レプリケーション領域の利用方法について > →l7vs_replication_pay_memory関数で取得した領域は > 上記の、ヘッダを抜いた480バイトの連続したブロックで > 割り当てを行います。 > コンポーネントでは連続した480バイト×ブロック数のサイズの > メモリとして自由に使用してください。 使用可能領域のサイズは、1ブロック480バイト×ブロック数、了解しました。 > ・コンポーネントに割り当てられた領域のサイズの取得方法について > →l7vs_replication_pay_memory関数の引数(unsigned int*)に格納します。 了解しました。 > ・SBY側からl7vs_replication_pay_memory関数をよんだ際におこる、 > コンポーネントに割り当てられた領域の上書きの懸念について > →質問の意図を教えて頂けますでしょうか。 まず先にお知らせしておきますが、、、こちらで書いたコード中で、質問の意図した懸念点は解決しております。 この質問の意図というか、懸念点は次の通りです。 ・Sby→Actになった場合、レプリケーションデータをVirtualServiceに反映させる必要があります。 ・データが反映されるのはVSが作成されたタイミングです。 ・しかし、VSが作成されるタイミングで、レプリケーションデータの作成も行うので、その際に割り当てられた領域にデータを書き込むため、Act側から来たデータは無くなってしまう・・・。 という状態が発生します。 解決策は、 Sby→Actになった時に、現状のレプリケーションデータをservice内予備エリアにコピーして、そこからVSへの反映を行うようにしています。 あとで送るソースのコメントを読んでもらえばわかると思います。 > ・パラメータファイル再読み込みで、ブロック数の指定が変わった場合について > → パラメータファイルに記述されたブロック数はパラメータ再読み込みの > 対象外です。 > l7vsの起動時に指定されたブロックはl7vsが終了する > まで変わりません。 ブロック数はプロセスの起動から終了まで不変ですね。了解しました。 よろしくお願いします。 -- +===========================+ Hajime Okada / 岡田 創 mail : h.oka****@sdy***** 株式会社SDY +===========================+