JOGが始まった頃からの話なので今更なのですが、毎回INする度に、JOGに来たOSGの友人とフレンドしたら、このように表示されるようになり、困っております。
この方以外に自分の「Tarsya Beautiful」というOSG名でもこうしてフレンド要請が来ることがあります。
このようなフレンド要請が来ないようにできないでしょうか?
ちょっとこの機能は調べたことがないので見当がつかないですね.
画像を見ると何度も同じメッセージが表示されているようですが,他のフレンド要請でも何回も表示されますか? それとも OSGrid の場合だけ?
はい、OSGの友人だけの事です。
初期の頃にOSGの友人や自分のアバターを呼べるか、持ち物を渡せるか、実験した時に、フレンド要請し合って以来毎回このようなフレンド要請が来ます。
フレンド承認しても、未だにOSGのアバターとはフレンド出来ませんが…(^_^ゞ
消せないようでしたら、このままで諦めます。
時期と解決の保証はできませんが,私のタスクキューに入れておきます.
解決策が見つかりましたら、お手数お掛けしますけれど、宜しくお願いいたします。
ふと,DBのデータベースから直接削除してしまえばいいのではないかと思い浮かびまして,DBをチェックしたところ次のようになっていました.
MariaDB [jogrid_db]> select * from Friends where PrincipalID='c125a7ce-6535-47fb-b7e6-b7be9b809f4f' AND Friend LIKE 'a9a5f3ce-f94f-4c91-9960-76449b99e70c%';
+--------------------------------------+--------------------------------------------------------------------------------------+-------+---------+
| PrincipalID | Friend | Flags | Offered |
+--------------------------------------+--------------------------------------------------------------------------------------+-------+---------+
| c125a7ce-6535-47fb-b7e6-b7be9b809f4f | a9a5f3ce-f94f-4c91-9960-76449b99e70c;http://hg.osgrid.org:80/;1925 froufrou;054bb06c | 1 | 0 |
| c125a7ce-6535-47fb-b7e6-b7be9b809f4f | a9a5f3ce-f94f-4c91-9960-76449b99e70c;http://hg.osgrid.org:80/;1925 froufrou;2222df62 | 1 | 0 |
| c125a7ce-6535-47fb-b7e6-b7be9b809f4f | a9a5f3ce-f94f-4c91-9960-76449b99e70c;http://hg.osgrid.org:80/;1925 froufrou;6bdf95bb | 1 | 0 |
| c125a7ce-6535-47fb-b7e6-b7be9b809f4f | a9a5f3ce-f94f-4c91-9960-76449b99e70c;http://hg.osgrid.org:80/;1925 froufrou;7f938e9d | 1 | 0 |
| c125a7ce-6535-47fb-b7e6-b7be9b809f4f | a9a5f3ce-f94f-4c91-9960-76449b99e70c;http://hg.osgrid.org:80/;1925 froufrou;a20eb81b | 1 | 0 |
| c125a7ce-6535-47fb-b7e6-b7be9b809f4f | a9a5f3ce-f94f-4c91-9960-76449b99e70c;http://hg.osgrid.org:80/;1925 froufrou;b3520196 | 1 | 0 |
| c125a7ce-6535-47fb-b7e6-b7be9b809f4f | a9a5f3ce-f94f-4c91-9960-76449b99e70c;http://hg.osgrid.org:80/;1925 froufrou;c5bda3fe | 1 | 0 |
+--------------------------------------+--------------------------------------------------------------------------------------+-------+---------+
7 rows in set (0.00 sec)
フラグの詳細がまだ分からないのですが,取り敢えず削除しちゃっていいですかね?
Iseki様、原因を究明してくださってお手数お掛けいたしました。。
ただいまINして確認しましたら、スッキリ消えています^^
いろいろと有難うございました。
これからは他のOpen Gridとのフレンドは交わさないように気をつけますので、これからも宜しくお願いいたします。
いえ,原因が(たぶん)分かったので,他のグリッドの人とフレンド関係になっても(たぶん)大丈夫です.
スタンドアロン(+HG)とJOGとの間でも同じようなことが起こります。
でも、スタンドアロン側に繰り返しメッセージは出るが、JOGのアバターには最近そのメッセージは出てないような。
怖いので、あまり実験してないです。
同じような症状が出ています。
①状況は、スタンドアローン(+HG)側で、管理アバターとフレンド登録。
②JOGアバターでJOGに戻ったり、最ログインすると、スタンドアローンの管理アバターからフレンド申請が来る。
・・・こんな状況です。
原因が分かったかもしれない.
ソースコードを見ていて,どうも既存のデータベースの構造と合わない気がして,「バグか?」と思ったのですが,念のため授業で使用しているOpenSim のデータベースを見てみたら,なんと,データベースの構造が違っています.
JOG
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| PrincipalID | char(36) | NO | PRI | NULL | |
| Friend | varchar(255) | NO | PRI | NULL | |
| Flags | varchar(16) | NO | | 0 | |
| Offered | varchar(32) | NO | | 0 | |
+-------------+--------------+------+-----+---------+-------+
授業用
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| PrincipalID | varchar(255) | NO | PRI | | |
| Friend | varchar(255) | NO | PRI | | |
| Flags | varchar(16) | NO | | 0 | |
| Offered | varchar(32) | NO | | 0 | |
+-------------+--------------+------+-----+---------+-------+
PrincipalID の長さが違う!! orz
HyperGrid では アバターの識別に UUID ではなく,Universal User Identifier と言うのを使うようなのですが(被らないことになっているからUUIDでいいじゃん),そのためには PricipalID は長さが255ないとダメなんです.
じゃあ,なんで JOG はPrincipalID が 36のままの? って言うことですが(通常は自動的に修正される),実は JOGのデータベースを作成する際にデフォルトの文字セットを UTF-8 にしました.
UTF-8だと1文字3バイト(将来的には4バイトになるらしいが)で,このテーブルのプライマリーキーはPrincipalID と Friend なのでプライムキーが合計で (255+255)x3 = 1,530バイトになります.
ところが,MySQL(MariDB) はプライマリーキーが 1,000 バイト以下でないとダメなんだそうです.
そういう訳で,PrincipalID の型変換時にエラーが起きて,たぶんそのまま動いてきたのだと推測されます. orz
仕方ないので,PrincipalID と Friend の文字コードを Latin1 に変更して,PrincipalID の長さを 255 にしました.
ALTER TABLE Friends MODIFY COLUMN `Friend` varchar(255) CHARACTER SET latin1;
ALTER TABLE Friends MODIFY COLUMN `PrincipalID` varchar(255) CHARACTER SET latin1;
これで上手くいくと良いのですが.....
因みに,いままでの HyperGrid 間でのフレンド関係は正常に成立していませんでの(DB上に中途半端に登録されている),データベース上から削除させていただきます.
特に影響はないと思いますが,よろしくお願いします.