Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SMPP: Autoreconnect doesn't work #158

Open
ghost opened this issue Feb 15, 2016 · 7 comments
Open

SMPP: Autoreconnect doesn't work #158

ghost opened this issue Feb 15, 2016 · 7 comments
Assignees

Comments

@ghost
Copy link

ghost commented Feb 15, 2016

I try to see if the reconnection to the server works, so I kill my smpp server and restart it.
the client never manage to restore the connection.

see the log :
17:52:57 INFO o.j.s.AbstractSession - executeSendCommand
17:52:57 INFO o.j.s.AbstractSession - commandID:80000015 status:00000000 sequence:16
17:53:02 INFO o.j.s.AbstractSession - EnquireLinkSender.run() send
17:53:02 INFO o.j.s.AbstractSession - executeSendCommand
17:53:02 INFO o.j.s.AbstractSession - commandID:80000015 status:00000000 sequence:17
17:53:07 INFO o.j.s.AbstractSession - EnquireLinkSender.run() send
17:53:07 INFO o.j.s.AbstractSession - executeSendCommand
17:53:07 INFO o.j.s.AbstractSession - commandID:80000015 status:00000000 sequence:18
17:53:09 WARN o.j.s.SMPPSession - IOException while reading: null
17:53:09 WARN o.j.s.AbstractSession - closing enquireLinkSender Thread[EnquireLinkSender: org.jsmpp.session.SMPPSession@7b3dd80d,5,main]
17:53:09 WARN o.j.s.AbstractSession - closing enquireLinkSender alive:true daemon:true interrupted:false
17:53:09 INFO o.j.s.AbstractSession - JOINED!!!
17:53:09 WARN o.j.s.AbstractSession - closing enquireLinkSender Thread[EnquireLinkSender: org.jsmpp.session.SMPPSession@7b3dd80d,5,]
17:53:09 WARN o.j.s.AbstractSession - closing enquireLinkSender alive:false daemon:true interrupted:false
17:53:09 INFO o.j.s.SMPPSession - PDUReaderWorker stop
17:53:16 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:53:23 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:53:46 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:53:53 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:54:16 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:54:23 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:54:46 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:54:53 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:55:16 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:55:23 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:55:46 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:55:53 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:56:16 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
17:56:23 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting

@garyrussell
Copy link
Contributor

Can you show your configuration? I just tested (using the TestSmppConnection test case and it worked fine for me...

13:26:32.955 INFO  [Thread-0][org.springframework.integration.smpp.session.SmppSessionFactoryBean$AutoReconnectLifecycle] Session to localhost:11111 has been closed. Try to reconnect later
13:26:32.955 INFO  [Thread-2][org.springframework.integration.smpp.session.SmppSessionFactoryBean$AutoReconnectLifecycle] Session to localhost:11111 has been closed. Try to reconnect later
13:26:37.961 INFO  [pool-2-thread-1][org.springframework.integration.smpp.session.SmppSessionFactoryBean$AutoReconnectLifecycle] Reconnecting attempt #1 ...
13:26:37.961 INFO  [pool-4-thread-1][org.springframework.integration.smpp.session.SmppSessionFactoryBean$AutoReconnectLifecycle] Reconnecting attempt #1 ...
13:26:37.963 ERROR [pool-4-thread-1][org.springframework.integration.smpp.session.SmppSessionFactoryBean$AutoReconnectLifecycle] Error happened when trying to connect to localhost:11111. Cause: Connection refused
13:26:37.963 ERROR [pool-2-thread-1][org.springframework.integration.smpp.session.SmppSessionFactoryBean$AutoReconnectLifecycle] Error happened when trying to connect to localhost:11111. Cause: Connection refused
...
13:27:02.981 INFO  [pool-2-thread-1][org.springframework.integration.smpp.session.SmppSessionFactoryBean$AutoReconnectLifecycle] Reconnecting attempt #6 ...
13:27:02.981 INFO  [pool-4-thread-1][org.springframework.integration.smpp.session.SmppSessionFactoryBean$AutoReconnectLifecycle] Reconnecting attempt #6 ...
13:27:03.347 INFO  [pool-4-thread-1][org.springframework.integration.smpp.session.SmppSessionFactoryBean$AutoReconnectLifecycle] Successfully reconnect at attempt #6
13:27:03.347 INFO  [pool-2-thread-1][org.springframework.integration.smpp.session.SmppSessionFactoryBean$AutoReconnectLifecycle] Successfully reconnect at attempt #6

@garyrussell
Copy link
Contributor

If you enable DEBUG logging, you'll get more information about the "error happened" exception.

@garyrussell garyrussell changed the title Autoreconnect doesn't work SMPP: Autoreconnect doesn't work Feb 15, 2016
@ghost
Copy link
Author

ghost commented Feb 16, 2016

to do the test reconnection I "kill -9" my smmp server
so I have this with debug trace level :

08:59:04 DEBUG o.j.s.SMPPSession - No activity notified, sending enquireLink
08:59:04 INFO o.j.s.AbstractSession - EnquireLinkSender.run() send
08:59:04 INFO o.j.s.AbstractSession - executeSendCommand
08:59:04 DEBUG o.j.DefaultPDUSender - Sending SMPP message 00 00 00 10 00 00 00 15 00 00 00 00 00 00 00 07
08:59:04 DEBUG o.j.s.PDUProcessTask - Received SMPP message PDUHeader(16, 80000015, 00000000, 7)
08:59:04 DEBUG o.j.s.AbstractSession - enquire_link response received
08:59:04 INFO o.j.s.AbstractSession - commandID:80000015 status:00000000 sequence:7
08:59:08 WARN o.j.s.SMPPSession - IOException while reading: null
08:59:08 DEBUG o.j.s.AbstractSession - AbstractSession.close() called
Exception in thread "PDUReaderWorker: org.jsmpp.session.SMPPSession@7ab042ba" java.lang.AbstractMethodError
at org.jsmpp.session.AbstractSessionContext.fireStateChanged(AbstractSessionContext.java:79)
at org.jsmpp.session.SMPPSessionContext.changeState(SMPPSessionContext.java:61)
at org.jsmpp.session.AbstractSessionContext.close(AbstractSessionContext.java:62)
at org.jsmpp.session.AbstractSession.close(AbstractSession.java:208)
at org.jsmpp.session.SMPPSession$PDUReaderWorker.readPDU(SMPPSession.java:626)
at org.jsmpp.session.SMPPSession$PDUReaderWorker.run(SMPPSession.java:582)
08:59:09 DEBUG o.j.s.AbstractSession - EnquireLinkSender stop
08:59:17 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting
08:59:24 ERROR o.s.i.s.s.SmppSessionFactoryBean$AutoReconnectLifecycle - Error happened when trying to connect to localhost:20775. Cause: Failed connecting

@ghost
Copy link
Author

ghost commented Feb 16, 2016

may It can be an effect : I replace the version of the deprecated jsmpp (see https://code.google.com/archive/p/jsmpp/) by the new one. To do this I have change the pom like this :

        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-smpp</artifactId>
            <version>1.0.0.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>com.googlecode.jsmpp</groupId>
                    <artifactId>jsmpp</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.jsmpp</groupId>
            <artifactId>jsmpp</artifactId>
            <version>2.2.3</version>
        </dependency>

the SessionListener interface has change :
from :
public void onStateChange(SessionState newState, SessionState oldState, Object arg2)
to
public void onStateChange(SessionState newState, SessionState oldState, Session source)

@ghost ghost closed this as completed Feb 16, 2016
@ghost ghost reopened this Feb 16, 2016
@garyrussell garyrussell self-assigned this Feb 16, 2016
@garyrussell
Copy link
Contributor

We don't currently support that version of the client; we'll use this issue to update to it when we get some spare time - of course, contributions are always welcome.

@ghost
Copy link
Author

ghost commented Feb 16, 2016

I'll try to do this contribution but I'm not yet familiar with gradle environment I usually use maven ;-)

@garyrussell
Copy link
Contributor

This quick hack seems to work (at least all the tests pass). Note that I didn't provide implementations (yet) for the new methods on the session.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant