Several exceptions

Smpp v3.4 client

Moderator: alt

Locked
rom
Posts: 3
Joined: Thu Jan 21, 2010 8:30 am

Several exceptions

Post by rom » Thu Jan 21, 2010 8:59 am

Hi alt.
There are several exceptions in my log files after 24 hours of working smpp client.
1.
IsConnected error
Exception:Thread was being aborted.
TargetSite:Int32 select(Int32, IntPtr[], IntPtr[], IntPtr[], System.Net.Sockets.TimeValue ByRef)
StackTrace: at System.Net.UnsafeNclNativeMethods.OSSOCK.select(Int32 ignoredParameter, IntPtr[] readfds, IntPtr[] writefds, IntPtr[] exceptfds, TimeValue& timeout)
at System.Net.Sockets.Socket.Poll(Int32 microSeconds, SelectMode mode)
at ALT.SMS.SmppClient.get_IsConnected()
Data:System.Collections.ListDictionaryInternal

2.
Receive fail
Exception:An existing connection was forcibly closed by the remote host
TargetSite:Int32 EndReceive(System.IAsyncResult)
StackTrace: at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
at ALT.SMS.SmppClient.eMfdLFjKR(IAsyncResult )
Data:System.Collections.ListDictionaryInternal

After this one i get the "ESME_RBINDFAIL" status for a long time and then the following exception:

IsConnected error
Exception:Object reference not set to an instance of an object.
TargetSite:Boolean get_IsConnected()
StackTrace: at ALT.SMS.SmppClient.get_IsConnected()
Data:System.Collections.ListDictionaryInternal
alt
Site Admin
Posts: 988
Joined: Tue Apr 25, 2006 9:45 am

Post by alt » Mon Feb 01, 2010 9:45 am

Please could you try last version 2.8.1.

ESME_RBINDFAIL error occurs when an access has a limit of concurrent connections. Because of network problems SMPP server still think that client is connected and does not allow to bind with second connection.
rom
Posts: 3
Joined: Thu Jan 21, 2010 8:30 am

Post by rom » Mon Feb 01, 2010 4:31 pm

Hi alt.
I have donload the 2.8.1 version. It is working for 4 days without any errors, thanx. But i have one more question:
Sometimes i can't get the delivery report in evDeliverSmComplete event.
SmppClient.GetMessageText(data.UserDataPdu.ShortMessage, data.DataCoding); return the empty string because some of the messageID in delivery reports has a different size. SMSC administrator said that the messageID may contains up to 64 bytes. Could you please tell me how can i convert data.UserDataPdu.ShortMessage data to ascii string?
System.Text.Encoding.ASCII.GetString have no result...
Thank you.
alt
Site Admin
Posts: 988
Joined: Tue Apr 25, 2006 9:45 am

Post by alt » Mon Feb 01, 2010 5:01 pm

Hi rom,

Can you post here received bytes from the event evReceiveData ?
rom
Posts: 3
Joined: Thu Jan 21, 2010 8:30 am

Post by rom » Mon Feb 01, 2010 5:25 pm

Its the packet data when i receive delivery report:
0000010e00000005000000000000000b000101373730313735353534303100000131373
532000400000000000000009a69643a3730313735353534303131323635303434383239
333331313030342d3134363337393833363334303835207375623a30303120646c76726
43a303031207375626d697420646174653a3130303230313233323020646f6e65206461
74653a3130303230313233323020737461743a44454c49565244206572723a303030205
46578743a0500033b020174657374207465737420746573740427000102001e002b3730
313735353534303131323635303434383239333331313030342d3134363337393833363
334303835002001000c373730313030303232303600

and when i can't get it:
0000010e00000005000000000000000b000101373730313735353534303100000131373
532000400000000000000009a69643a3730313735353534303131323635303434373034
373532313030382d3134363337393833363334303835207375623a30303120646c76726
43a303031207375626d697420646174653a3130303230313233313820646f6e65206461
74653a3130303230313233313820737461743a44454c49565244206572723a303030205
46578743a050003efbfbd02017465737420746573742074650427000102001e002b37303
13735353534303131323635303434373034373532313030382d31343633373938333633
34303835002001000c373730313030303232303600
alt
Site Admin
Posts: 988
Joined: Tue Apr 25, 2006 9:45 am

Post by alt » Mon Feb 01, 2010 7:25 pm

fixed in version 2.8.2

Note that you can also get message Id using code

Code: Select all

TLV receiptedMessageId = data.Optional[OptionalTags.ReceiptedMessageId];
if (receiptedMessageId != null)
{
      string messageId = SmppClient.GetMessageText(receiptedMessageId.Value, DataCodings.ASCII);
}
Locked