Project

General

Profile

receive offlinemsg question

Raylin lin
Added over 4 years ago

hi,all:

   my tigase version is 5.3(built by myself).i find that if user A sends more than 100 messages to user B while user B is not online. When User B logins again, he can only receive at most 100 offline messages.

Replies (7)

Added by Wojciech Kapcia TigaseTeam over 4 years ago

This is the default value for the MsgRepository that handles storage and retrieval of messages, you can configure it by putting following in your @init.properties@:

sess-man/plugins-conf/amp/store-limit=1500
amp/store-limit[S]=1500

Added by Raylin lin over 4 years ago

hi, Wojciech Kapcia:

 my init.properties looks like this:

config-type=--gen-config-def

--admins=admin@192.168.1.104

--virt-hosts = 192.168.1.104

--sm-plugins=+jabber:iq:topicUser,+jabber:iq:conversation,+jabber:iq:storeLastMessage

--debug=server

--user-db=mysql

--user-db-uri=jdbc:mysql://192.168.1.104:3306/tigasedb?user=root&password=111111&useUnicode=true&characterEncoding=UTF-8

sess-man/plugins-conf/amp/store-limit=1500

amp/store-limit[S]=1500

i debuged tigase 5.3 with eclipse and found: in tigase.server.amp.MsgRepository.initRepository (map.get(MSGS_STORE_LIMIT_KEY) return null)

String msgs_store_limit_str = map.get(MSGS_STORE_LIMIT_KEY);

            if (msgs_store_limit_str != null) {          // msgs_store_limit_str  is null here
                msgs_store_limit = Long.parseLong(msgs_store_limit_str);
            }

Added by Wojciech Kapcia TigaseTeam over 4 years ago

What are the values in the whole @map@?

Added by Raylin lin over 4 years ago

{incoming-filters=tigase.server.filters.PacketCounter, net-buffer=2048, socket-close-wait=1, routings/.+=sess-man@zgc-20131021nke, max-queue-size=4660, max-inactivity-time=600, elements-number-limit=1000, admins=[Ljava.lang.String;@1dea3324, tls-want-client-auth-enabled=false, white-char-ack=false, xmpp-ack=false, routings/multi-mode=true, watchdog_delay=600000, connections/5280/remote-host=localhost, connections/5280/connections/tls/required=false, connections/ports=[I@3d17a49c, connections/5280/ifc=[Ljava.lang.String;@7ac38fd3, command/ALL=ADMIN, scripts-dir=scripts/admin, connections/5280/socket=plain, def-hostname=zgc-20131021nke, scheduler-threads=1, component-id=bosh@zgc-20131021nke, watchdog_ping_type=WHITESPACE, outgoing-filters=tigase.server.filters.PacketCounter, connections/5280/type=accept, connections/tls/use=true, watchdog_timeout=1740000}

my init.properties:

config-type=--gen-config-def

--admins=admin@192.168.1.104

--virt-hosts = 192.168.1.104

--sm-plugins=+jabber:iq:storeLastMessage

--debug=server

--user-db=mysql

--user-db-uri=jdbc:mysql://192.168.1.104:3306/tigasedb?user=root&password=111111&useUnicode=true&characterEncoding=UTF-8

sess-man/plugins-conf/amp/store-limit=1500

amp/store-limit[S]=1500

Added by Wojciech Kapcia TigaseTeam over 4 years ago

Are you sure this is the map from the breakpoint mentioned in previous post? because it definitely doesn't match what should be there, starting with @component-id=bosh@zgc-20131021nke@…

Added by Raylin lin over 4 years ago

yes,that is the map value from the breakpoint in tigase.server.amp.MsgRepository.initRepository() function。

Added by Wojciech Kapcia TigaseTeam over 4 years ago

Have you made ANY changes to the Tigase itself?

Once again, you are operating within AMP component therefore component-id should be amp@ domainname, in your case it's bosh, which is highly unlikely in Tigase.

    (1-7/7)