Hi,
Sockets in kannel work fine for thousands of users. If the SMSc is right,
troubleshoot your OS. Kannel doesn't do low-level I/O. It just opens the
socket and the OS handles all TCP handshake.
This is not a kannel issue.
BR,
Nikos
----- Original Message -----
From: "Bogdan Irimia" <[email protected]>
To: "Nikos Balkanas" <[email protected]>; <[email protected]>
Sent: Monday, September 06, 2010 2:27 PM
Subject: Re: Issue with UCP - reconnection problem
Dear Nikos
Thank you for your reply.
As I stated in the message, there is not a number of sockets issue, but an
issue regarding the state of the socket.
The state the socket is in is SYN SENT, and even if SYN ACK message is
sent back by SMSC (checket with Wireshark/tcpdump), Kannel does not send
ACK. So it's not about the limits in ulimit.conf, it's an issue at socket
protocol implementation.
Netstat gives the following output (not wc, of course):
tcp 0 1 93.113.15.3:2878 217.10.194.192:x11-1
SYN_SENT
Regards,
Bogdan
--------------------------------------------------
From: "Nikos Balkanas" <[email protected]>
Sent: Monday, September 06, 2010 2:20 PM
To: "Bogdan Irimia" <[email protected]>; <[email protected]>
Subject: Re: Issue with UCP - reconnection problem
Hi,
I remember replying to you again.
1) No, it is not normal to close and open connections every time you have
to send an SMS. In fact it wastes a lot of resources (sockets and CPU).
Talk to VF, it is their issue.
2) Type:
netstat -a | grep <vodafone-ip> | wc -l
when having a problem. See if you are running low on sockets. See in what
state they are left. If they are not closing sockets properly talk again
to VF. In linux you can increase limit in ulimit.conf. In solaris use
ndi. This (limits) is not a kannel issue but an OS one.
Finally if they don't clean up their act, try to restart kannel every 24
hrs from cron.
I hope i don't have to reply again about the same thing.
BR,
Nikos
----- Original Message -----
From: Bogdan Irimia
To: [email protected]
Sent: Monday, September 06, 2010 12:06 PM
Subject: Issue with UCP - reconnection problem
Hello
I'm reposting this same issue: I have a problem with the UCP connection:
- during "normal" operation, I get these messages every 10 minutes:
2010-08-30 15:57:09 [2280] [7] DEBUG: EMI2[vodafone-8878]: clear_sent
called
2010-08-30 15:57:09 [2280] [7] INFO: EMI2[vodafone-8878]: connecting to
Primary SMSC
I suppose this is because the SMSC closes connection after 10 minutes of
inactivity (according to Vodafone, with whom we are testing). I
configured the account with keepalive = 50 but no improvement. But I am
able to send and receive messages normally.
- after a while (2 or 3 days) I get these messages in the log:
2010-08-30 16:07:41 [2280] [7] INFO: EMI2[vodafone-8878]: connecting to
Primary SMSC
2010-08-30 16:08:02 [2280] [7] ERROR: connect failed
2010-08-30 16:08:02 [2280] [7] ERROR: System error 110: Connection timed
out
2010-08-30 16:08:02 [2280] [7] ERROR: error connecting to server
`217.10.194.192' at port `6001'
2010-08-30 16:08:02 [2280] [7] ERROR: EMI2[vodafone-8878]: opening TCP
connection to 217.10.194.192 failed
2010-08-30 16:08:02 [2280] [7] ERROR: EMI2[vodafone-8878]: Couldn't
connect to SMS center (retrying in 10 seconds).
During these messages, the port is in this state (using netstat):
tcp 0 1 93.113.15.3:2878 217.10.194.192:x11-1 SYN_SENT
Also, with Wireshark I noticed that Kannel sends SYN packet to server
port, the server returns SYN ACK, but Kannel does not return ACK. Thus,
the connection isn't made successful.
So there are two questions:
- is it true that an UCP client should only connect when sending a
message? during inactivity, connection can be closed, and any incoming
messages could be received using receive-port?
- why does Kannel fails to reconnect after a while, due to failing in
sending ACK message back to connecting port?
Thank you!