flagflag  If you want to see English page, please click "English" Button at Left.

Re: Money Server stops to work,when Npc Bot logs in or HG visitor arrives

このトピックの投稿一覧へ

なし Re: Money Server stops to work,when Npc Bot logs in or HG visitor arrives

msg# 1.4
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2016-1-10 21:57
mandarinka  Just popping in   投稿数: 4
Hello Iseki !

Thank You very much for answering me. I am very grateful.

We use an official version of OpenSim: OpenSim 0.8.2.0 Release

Majority of residents use various versions of Firestorm viewer. I have not checked how Singularity behaves.

But I feel intuitevely that it may concern not only Firestorm.

Let me show you what console shows, when Npc bot or Hg visitor arrives to the region with money server enabled:

[MONEY RPC]: handleClientLogin: Unable to refresh information for user "" in DB

ERROR - OpenSim.Grid.MoneyServer.MoneyXmlRpcModule

I always compile money server with my versions of opensim.

I have found appropriate line in MoneyXmlRpcModule.cs


if (!m_moneyDBService.TryAddUserInfo(user))
{
m_log.ErrorFormat("[MONEY RPC]: handleClientLogin: Unable to refresh information for user \"{0}\" in DB", avatarName);
responseData["success"] = false;
responseData["description"] = "Update or add user information to db failed";
responseData["clientBalance"] = balance;
}
return response;

This part of your code is responsible for reportign this error.

So as we can see, error is generated by :TryAddUserInfo(user)) , when it gets value: false.

That we can see in: MoneyDBService.cs

public bool TryAddUserInfo(UserInfo user)
{
MySQLSuperManager dbm = GetLockedConnection();
try
{
if (dbm.Manager.fetchUserInfo(user.UserID) != null)
{
m_log.InfoFormat("[MONEY DB]: Found user \"{0}\", now update information", user.Avatar);
if (m_moneyManager.updateUserInfo(user))
return true;
}
else if (dbm.Manager.addUserInfo(user))
{
m_log.InfoFormat("[MONEY DB]: Unable to find user \"{0}\", add it to DB successfully", user.Avatar);
return true;
}
return false;
}
catch (Exception e)
{
dbm.Manager.Reconnect();
// Fumi.Iseki
m_moneyManager.Reconnect();
m_log.Error(e.ToString());
return false;
}
finally
{
dbm.Release();
}
}

Because, there are many viewers, I feel intuitevely that problem can concern other viewers too.

I have also noticed that, when this error occurs, then logging with another registered avatar in the region, helps to refresh balance and money starts to work.

So maybe it would be nice , to set procedure, that when such error ( exception ) occurs:

then money server could update balance of one, assume admin avatar or banker avatar, in the region where error has happened.

in this way, we would not worry abotu hundreds of viewers versions in the future.

But anyway i am happy that you confirm this bug and i look forward your update and answer.

Regards !!!
投票数:57 平均点:3.51

投稿ツリー

  条件検索へ


サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 6月翌月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
<今日>

オンライン状況

46 人のユーザが現在オンラインです。 (2 人のユーザが Forum を参照しています。)

登録ユーザ: 0
ゲスト: 46

もっと...

アクセスカウンタ

今日 : 269269269
昨日 : 8320832083208320
総計 : 2390024523900245239002452390024523900245239002452390024523900245
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com