Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

BlackBerry Web Services

Reply
Highlighted
New Developer
Posts: 6
Registered: ‎06-25-2009
My Device: Not Specified

PAP Push message swallowed/lost on device?

[ Edited ]

Hello,

 

I'm testing how PAP Push is implemented and find one strange thing.

 

When I call BES to send a push notification, I get proper response from BES and notification on device.  Also, BES is calling back when message is actually sent to device.  Everything seems OK.

 

But, if there's no application on device listening to that port, BES is still saying, that message is delivered!  How this is possible?  I suppose, it was queued on device (I see that device was communicating with server, so it did receive the message really), but if application on device is started afterwards, it gets nothing (so, message is not queued?).

 

I use XML to post notification to BES, there's a parameter:

 

<quality-of-service delivery-method="unconfirmed"/>

If I change it to confirmed; I get error response 3007: Specified delivery method not possible.

 

So, for now, BES always calls back to say, that message is delivered, disregarding if something consumed it on device or not.  Is it how it is supposed to work?  I mean, in TCP (which is guaranteed communication) connection to closed port results in error on initiator's side; here there seems no difference, even though BES does callback (what for?).

 

Device is BlackBerry Bold 9000 v4.6.0.162 (platform 4.0.0.155)

BES v4.1.3

 

Please let me know if more information or code is required.

Message Edited by port443 on 09-11-2009 11:15 AM
BlackBerry Development Advisor
Posts: 15,806
Registered: ‎07-09-2008
My Device: BlackBerry PRIV
My Carrier: Bell

Re: PAP Push message swallowed/lost on device?

There are 2 different reliability level you can use when submitting a push.

 

Transport Level:  When using Transport level reliability a BlackBerry Enterprise Server sends a notification to your application when a push message has been delivered to a BlackBerry smartphone.  This just means the message arrived on the device itself.  Even if the application that should received the message has not been installed or is not running, this will count as a success.

 

Application Level:  When using Application level reliability the application receiving the data must acknowledge receipt in order for the BlackBerry Enterprise Server to confirm that the push message was successfully delivered.  In order to do this the application must implement the MDSPushInputStream and use its accept() method to verify that it received the data.  The port the application is listening on must also be configured on the BlackBerry Enterprise Server, or else you'll get the error that "The specified delivery method is not possible".  You can read more about that error here:

 

Support - The specified delivery method is not possible
Article Number: DB-00522

http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800451/800662/Support...

Mark Sohm
BlackBerry Development Advisor

Please refrain from posting new questions in solved threads.
Problem solved? Click the Accept As Solution button.
New Developer
Posts: 6
Registered: ‎06-25-2009
My Device: Not Specified

Re: PAP Push message swallowed/lost on device?

Thanks Mark.  Shall try this.

 

So, I have to use same request parameters, or something needs to be changed?

 

Current header is as follows:

<pap> <push-message push-id="pushID:0123456789@abc.com" ppg-notify-requested-to="http://myserver:8080"> <address address-value="WAPPUSH=0123ABCD:100/TYPE=USER@rim.net"/> <quality-of-service delivery-method="unconfirmed"/> </push-message> </pap>

 


 

BlackBerry Development Advisor
Posts: 15,806
Registered: ‎07-09-2008
My Device: BlackBerry PRIV
My Carrier: Bell

Re: PAP Push message swallowed/lost on device?

Change unconfirmed to application-level to switch to application level reliability.  You can use confirmed for transport level reliability.
Mark Sohm
BlackBerry Development Advisor

Please refrain from posting new questions in solved threads.
Problem solved? Click the Accept As Solution button.