powered by Jive Software

100 user lost package

Hello

when i test Openfire performance and 100 users online,they send message echo other,some user can’'t receive his message.

i wrote test program use smack library:

for 1-100…

connected to server

for 1-100

use Chat object send message to next user

for 1-100

use Chat object receive message (use previouse user’'s threadID) from previouse user.

why?

thanks.

null

I also occur this problem with linux version, Now I change to Windows envirment, It seems work good.

Hi,

would you please post your test program here? I wonder if you do something odd there.

LG

It’'s my old test case code:

public void testLoginMessage(String max,String host,boolean createUser) throws Exception{

long start = System.currentTimeMillis();

XMPPConnection[] connections = new XMPPConnection[Integer.parseInt(max)];

// connect to server

for (int i = 0; i < connections.length; i++) {

// Create the configuration for this new connection

try{

ConnectionConfiguration config = new ConnectionConfiguration(host, port);

config.setTLSEnabled(true);

config.setCompressionEnabled(false);

config.setSASLAuthenticationEnabled(true);

connections[i] = new XMPPConnection(config);

System.out.print("connected "(i1));

// Create the test account

if(createUser)

try {

String user = user_prefix + i;

String pwd = “111”;

connections[i].getAccountManager().createAccount(user,pwd);

} catch (XMPPException e) {

// Do nothing if the accout already exists

if (e.getXMPPError() == null || e.getXMPPError().getCode() != 409) {

throw e;

}

}

// Login with the new test account

connections[i].login(user_prefix + i, “111”, “wanghc test”);

print(" login "(i1));

}

catch(Exception ex){

//ex.printStackTrace();

log.error(ex);

}
}

host = connections[0].getHost();

String threadID = null;

print(“send 500 message test”);

int n = msgCount;
int failMsg = 0;
while(n–>0){

//send message

for( int i=0;i<connections.length;i++){

try{

String preUser = user_prefix+(i-1);

//receive message from previouse user

if(threadID!=null){

Chat chat = new Chat(connections[i],preUser,threadID);

Message received = chat.nextMessage(5000);

if(received != null){

System.out.println(preUser*" receive: "*received.getBody());

}else if(i!=0){

System.err.println("no receive!!! "(i1));

failMsg++;

}

}

// send messgage to next user

String user = user_prefix*(i*1);

Chat newChat = connections[i].createChat(user*"@"*host);

Message msg = newChat.createMessage();

msg.setBody(“testhelloleoodlldldlldddddd”);

newChat.sendMessage(msg);

threadID = newChat.getThreadID();

}

catch(Exception ex){

//ex.printStackTrace();

log.error(ex);

}

}

}

//sleep 2h

Thread.sleep(100036002);

}

Message was edited by: webjlwang

When connect to the wildfire server,a litte connection has error:

client smack report error:

javax.net.ssl.SSLException: Received fatal alert: internal_error

at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.a(DashoA12275)

at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.b(DashoA12275)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.b(DashoA12275)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.j(DashoA12275)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.b(DashoA12275)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(DashoA12275)

at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:11 21)

at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:327)

at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:43)

at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:63)

Wildfire server error:

javax.net.ssl.SSLHandshakeException: Initial SSL handshake failed.

at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:430)

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.common.support.AbstractIoFilterChain$HeadFilter.messageReceived (AbstractIoFilterChain.java:617)

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

at org.apache.mina.common.support.AbstractIoFilterChain.fireMessageReceived(Abstra ctIoFilterChain.java:353)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.j ava:246)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcesso r.java:206)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProce ssor.java:44)

at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProce ssor.java:506)

at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)

at java.lang.Thread.run(Thread.java:595)

Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?

at com.sun.net.ssl.internal.ssl.EngineInputRecord.bytesInCompletePacket(EngineInpu tRecord.java:152)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:748 )

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:663)

at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:566)

at org.apache.mina.filter.support.SSLHandler.unwrapHandshake(SSLHandler.java:666)

at org.apache.mina.filter.support.SSLHandler.handshake(SSLHandler.java:492)

at org.apache.mina.filter.support.SSLHandler.messageReceived(SSLHandler.java:293)

at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:398)

… 14 more

Message was edited by: webjlwang

Sorry, In windows server, when online user arrive up to 500, the problem also occur. some user is online, but cannot receive messages.

Please see: http://www.igniterealtime.org/forum/thread.jspa?threadID=26491&tstart=0

I’‘ve used smack libraries in the past to perform some small load tests with 5-600 users, but I’'ve never been able to go further due to some limitations client side.

What happened is that one smack connection uses a few number of thread ~ 4, when lauchnin 500 hundreds clients the total thread number reached it limits and prevents the system from working properly.

If you want to perform some load test you might want to try tsung.

Load test seems cannot test ratio of the success message.

Hi,

the login error “Unrecognized SSL message, plaintext connection?” should be fixed within JM-1035 in Openfire 3.3.1

LG