on 02-06-2014 7:43 PM
Hello Experts,
I am trying to enable push for an Agentry (6.x) application (CRM Mobile Sales) for iOS client. We are on Agentry version 6.0.38.3
I have configured the push scenario, exchange objects and data objects in the SMART config panel.
I have also configured the pushes in the Agentry application as shown in the attachment here.
I do see the push instances being registered in the Push monitoring queue for the given object however I do not see any push messages on the iOS device and I'm seeing the below "Communication Error" in the logs:
2014/02/06 12:37:35.775: | + User=testuser |
2014/02/06 12:37:35.775: | + User=testuser |
2014/02/06 12:37:35.775: | Original Business Object Push message 1 status changed to 'Trying' |
2014/02/06 12:37:35.777: | + User=testuser |
2014/02/06 12:37:35.777: | Message attempt 1 of 1 failure cause: 3 |
2014/02/06 12:37:35.789: | + Push=LeadsPush |
2014/02/06 12:37:35.789: | Message failure cause: 3 without a response |
2014/02/06 12:37:35.789: | + Server=Agentry |
2014/02/06 12:37:35.789: | + Push=LeadsPush |
2014/02/06 12:37:35.789: | Push 'LeadsPush': Client has failed to receive 1 push items, reason: communication error ... |
2014/02/06 12:37:35.790: | Push 'LeadsPush': No Push Error Steps to run |
2014/02/06 12:37:35.790: | Push 'LeadsPush': Client has failed to receive 1 push items, reason: communication error ... |
2014/02/06 12:37:35.790: | Push 'LeadsPush': No Push Error Steps to run |
2014/02/06 12:37:35.790: | + User=testuser |
2014/02/06 12:37:35.790: | Message failure cause: 3 |
2014/02/06 12:37:35.790: | + User=testuser |
2014/02/06 12:37:35.790: | Original Business Object Push message 1 status changed to 'Failed' |
FYI - The client session was connected to the server when this error occurred.
Could it be because of the Port settings for the Push config?
I read that the default port for Push communication from the server is 7001 but I'm unable to change it in the config (See attachment: Push Configuration)
Please share any ideas to get this working.
Thanks,
Vishal
Vishal,
You mentioned that the push was working fine if the application was actively using the application but when it is in the background it is not working. When iOS puts the application in the background it is essentially suspending the application so that it is unable to directly receieve the push data. Hence the communication errors.
When this occurs, the Agentry client can send APNS notiications to the device which will popup for the user independent of what app is running and when the user returns to the Agentry client the regular push can then run to send the data to the device.
If you are using a branded client you would have also had to setup and configure the APNS certificates for this to work. There is also a log file for the APNS communications with Apple that you should enable (with the most detail - Low Setting) and can look at to see if the message is being sent.
Keep in mind that you may need to have additional configuration done at the network level to enable the APNS communications to flow as it may also be blocked by firewalls (that's my problem at my office).
--Bill
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Bill,
Thank you for the APNS info. We were missing this certificate for the push to work while app is running in the background. Since we are using a branded client, I performed the following steps:
1. Get a .p12 APN certificate for our app
2. Updated the certificate password in Agentry.ini (apnsCertificatePassword in Configuration section)
3. Copied the .p12 in the apnsCertificates directory and removed other out of the box syclo certificates.
Now I get a SSL socket error when I try to restart the Agentry server
error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure, ..\Socket\openSSLsockets.cpp#277:OpenSSLcontext::OpenSSLcontext
From the forums I read, I think it is not able to verify the certificate in the store, but I'm not sure what am I missing here?
===
On the other hand, I also tried to validate push with an unbranded client and I see the following error:
2014/02/11 14:30:17.772: Attempt to connect to APNS
gateway at gateway.push.apple.com:2195 (17.172.233.149:2195)
2014/02/11 14:30:17.803: SSL error:
error:2006707C:BIO routines:BIO_ctrl:broken pipe
2014/02/11 14:30:17.803: SSL error:
error:2006F07C:BIO routines:BIO_read:broken pipe
2014/02/11 14:30:17.803: caught SSL Socket Error
exception SSL Socket Error. Closing gateway socket.
2014/02/11 14:30:17.803: caught SSL Socket Error exceptionSSL Socket Error while attemping Apple Push Notification
Is there any configuration required for the unbranded client to work with APN certi.?
Thanks,
Vishal
Hi Steve,
I changed the PasswordEncoded to False and it now starts the server successfully. I also see the following success log in the PushService log file:
"1 APNS certificates succesfully loaded"
However I still see the same communicate error for Push alerts when the app is not running in the background.
2014/02/12 09:17:28.824: Push 'LeadsPush': No read steps 2014/02/12 09:17:28.824: Push 'LeadsPush': there is data for 1 users 2014/02/12 09:17:28.824: Push 'LeadsPush': User 'testuser' has data 2014/02/12 09:17:28.824: Push 'LeadsPush': Adding retrieve notification for User 'testuser' 2014/02/12 09:17:28.824: Push 'LeadsPush': User 'testuser' added notification for Objects 2014/02/12 09:17:28.824: Push 'LeadsPush': added notification for Objects 2014/02/12 09:17:28.824: Push 'LeadsPush': User 'testuser' has 1 objects, 0 deletes, and 1+0=1 notifications 2014/02/12 09:17:28.824: Push 'LeadsPush': 1 objects, 0 deletes, and 1+0=1 notifications 2014/02/12 09:17:28.824: + Push=LeadsPush 2014/02/12 09:17:28.824: Push 'LeadsPush': message sent 2014/02/12 09:17:28.824: Push 'LeadsPush': Complete 2014/02/12 09:17:28.824: + Thread=5072 2014/02/12 09:17:28.824: + Thread Pool=Server 2014/02/12 09:17:28.824: + WorkFunction=0000000013BCEED0 2014/02/12 09:17:28.824: + User=testuser 2014/02/12 09:17:28.824: + User=testuser 2014/02/12 09:17:28.824: + Push=LeadsPush 2014/02/12 09:17:28.824: + Server=Agentry 2014/02/12 09:17:28.824: + Push=LeadsPush 2014/02/12 09:17:28.824: Push 'LeadsPush': Client has failed to receive 1 push items, reason: communication error ... 2014/02/12 09:17:28.824: Push 'LeadsPush': No Push Error Steps to run 2014/02/12 09:17:28.824: Push 'LeadsPush': Client has failed to receive 1 push items, reason: communication error ... 2014/02/12 09:17:28.824: Push 'LeadsPush': No Push Error Steps to run 2014/02/12 09:17:28.824: + User=testuser 2014/02/12 09:17:28.824: Message failure cause: 3 2014/02/12 09:17:28.824: + User=testuser 2014/02/12 09:17:28.824: Original Business Object Push message 2 status changed to 'Failed'
Vishal,
That error means that the password provided in the Agentry.ini doesn't work for the .p12 certificate in the apns directory. Once I correctly set the apnsCertificatePassword and the apnsCertificatePasswordEncoded=False my server starts without error.
The other errors with the generic clients could indicate that your network is blocking access to the apple gateway server. I will have to try to see if I can duplicate as I know my network was blocking me the last time I tested this with a generic client.
--Bill
Bill,
I am able to telnet the apple push servers at their default port from the Agentry server as shown below.
|
|
|
Does that mean the network settings are okay or you think there could be more to it?
Thanks,
Vishal
Vishal,
I suspect if you can telnet to the port that it is not being blocked and you should be good to go. I am unable to telnet to the port internally.
After some additional testing, I also was able to get my branded client successfully receiving push notifications. It is important to note that the name of the .p12 file must match the app id that it is assocaited with. In your ThirdPartyPushService-APNS.log file you should see something similar to the following after the iPad client successfully connects to the Agentry server and stays connected for push.
2014/02/12 11:15:24.243: Opening log file
2014/02/12 11:15:24.243: + Thread=3388
2014/02/12 11:15:24.243: + Server=Agentry
2014/02/12 11:15:24.243: + Server=Agentry
2014/02/12 11:15:24.243: + ThirdPartyPushService=APNS
2014/02/12 11:15:24.243: Initializing APNS with certificates in apnsCertificates
2014/02/12 11:15:24.246: + ThirdPartyPushService=APNS
2014/02/12 11:15:24.246: + iOS Bundle ID=com.syclo.Agentry.ios.enterpriseDSW
2014/02/12 11:15:24.246: + APNS Gateway=gateway.push.apple.com
2014/02/12 11:15:24.246: Initializing APNS for com.syclo.Agentry.ios.enterpriseDSW, production, with certificate from apnsCertificates\.\com.syclo.Agentry.ios.enterpriseDSW.p12
2014/02/12 11:15:24.251: Loading certificates from Windows certificate store
2014/02/12 11:15:24.266: 1 APNS certificates succesfully loaded
2014/02/12 11:17:25.000: + Thread=10256
2014/02/12 11:17:25.000: + Thread Pool=Server
2014/02/12 11:17:25.000: + WorkFunction=0000000015D9EED0
2014/02/12 11:17:25.000: + User=push
2014/02/12 11:17:25.000: + Server=Agentry
2014/02/12 11:17:25.000: + ThirdPartyPushService=APNS
2014/02/12 11:17:25.000: + iOS Bundle ID=com.syclo.Agentry.ios.enterpriseDSW
2014/02/12 11:17:25.000: + APNS Gateway=gateway.push.apple.com
2014/02/12 11:17:25.000: Device sent CFBundleIdentifier com.syclo.Agentry.ios.enterpriseDSW, looking for com.syclo.Agentry.ios.enterpriseDSW
2014/02/12 11:17:25.001: Device specifies production gateway, looking for production gateway
2014/02/12 11:17:25.001: Will send push via this APNS connection
2014/02/12 11:17:25.001: APNS device token 84B09AC9B39046D3C83802E9EFE0E43A56E3D1D5999D62990CC4F19D1A764DF2 (length 32)
The key line is the "Will send push via this APNS connection" indicating the Agentry server found a valid matching apns certificate for the client.
Then when I push data to my client and it is not the active app I get the Apple push notification message popup. Then when I selected the notification to return to the application the push ran and the normal popup messages appeared.
--Bill
Hi Expert,
We are using an Agentry application deployed on SMP 3.0 SP07 and trying to use Push Notification for Ipad.
We have configured Push Notification settings on Agentry, cockpit and APNS certificate.
But we are getting error in server log "ServiceOrderPushSteplet: steplet execution failed".
Please provide your suggestions.
Thanks,
Vijay
Vijay,
Please create a Discussion marked as a Question. Not only so others may benefit from your solution once it is found, but also because you will have more folks looking to provide a solution when your issue has the greater visibility of a Discussion. Also suggest that you visit the Getting Started link at the top right of each SCN page for help with creating a good Discussion.
Thanks,
--Bill
Vishal,
The push port is kept in your JavaBE.ini file in the Agentry server directory, not in the editor configuration. Locate it there and make sure that port is not already used in your Agentry.ini or by another application. Any changes to either file will require a server restart.
Jason Latko - Senior Product Developer at SAP
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Vishal,
Sorry, I was mistaken. The port is kept in your Agentry.ini file in the XML Backend section as listenOn. Here is a portion of the out-of-box Agentry.ini that at one point shipped with the Sales product:
[HTTPXML-3]
name=HTTP-XML Back End
authenticationCertificateStore=MY
authenticationCertificateStorePassword=
authenticationCertificateStorePasswordEncoded=false
autoDequote=true
baseURL=http://OLDALE:8282
basicAuthenticationPassword=
basicAuthenticationPasswordEncoded=false
basicAuthenticationUserID=
constantsFile=httpxml_sd.ini
enableAuthentication=false
enablePreviousUserAuthentication=false
httpConnectTimeout=60
httpReceiveTimeout=300
httpResolveTimeout=60
httpSendTimeout=300
listenOn=8282
You may need to adjust these communications settings to fit your backend system.
Jason Latko - Senior Product Developer at SAP
Vishal,
In the editor, look at your Transmit Configurations. Choose the connection that you are using for your project and look at the Session tab. Turn on the "Stay logged into server" check box so the clients will stay logged into the server and will be able to receive pushes. Adjust any other settings on that tab as needed.
If these posts are helpful, please mark as helpful or correct so others will know when the question has been answered. Thanks!
Jason Latko - Senior Product Developer at SAP
Jason / Steve,
As shown in my attachments, I do have the transmit config setup to keep the user logged in. As you may also notice, I've set the inactive timeout to 24 hours. But still I am not able to receive alerts when the app is minimized and running in the background.
What I also notice is that the push polling is somehow trying to use the SQL backend. We are NOT using SQL backends for this implemented push although we do have SQL connections for other Agentry objects in the app. Not sure if the connection errors have anything to do with these SQL connections.
2014/02/07 13:11:38.975: + Server=Agentry
2014/02/07 13:11:38.975: Push 'LeadsPush': Beginning
2014/02/07 13:11:38.975: Push 'LeadsPush': 1 users eligible for this push
2014/02/07 13:11:38.975: Push 'LeadsPush': Getting back end connections
2014/02/07 13:11:38.991: + BackEnd=SQL-7
2014/02/07 13:11:38.991: Connected as sa1 to database db_qa1
2014/02/07 13:11:39.006: + BackEnd=SQL-8
2014/02/07 13:11:39.006: Connected as sa2 to database db_qa2
2014/02/07 13:11:39.006: Push 'LeadsPush': Beginning transactions for Retrieval and Removal steps
2014/02/07 13:11:39.007: + BackEnd=SQL-7
2014/02/07 13:11:39.007: Begin database transaction
2014/02/07 13:11:39.007: + BackEnd=SQL-8
2014/02/07 13:11:39.007: Begin database transaction
2014/02/07 13:11:39.007: Push 'LeadsPush': Executing 1 Retrieval steps
2014/02/07 13:11:39.007: Push 'LeadsPush': Executing Push Retrieval step 'Z_LeadPushSteplet'
2014/02/07 13:11:39.007: Push: Executing Push 'LeadsPush' Retrieval step 'Z_LeadPushSteplet' for all 1 users
2014/02/07 13:11:39.296: Push 'LeadsPush': Retrieval steps 0 objects and/or notifications
Hello Jason ! Im glad to see you again,
I having a similar issue about sending the Apns notificacions,
I hope you can help me with this problem,
Im implemting Sap Sales Manager 2.5 on Agentry (6.1.X) and its working properly,
i just followed the Guide ( How to Guie - Enabling Push, Atachment.pdf).
We are working with APPLE IOS DEVICES (IPAD 3)
This is what i did :
[HTTPXML-2]
name=HTTP-XML Back End
authenticationCertificateStore=MY
authenticationCertificateStorePassword=
authenticationCertificateStorePasswordEncoded=false
autoDequote=true
baseURL=http://172.25.131.25:8282
basicAuthenticationPassword=
basicAuthenticationPasswordEncoded=false
basicAuthenticationUserID=
constantsFile=httpxml_sd.ini
enableAuthentication=false
enablePreviousUserAuthentication=false
httpConnectTimeout=60
httpReceiveTimeout=300
httpResolveTimeout=60
httpSendTimeout=300
listenOn=8282
timeout=300
timeZoneName=
useSSL=false
xmlAllowXSLTScript=true
xmlNamespaces=
xmlResolveExternals=true
02. The certificates a have been loaded correctly, all those files are in the folder apncertificate.
The log files tells me that those files have been loaded to the server properly, on the log file
(ThirdPartyPushService-APNS.log) describe this description:.
------------------------------ THIRDPARTYPUSHSERVICE-APNS.LOG ------------
2014/06/13 14:27:02.170: Opening log file
2014/06/13 14:27:02.170: + Thread=8660
2014/06/13 14:27:02.170: + Server=Agentry
2014/06/13 14:27:02.170: + Server=Agentry
2014/06/13 14:27:02.170: + ThirdPartyPushService=APNS
2014/06/13 14:27:02.170: Initializing APNS with certificates in apnsCertificates
2014/06/13 14:27:02.171: + ThirdPartyPushService=APNS
2014/06/13 14:27:02.171: + iOS Bundle ID=com.syclo.Agentry
2014/06/13 14:27:02.171: + APNS Gateway=gateway.sandbox.push.apple.com
2014/06/13 14:27:02.171: Initializing APNS for com.syclo.Agentry, development (sandbox), with certificate from apnsCertificates\.\com.syclo.Agentry-sandbox.p12
2014/06/13 14:27:02.176: Loading certificates from Windows certificate store
2014/06/13 14:27:02.180: + ThirdPartyPushService=APNS
2014/06/13 14:27:02.180: + iOS Bundle ID=com.syclo.Agentry.ios.enterpriseA
2014/06/13 14:27:02.180: + APNS Gateway=gateway.push.apple.com
2014/06/13 14:27:02.180: Initializing APNS for com.syclo.Agentry.ios.enterpriseA, production, with certificate from apnsCertificates\.\com.syclo.Agentry.ios.enterpriseA.p12
2014/06/13 14:27:02.185: Loading certificates from Windows certificate store
2014/06/13 14:27:02.189: + ThirdPartyPushService=APNS
2014/06/13 14:27:02.189: + iOS Bundle ID=com.syclo.Agentry.ios.enterpriseB
2014/06/13 14:27:02.189: + APNS Gateway=gateway.push.apple.com
2014/06/13 14:27:02.189: Initializing APNS for com.syclo.Agentry.ios.enterpriseB, production, with certificate from apnsCertificates\.\com.syclo.Agentry.ios.enterpriseB.p12
2014/06/13 14:27:02.194: Loading certificates from Windows certificate store
2014/06/13 14:27:02.198: + ThirdPartyPushService=APNS
2014/06/13 14:27:02.198: + iOS Bundle ID=com.syclo.Agentry.ios.enterpriseC
2014/06/13 14:27:02.198: + APNS Gateway=gateway.push.apple.com
2014/06/13 14:27:02.198: Initializing APNS for com.syclo.Agentry.ios.enterpriseC, production, with certificate from apnsCertificates\.\com.syclo.Agentry.ios.enterpriseC.p12
2014/06/13 14:27:02.203: Loading certificates from Windows certificate store
2014/06/13 14:27:02.208: + ThirdPartyPushService=APNS
2014/06/13 14:27:02.208: + iOS Bundle ID=com.syclo.Agentry.ios.enterpriseD
2014/06/13 14:27:02.208: + APNS Gateway=gateway.push.apple.com
2014/06/13 14:27:02.208: Initializing APNS for com.syclo.Agentry.ios.enterpriseD, production, with certificate from apnsCertificates\.\com.syclo.Agentry.ios.enterpriseD.p12
2014/06/13 14:27:02.212: Loading certificates from Windows certificate store
2014/06/13 14:27:02.216: + ThirdPartyPushService=APNS
2014/06/13 14:27:02.216: + iOS Bundle ID=com.syclo.Agentry
2014/06/13 14:27:02.216: + APNS Gateway=gateway.push.apple.com
2014/06/13 14:27:02.216: Initializing APNS for com.syclo.Agentry, production, with certificate from apnsCertificates\.\com.syclo.Agentry.p12
2014/06/13 14:27:02.221: Loading certificates from Windows certificate store
2014/06/13 14:27:02.226: 6 APNS certificates succesfully loaded
--------------------------------------- THIRDPARTYPUSHSERVICE-APNS.LOG ------------
3. After i have been created a Activity, the server Back End (CRM) send a few message to the HTTPXML-02 as it show on this text.
2014/06/13 14:38:43.012: + Thread=6428
2014/06/13 14:38:43.012: + Thread Pool=Server
2014/06/13 14:38:43.012: + WorkFunction=00000000484BEF00
2014/06/13 14:38:43.012: + BackEnd=HTTPXML-2
2014/06/13 14:38:43.012: processing
2014/06/13 14:38:43.013: Incoming: NULL context node
2014/06/13 14:38:43.013: received message, 1 objects
2014/06/13 14:38:43.013: + BackEnd=Java-1
2014/06/13 14:38:43.013: com.syclo.sap.ServiceEventSession::beginReadSteps::::begin
2014/06/13 14:38:43.014: + BackEnd=Java-1
2014/06/13 14:38:43.014: com.syclo.sap.ServiceEventSession::beginReadSteps::::--------------------------------
2014/06/13 14:38:43.014: Executing 1 Read steps
2014/06/13 14:38:43.014: Executing ServiceEvent Read step 'ActivityPushListenerSteplet'
2014/06/13 14:38:43.014: Service Event: Executing Service Event 'ActivityPushHTTPListener' Read step 'ActivityPushListenerSteplet'
2014/06/13 14:38:43.014: Service Event: Executing Service Event 'ActivityPushHTTPListener' Read step 'ActivityPushListenerSteplet'
2014/06/13 14:38:43.014: + BackEnd=Java-1
2014/06/13 14:38:43.014: Backend step is configured as a Java Class; using Java class com.syclo.sap.component.activity.steplet.ActivityPushListenerSteplet
2014/06/13 14:38:43.014: Using Java Class com.syclo.sap.component.activity.steplet.ActivityPushListenerSteplet for ActivityPushListenerSteplet
2014/06/13 14:38:43.014: + BackEnd=Java-1
2014/06/13 14:38:43.014: com.syclo.sap.component.activity.stephandler.ActivityPushListenerStepHandler::run::706::::begin
2014/06/13 14:38:43.016: + BackEnd=Java-1
2014/06/13 14:38:43.016: com.syclo.sap.component.activity.stephandler.ActivityPushListenerStepHandler::run::706::::debug marker - before addToPushNotificationHash
2014/06/13 14:38:43.016: + BackEnd=Java-1
2014/06/13 14:38:43.016: com.syclo.sap.component.activity.stephandler.ActivityPushListenerStepHandler::run::706::::debug marker - after addToPushNotificationHash
2014/06/13 14:38:43.017: + BackEnd=Java-1
2014/06/13 14:38:43.017: com.syclo.sap.ServiceEventSession::endReadSteps::::begin
2014/06/13 14:38:43.017: + BackEnd=Java-1
2014/06/13 14:38:43.017: com.syclo.sap.ServiceEventSession::endReadSteps::::--------------------------------
2014/06/13 14:38:43.017: Beginning transactions
2014/06/13 14:38:43.017: + BackEnd=Java-1
2014/06/13 14:38:43.017: com.syclo.sap.ServiceEventSession::beginDataAndUpdateSteps::::begin
2014/06/13 14:38:43.017: + BackEnd=Java-1
2014/06/13 14:38:43.017: com.syclo.sap.ServiceEventSession::beginDataAndUpdateSteps::::--------------------------------
2014/06/13 14:38:43.017: Executing 0 DataState steps
2014/06/13 14:38:43.017: Executing 0 Update steps
2014/06/13 14:38:43.017: Committing transactions
2014/06/13 14:38:43.017: + BackEnd=Java-1
2014/06/13 14:38:43.017: com.syclo.sap.ServiceEventSession::endDataAndUpdateSteps::::begin
2014/06/13 14:38:43.017: + BackEnd=Java-1
2014/06/13 14:38:43.017: com.syclo.sap.ServiceEventSession::endDataAndUpdateSteps::::--------------------------------
2014/06/13 14:38:43.017: generating response
2014/06/13 14:38:43.017: parsing definition into response
2014/06/13 14:38:43.018: Sending success response
AFTER ALL THESE STEPS THE GENERIC AGENTRY APP *IOS , IS NOT GETTING THE MESSAGE NOTIFICATION.
THANK YOU .
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.