hi, uudashr
I found jsmpp by chance yesterday , and I am interest in it.
1) I use StressClient.java send message to StressServer,
set DEFAULT_BULK_SIZE = 100000000
ntt2@ntt227:~/zlb_test/stress> sh runClient.sh
2008-11-20 21:53:50,464 [main] INFO org.jsmpp.examples.StressClient -
Target server
10.0.5.226:8056
2008-11-20 21:53:50,464 [main] INFO org.jsmpp.examples.StressClient -
System ID: j
2008-11-20 21:53:50,464 [main] INFO org.jsmpp.examples.StressClient -
Password: jpwd
2008-11-20 21:53:50,464 [main] INFO org.jsmpp.examples.StressClient -
Source address: 1616
2008-11-20 21:53:50,464 [main] INFO org.jsmpp.examples.StressClient -
Destination address: 62161616
2008-11-20 21:53:50,464 [main] INFO org.jsmpp.examples.StressClient -
Transaction timer: 2000
2008-11-20 21:53:50,464 [main] INFO org.jsmpp.examples.StressClient -
Bulk size: 100000000
2008-11-20 21:53:50,466 [main] INFO org.jsmpp.examples.StressClient -
Max outstanding: 10
2008-11-20 21:53:50,467 [main] INFO org.jsmpp.examples.StressClient -
Processor degree: 3
2008-11-20 21:53:50,539 [main] INFO org.jsmpp.session.SMPPSession -
Connected
2008-11-20 21:53:50,540 [Thread-0] INFO org.jsmpp.session.SMPPSession
- Starting PDUReaderWorker with processor degree:3 ...
2008-11-20 21:53:50,552 [Thread-1] INFO org.jsmpp.session.SMPPSession
- Starting EnquireLinkSender
2008-11-20 21:53:50,552 [main] INFO org.jsmpp.examples.StressClient -
Bound to
10.0.5.226:8056
2008-11-20 21:53:50,553 [Thread-2] INFO
org.jsmpp.examples.StressClient - Starting traffic watcher...
2008-11-20 21:53:50,553 [main] INFO org.jsmpp.examples.StressClient -
Starting send 100000000 bulk message...
2008-11-20 21:53:51,553 [Thread-2] INFO
org.jsmpp.examples.StressClient - Request/Response per second :
1819/1809 of 1809 maxDelay=166
2008-11-20 21:53:52,788 [Thread-2] INFO
org.jsmpp.examples.StressClient - Request/Response per second :
938/938 of 2747 maxDelay=219
2008-11-20 21:53:54,474 [Thread-2] INFO
org.jsmpp.examples.StressClient - Request/Response per second :
663/663 of 3410 maxDelay=148
2008-11-20 21:53:56,309 [Thread-2] INFO
org.jsmpp.examples.StressClient - Request/Response per second :
1611/1611 of 5021 maxDelay=945
2008-11-20 21:53:58,630 [Thread-2] INFO
org.jsmpp.examples.StressClient - Request/Response per second :
842/842 of 5863 maxDelay=1324
2008-11-20 21:54:01,684 [Thread-2] INFO
org.jsmpp.examples.StressClient - Request/Response per second :
991/991 of 6854 maxDelay=1789
2008-11-20 21:54:04,802 [pool-1-thread-4] ERROR
org.jsmpp.examples.StressClient - Failed submit short message 'Hello
Hello Hello Hello Hello Hello Hello Hello Hello Hello 0 idx=8293'
org.jsmpp.extra.ResponseTimeoutException: No response after waiting
for 2000 millis when executing submit_sm with sessionId d8d0fb95 and
sequenceNumber 8295
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:261)
at org.jsmpp.session.SMPPSession.submitShortMessage
(SMPPSession.java:318)
at org.jsmpp.examples.StressClient$1.run(StressClient.java:
149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jsmpp.extra.ResponseTimeoutException: No response after
2000 millis
at org.jsmpp.extra.PendingResponse.waitDone
(PendingResponse.java:117)
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:257)
... 5 more
2008-11-20 21:54:04,803 [pool-1-thread-10] ERROR
org.jsmpp.examples.StressClient - Failed submit short message 'Hello
Hello Hello Hello Hello Hello Hello Hello Hello Hello 0 idx=8294'
org.jsmpp.extra.ResponseTimeoutException: No response after waiting
for 2000 millis when executing submit_sm with sessionId d8d0fb95 and
sequenceNumber 8296
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:261)
at org.jsmpp.session.SMPPSession.submitShortMessage
(SMPPSession.java:318)
at org.jsmpp.examples.StressClient$1.run(StressClient.java:
149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jsmpp.extra.ResponseTimeoutException: No response after
2000 millis
at org.jsmpp.extra.PendingResponse.waitDone
(PendingResponse.java:117)
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:257)
... 5 more
2008-11-20 21:54:04,804 [pool-1-thread-5] ERROR
org.jsmpp.examples.StressClient - Failed submit short message 'Hello
Hello Hello Hello Hello Hello Hello Hello Hello Hello 0 idx=8295'
org.jsmpp.extra.ResponseTimeoutException: No response after waiting
for 2000 millis when executing submit_sm with sessionId d8d0fb95 and
sequenceNumber 8297
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:261)
at org.jsmpp.session.SMPPSession.submitShortMessage
(SMPPSession.java:318)
at org.jsmpp.examples.StressClient$1.run(StressClient.java:
149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jsmpp.extra.ResponseTimeoutException: No response after
2000 millis
at org.jsmpp.extra.PendingResponse.waitDone
(PendingResponse.java:117)
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:257)
... 5 more
2008-11-20 21:54:04,804 [pool-1-thread-3] ERROR
org.jsmpp.examples.StressClient - Failed submit short message 'Hello
Hello Hello Hello Hello Hello Hello Hello Hello Hello 0 idx=8296'
org.jsmpp.extra.ResponseTimeoutException: No response after waiting
for 2000 millis when executing submit_sm with sessionId d8d0fb95 and
sequenceNumber 8298
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:261)
at org.jsmpp.session.SMPPSession.submitShortMessage
(SMPPSession.java:318)
at org.jsmpp.examples.StressClient$1.run(StressClient.java:
149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jsmpp.extra.ResponseTimeoutException: No response after
2000 millis
at org.jsmpp.extra.PendingResponse.waitDone
(PendingResponse.java:117)
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:257)
... 5 more
2008-11-20 21:54:04,804 [pool-1-thread-7] ERROR
org.jsmpp.examples.StressClient - Failed submit short message 'Hello
Hello Hello Hello Hello Hello Hello Hello Hello Hello 0 idx=8297'
org.jsmpp.extra.ResponseTimeoutException: No response after waiting
for 2000 millis when executing submit_sm with sessionId d8d0fb95 and
sequenceNumber 8299
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:261)
at org.jsmpp.session.SMPPSession.submitShortMessage
(SMPPSession.java:318)
at org.jsmpp.examples.StressClient$1.run(StressClient.java:
149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jsmpp.extra.ResponseTimeoutException: No response after
2000 millis
at org.jsmpp.extra.PendingResponse.waitDone
(PendingResponse.java:117)
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:257)
... 5 more
2008-11-20 21:54:04,804 [pool-2-thread-1] WARN
org.jsmpp.session.state.SMPPSessionBoundTX - No request with sequence
number 8295 found
2008-11-20 21:54:04,804 [pool-1-thread-9] ERROR
org.jsmpp.examples.StressClient - Failed submit short message 'Hello
Hello Hello Hello Hello Hello Hello Hello Hello Hello 0 idx=8302'
org.jsmpp.extra.ResponseTimeoutException: No response after waiting
for 2000 millis when executing submit_sm with sessionId d8d0fb95 and
sequenceNumber 8304
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:261)
at org.jsmpp.session.SMPPSession.submitShortMessage
(SMPPSession.java:318)
at org.jsmpp.examples.StressClient$1.run(StressClient.java:
149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jsmpp.extra.ResponseTimeoutException: No response after
2000 millis
at org.jsmpp.extra.PendingResponse.waitDone
(PendingResponse.java:117)
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:257)
... 5 more
2008-11-20 21:54:04,804 [pool-1-thread-8] ERROR
org.jsmpp.examples.StressClient - Failed submit short message 'Hello
Hello Hello Hello Hello Hello Hello Hello Hello Hello 0 idx=8298'
org.jsmpp.extra.ResponseTimeoutException: No response after waiting
for 2000 millis when executing submit_sm with sessionId d8d0fb95 and
sequenceNumber 8300
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:261)
at org.jsmpp.session.SMPPSession.submitShortMessage
(SMPPSession.java:318)
at org.jsmpp.examples.StressClient$1.run(StressClient.java:
149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jsmpp.extra.ResponseTimeoutException: No response after
2000 millis
at org.jsmpp.extra.PendingResponse.waitDone
(PendingResponse.java:117)
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:257)
... 5 more
2008-11-20 21:54:04,804 [Thread-2] INFO
org.jsmpp.examples.StressClient - Request/Response per second :
1440/1439 of 8293 maxDelay=2358
2008-11-20 21:54:04,804 [pool-1-thread-6] ERROR
org.jsmpp.examples.StressClient - Failed submit short message 'Hello
Hello Hello Hello Hello Hello Hello Hello Hello Hello 0 idx=8301'
org.jsmpp.extra.ResponseTimeoutException: No response after waiting
for 2000 millis when executing submit_sm with sessionId d8d0fb95 and
sequenceNumber 8303
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:261)
at org.jsmpp.session.SMPPSession.submitShortMessage
(SMPPSession.java:318)
at org.jsmpp.examples.StressClient$1.run(StressClient.java:
149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jsmpp.extra.ResponseTimeoutException: No response after
2000 millis
at org.jsmpp.extra.PendingResponse.waitDone
(PendingResponse.java:117)
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:257)
... 5 more
2008-11-20 21:54:04,804 [pool-1-thread-1] ERROR
org.jsmpp.examples.StressClient - Failed submit short message 'Hello
Hello Hello Hello Hello Hello Hello Hello Hello Hello 0 idx=8300'
org.jsmpp.extra.ResponseTimeoutException: No response after waiting
for 2000 millis when executing submit_sm with sessionId d8d0fb95 and
sequenceNumber 8302
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:261)
at org.jsmpp.session.SMPPSession.submitShortMessage
(SMPPSession.java:318)
at org.jsmpp.examples.StressClient$1.run(StressClient.java:
149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jsmpp.extra.ResponseTimeoutException: No response after
2000 millis
at org.jsmpp.extra.PendingResponse.waitDone
(PendingResponse.java:117)
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:257)
... 5 more
2008-11-20 21:54:04,804 [pool-1-thread-2] ERROR
org.jsmpp.examples.StressClient - Failed submit short message 'Hello
Hello Hello Hello Hello Hello Hello Hello Hello Hello 0 idx=8299'
org.jsmpp.extra.ResponseTimeoutException: No response after waiting
for 2000 millis when executing submit_sm with sessionId d8d0fb95 and
sequenceNumber 8301
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:261)
at org.jsmpp.session.SMPPSession.submitShortMessage
(SMPPSession.java:318)
at org.jsmpp.examples.StressClient$1.run(StressClient.java:
149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jsmpp.extra.ResponseTimeoutException: No response after
2000 millis
at org.jsmpp.extra.PendingResponse.waitDone
(PendingResponse.java:117)
at org.jsmpp.session.AbstractSession.executeSendCommand
(AbstractSession.java:257)
... 5 more
2008-11-20 21:54:04,807 [pool-2-thread-3] WARN
org.jsmpp.session.state.SMPPSessionBoundTX - No request with sequence
number 8296 found
2008-11-20 21:54:04,807 [pool-2-thread-2] WARN
org.jsmpp.session.state.SMPPSessionBoundTX - No request with sequence
number 8297 found
.....................
Could you proivde a class to support 3 × 24 hours stress test ?
By the way, I use my own application with openSMPP2.0 protocol stack
to send message to StressServer,
at the begining the highest TPS is 1000, then the TPS go down 400~
700.
2) Why not use java.nio ?
3) no String encoding ?
In PDUByteBuffer.java:
public int append(String stringValue, boolean nullTerminated) {
if (stringValue != null)
append(stringValue.getBytes());
if (nullTerminated)
append((byte)0);
return bytesLength;
}
In ByteBuffer.java (openSMPP2.0):
private void appendString0(String string, boolean isCString, String
encoding) throws UnsupportedEncodingException {
if ((string != null) && (string.length() > 0)) {
byte[] stringBuf = null;
if (encoding != null) {
stringBuf = string.getBytes(encoding);
} else {
stringBuf = string.getBytes();
}
if ((stringBuf != null) && (stringBuf.length > 0)) {
appendBytes0(stringBuf, stringBuf.length);
}
}
if (isCString) {
appendBytes0(zero, 1); // always append terminating zero
}
}
4) In some interfaces, like PDUComposer, the method parameters is not
objects.
for example:
byte[] submitSm(int sequenceNumber, String serviceType, byte
sourceAddrTon,
byte sourceAddrNpi, String sourceAddr, byte destAddrTon,
byte destAddrNpi, String destinationAddr, byte esmClass,
byte protocolId, byte priorityFlag, String
scheduleDeliveryTime,
String validityPeriod, byte registeredDelivery,
byte replaceIfPresentFlag, byte dataCoding, byte
smDefaultMsgId,
byte[] shortMessage, OptionalParameter...
optionalParameters)
throws PDUStringException;
Maybe it is better:
byte[] submitSm(SubmitSM submitSM)
Regards!!!