powered by Jive Software

1000 online users I need how much memory?

I install openfire 3.3.0 alpha in Linux system. The system have 768MB memory. the database is on other machine.

I use -Xms64m -Xmx192m to set openfire use 192MB memory, But when there are 200 online users, I saw 95% memory used in admin console, and then, all users cannot send message to anyother users, And I test to talk to myself, there are only send message but can not see back message. And I cannot retrieve the members vCard. Is it a bug or just the limit of openfire?

How much memory I have to set to support 1000 users online?
gateway.jar (1092423 Bytes)

Hi,

I still recommend to calculate with 1 MB for every connected user. The required size depends on the size of the caches etc.

Did you get outofmemory errors with 200 connected users when you got the problems you did post?

LG

Hey LG,

I still recommend to calculate with 1 MB for every connected user. The required size depends on the size of the caches etc.

With that estimation for 1000 users you would need 1GB. In my load tests I got to 54000 concurrent users with rosters between 20 and 40 contacts and the consumed memory was 1.2GB. I configured the JVM to have 2GB but it was usually between 800MB and 1.2K.

Regards,

– GAto

Which will occur when memory arrive the top of setting? the later user cannot login? or some user will kick out ? or some user cannot talk each other?

Does the VM use swap? can I set the number more than physical memory?

If I add a CM, does the CM’‘s connections affect the main server’'s memory? eg, CM have 1000 online users, the Server have 500 online users , I must give openfire server how many memory? 512MB or much more than these?

Hi Gato,

I’'m quite sure that your load test has nothing to do with a real-world server where user change their vCards/avatars, change presence, logout or just drop the connection. Did your test also contain old-SSL and HTTP-bind connections?

@adun

If all Java heap is used (100%) Wildfire will not be able to create new objects, this will cause random errors.

The JVM does not use swap memory for the Java heap, the native heap may be swapped out but as it is usually small this does not help. Using MINA/NIO did reduce the memory usage a lot as only a few threads are needed to handle all connections (without NIO: one thread for every connection). You can set the Xmx value higher than than the physical memory but this is a very bad idea. Every garbage collection stops the process inside the JVM and scans the entire Java heap - if it is swapped out this will take very long.

The CM do not use caches so I’'m not sure that it will help to use one, and it should not run on the same server as Wildfire.

LG

It seems openfire need much more memory than other jabber servers. I have use jabber server v2, I think it do not use that many memorys.

I test the openfire 3.3.0 beta, It seems not stable enough for production environment. Sometimes many user cannot recieve message others send them, but they can send it to others. Sometime users cannot open there vCard.

“The CM do not use caches.” what does these mean? Now I have two servers, A has two 3.0Ghz CPU, 4G memory and install Win2000 system, B has one 2.4Ghz CPU and 768MB memory and install linux system. I install MSSQL 2005 server and a CM use 512MB-1GB memory on A. and install openfire server use 64MB-320MB memory on B, I told 500 members to connect B, and 1000 members to connect A. I test a few days, now concurrent online number is 300, but many members complain about the lost of message, and some member cannot recieve others message at all. I check the memory of openfire server used, It just 200MB.

I use Pandion client, Now I do not know it’‘s server’‘s fault or client’'s.

Hey LG,

I’'m quite sure that your load test has nothing to do with a real-world server where user change their vCards/avatars, change presence, logout or just drop the connection. Did your test also contain old-SSL and HTTP-bind connections?

I’'m curious. How could you be sure about something that you never saw?

The load tests that we have been running include users with roster of 20-40 contacts, one-2-one chats, changes of presences, 20 group chats with more than 100 users inside, room occupants where sending messages, changing presences. The 54K created users also had their own vCard with an avatar inside. My avatar was used as an example so it is a real picture. Users where logging out and logging in too.

Anyway, what we observed is that the amount of memory required by the server was directly related to the size of the caches. So if you change your caches to have a huge size then you may end up having the entire user base in memory with their entire vcards. The server will run out of memory for sure but even in that case I’'m not sure if you can safely assert that 1 user = 1 MB.

Regards,

– Gato

Hey backdream,

I test the openfire 3.3.0 beta, It seems not stable enough for production environment. Sometimes many user cannot recieve message others send them, but they can send it to others. Sometime users cannot open there vCard.

Openfire 3.3.0 is pretty much like Wildfire 3.2.4 except for rename of packages and a few new features. In other words, the problem that you are seeing is also present in Wildfire 3.2.4. Could you give me more information on how to reproduce it? Any error in the log files? Which clients are you using? Could you capture the XML being exchanged and post it?

Thanks,

– Gato

I user Pandion. There seems not some errors in error log. The user name is in Chinese word. When someone cannot recieve my message, He also can not view the user’'s profile.

Please tell me when the situation occured, How to debug it. Press F12 to copy the XML? View the database?

I will try more Monday.

I have test more and more. the bug of cannot send or recieve message are more frequently. some times are becuase of the presence of user is not correctly, They display that they are online, but others see them not. Some times the presence is good, But still cannot send message to them.

When the other side can not recieve my message, then I watch theire profile, their local time is blank. they view profile themselves, the console text is just send but not RECV.


SENT:


There is the error.log and warn.log of Openfire server. I use MSSQL Server as database, Openfire 3.3.0 beta, Jabber client is Pandion 2.5. the server name is IP address: 86.0.190.5. the multi-byte word are Chinese.


error.log

2007.04.09 09:25:16 org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:258) Error trying to connect to remote server: xn86-unx525yo68av0e.0.190.5(DNS lookup: xn86-unx525yo68av0e.0.190.5:5269)

java.net.UnknownHostException: xn–86-unx525yo68av0e.0.190.5

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(O utgoingServerSession.java:253)

at org.jivesoftware.openfire.session.OutgoingServerSession.authenticateDomain(Outg oingServerSession.java:142)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:199)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:184)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 09:26:46 org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:258) Error trying to connect to remote server: 0.190.5(DNS lookup: 0.190.5:5269)

java.net.ConnectException: Invalid argument

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(O utgoingServerSession.java:253)

at org.jivesoftware.openfire.session.OutgoingServerSession.authenticateDomain(Outg oingServerSession.java:184)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:199)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:184)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 09:28:36 org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:258) Error trying to connect to remote server: 190.5(DNS lookup: 190.5:5269)

java.net.SocketTimeoutException: connect timed out

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(O utgoingServerSession.java:253)

at org.jivesoftware.openfire.session.OutgoingServerSession.authenticateDomain(Outg oingServerSession.java:184)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:199)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:184)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 09:30:07 org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:258) Error trying to connect to remote server: 5(DNS lookup: 5:5269)

java.net.ConnectException: Invalid argument

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(O utgoingServerSession.java:253)

at org.jivesoftware.openfire.session.OutgoingServerSession.authenticateDomain(Outg oingServerSession.java:184)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:199)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:184)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 09:33:35 org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:176) ???

java.lang.IllegalArgumentException: No enum const class org.xmpp.packet.Presence$Type.invisible

at java.lang.Enum.valueOf(Unknown Source)

at org.xmpp.packet.Presence$Type.valueOf(Presence.java:321)

at org.xmpp.packet.Presence.getType(Presence.java:106)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:115)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:13 4)

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:73 )

at org.jivesoftware.openfire.multiplex.MultiplexerPacketHandler.route(MultiplexerP acketHandler.java:164)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processRoute(Multiplexer StanzaHandler.java:89)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processUnknowPacket(Mult iplexerStanzaHandler.java:96)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:258)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:133)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 09:33:35 org.jivesoftware.openfire.spi.PresenceManagerImpl.userUnavailable(PresenceManage rImpl.java:264) Error storing offline presence of user: ???

java.sql.SQLException: ??? PRIMARY KEY ?? ‘‘jivePresence_pk’’??? ‘‘dbo.jivePresence’’ ???

at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)

at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)

at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)

at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:628)

at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:525)

at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:487)

at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.execute(JtdsPreparedStatement.j ava:475)

at org.jivesoftware.openfire.spi.PresenceManagerImpl.userUnavailable(PresenceManag erImpl.java:261)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:121)

at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClos e(SessionManager.java:1512)

at org.jivesoftware.openfire.net.VirtualConnection.notifyCloseListeners(VirtualCon nection.java:179)

at org.jivesoftware.openfire.net.VirtualConnection.close(VirtualConnection.java:15 5)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:181)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:13 4)

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:73 )

at org.jivesoftware.openfire.multiplex.MultiplexerPacketHandler.route(MultiplexerP acketHandler.java:164)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processRoute(Multiplexer StanzaHandler.java:89)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processUnknowPacket(Mult iplexerStanzaHandler.java:96)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:258)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:133)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 09:47:18 org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:176) ???

java.lang.IllegalArgumentException: No enum const class org.xmpp.packet.Presence$Type.invisible

at java.lang.Enum.valueOf(Unknown Source)

at org.xmpp.packet.Presence$Type.valueOf(Presence.java:321)

at org.xmpp.packet.Presence.getType(Presence.java:106)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:115)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:13 4)

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:73 )

at org.jivesoftware.openfire.multiplex.MultiplexerPacketHandler.route(MultiplexerP acketHandler.java:164)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processRoute(Multiplexer StanzaHandler.java:89)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processUnknowPacket(Mult iplexerStanzaHandler.java:96)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:258)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:133)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 09:47:18 org.jivesoftware.openfire.spi.PresenceManagerImpl.userUnavailable(PresenceManage rImpl.java:264) Error storing offline presence of user: wenxinping

java.sql.SQLException: ??? PRIMARY KEY ?? ‘‘jivePresence_pk’’??? ‘‘dbo.jivePresence’’ ???

at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)

at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)

at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)

at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:628)

at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:525)

at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:487)

at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.execute(JtdsPreparedStatement.j ava:475)

at org.jivesoftware.openfire.spi.PresenceManagerImpl.userUnavailable(PresenceManag erImpl.java:261)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:121)

at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClos e(SessionManager.java:1512)

at org.jivesoftware.openfire.net.VirtualConnection.notifyCloseListeners(VirtualCon nection.java:179)

at org.jivesoftware.openfire.net.VirtualConnection.close(VirtualConnection.java:15 5)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:181)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:13 4)

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:73 )

at org.jivesoftware.openfire.multiplex.MultiplexerPacketHandler.route(MultiplexerP acketHandler.java:164)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processRoute(Multiplexer StanzaHandler.java:89)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processUnknowPacket(Mult iplexerStanzaHandler.java:96)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:258)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:133)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 10:21:09 org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:258) Error trying to connect to remote server: xn86-unx5573azegi5h8y3a.0.190.5(DNS lookup: xn86-unx5573azegi5h8y3a.0.190.5:5269)

java.net.UnknownHostException: xn–86-unx5573azegi5h8y3a.0.190.5

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(O utgoingServerSession.java:253)

at org.jivesoftware.openfire.session.OutgoingServerSession.authenticateDomain(Outg oingServerSession.java:142)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:199)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:184)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 10:22:39 org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:258) Error trying to connect to remote server: 0.190.5(DNS lookup: 0.190.5:5269)

java.net.ConnectException: Invalid argument

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(O utgoingServerSession.java:253)

at org.jivesoftware.openfire.session.OutgoingServerSession.authenticateDomain(Outg oingServerSession.java:184)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:199)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:184)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 10:24:29 org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:258) Error trying to connect to remote server: 190.5(DNS lookup: 190.5:5269)

java.net.SocketTimeoutException: connect timed out

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(O utgoingServerSession.java:253)

at org.jivesoftware.openfire.session.OutgoingServerSession.authenticateDomain(Outg oingServerSession.java:184)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:199)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:184)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 10:26:00 org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:258) Error trying to connect to remote server: 5(DNS lookup: 5:5269)

java.net.ConnectException: Invalid argument

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at org.jivesoftware.openfire.session.OutgoingServerSession.createOutgoingSession(O utgoingServerSession.java:253)

at org.jivesoftware.openfire.session.OutgoingServerSession.authenticateDomain(Outg oingServerSession.java:184)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:199)

at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:184)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 11:04:56 org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:176) Could not route packet

java.lang.IllegalArgumentException: No enum const class org.xmpp.packet.Presence$Type.invisible

at java.lang.Enum.valueOf(Unknown Source)

at org.xmpp.packet.Presence$Type.valueOf(Presence.java:321)

at org.xmpp.packet.Presence.getType(Presence.java:106)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:115)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:13 4)

at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:73 )

at org.jivesoftware.openfire.multiplex.MultiplexerPacketHandler.route(MultiplexerP acketHandler.java:164)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processRoute(Multiplexer StanzaHandler.java:89)

at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processUnknowPacket(Mult iplexerStanzaHandler.java:96)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:258)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:133)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)


warn.log

2007.04.09 09:39:02 Invalid presence type

java.lang.IllegalArgumentException: No enum const class org.xmpp.packet.Presence$Type.invisible

at java.lang.Enum.valueOf(Unknown Source)

at org.xmpp.packet.Presence$Type.valueOf(Presence.java:321)

at org.xmpp.packet.Presence.getType(Presence.java:106)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:206)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:133)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 10:14:04 Invalid presence type

java.lang.IllegalArgumentException: No enum const class org.xmpp.packet.Presence$Type.invisible

at java.lang.Enum.valueOf(Unknown Source)

at org.xmpp.packet.Presence$Type.valueOf(Presence.java:321)

at org.xmpp.packet.Presence.getType(Presence.java:106)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:206)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:133)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.04.09 10:15:26 Could not route packet

Message was edited by: adun

Hi,

does the problem described here http://www.igniterealtime.org/forum/thread.jspa?messageID=141279 also applies for you?

I wonder if it is a Wildfire or a MSSQL problem.

LG

I does not have the same question. Weuse Pandion Client, and language is Chinese. I can use UTF8 with vCard very well.

My problem is the user’‘s presence is not always properly. The error.log also show some SQL errors of presence table. Users’‘s presence sometimes do not set properly, Sometime server kick them but they also show as online status. They cannot recieve vCard or others message. But they do not know they are disconnect, It’'s a BIG problem that they do not know someone send them message, and the message do not store on Openfire server as offline message, the message just lost.

Now I have to send me a message and wait response to judge if I am really online :). The problem not occur everytime but just sometimes and not just some members but all the members have occured this problem. Now my server just have 400 members online and just used 30% memory.

My server: Openfire 3.3.0 beta, Linux CentOS 4.1. Database and Connection manager server: Win2000 adv.server SP4, MS SQL Server 2005, Client: Pandion.

Message was edited by: adun

I have tested more, Some users can change their presence(busy, idle, and other status, I can see the status they changed) and they can send message to me, but they can not recieve my return message. I watch their profile, the local time of them cannot display (I use Pandion, it query xmlns=“jabber:iq:time”).

they view their profile, the command just send but not return, eg:

SENT:

Now I move the server to windows system and test it. Hope the problem can solve.

I move server to windows system, It works fine, It’’ seems not the MSSQL issue.

Now I move openfire to a production environment, The server use Windows 2000 and openfire 3.3.0, SQL Server 2005.

There are no problem with 300 online users. but when online users arrive to 500, there are some problem.

Some user cannot send or recieve message. some can send but cannot recieve, some cannot send. some user logout and then login, others see him online, but his status on client is offline. when change user name, it’‘s seem fine, but change back , it’'s still cannot work.

the cache size is default. Is there some tune up wizard of how to set DB connection threads, Cache sizes.

Hey adun,

That is weird. I don’'t think it is related to the load on the server. The server is not a mechanical thing than when pushed it starts to break down. When under heavy load (which is not your case with 500 users) the server could either start to run out of memory or take a little longer to deliver traffic to all connected users.

Do you see any errors in the log files? Any info on how to reproduce this case would help.

Regards,

– Gato

Hi,

the load plugin may help to tune the DB connections and give you some performance information. It is available here: http://wiki.igniterealtime.org/display/NINJA/Monitorloadontheserver

LG

Please download the logfiles:

http://newdisk.cn/ContentPane.aspx?down=ok&filename=openfire_logs.zip&filepath=b ackdream%2fjabber%2fopenfire_logs.zip&GUID=644CAFC8ED6311D90DB0EA15D070BF7A

When I use openfire in CentOS 4.1, 200 online user will cause some member occur this problem. So I move to Windows, but up to 500, the problem also occur. When occur this problem, the user logout and login, It does not fix it.

some in warn.log:

2007.04.17 08:36:10 Error packet could not be delivered

2007.04.19 16:56:06 No ACK was received when sending stanza to: org.jivesoftware.openfire.nio.NIOConnection@e609be MINA Session: (SOCKET, R: /86.0.191.78:2698, L: /86.0.190.118:5222, S: 0.0.0.0/0.0.0.0:5222)

2007.04.19 16:56:06 ???

And the log file package also include some dump log in ‘‘bin’’ directory. the server run for five days, It seems have two dump.

To It2000, I have viewed the document and add DB threads to 25. I will install the plugin and test more.

Message was edited by: adun

Any ideas?