cancel
Showing results for 
Search instead for 
Did you mean: 

System received an expired SSO ticket

Former Member
0 Kudos

Hi All,

We are on Portal 7.3 SP07. we have created a Java web application to update data into SAP. The communication betweeen Java Application and SAP is using SAP JCO 3.0 API. We have created a RFC destination in (NWA->Configuration->Security->Destinations) and using this in our application to make a Connection to R/3. The RFC destination is being configured to use SSO Tickets.

The issue that we are facing here is - Applicaiton works fine till the SSO ticket validity is expired. after the SSO ticket validtiy is expired the applciation stops working and we see the below error in the logs.

Exception ActionCreateApplicant()com.sap.conn.jco.JCoException: (103) JCO_ERROR_LOGON_FAILURE: System received an expired SSO ticket on <erp_host_name> sysnr 00#

This issue has been discussed a lot on SCN, however we are not finding any sutiable fix our issue.

What we have analyzed till now is - Once after the SSO ticket validity gets over (8h was defualt we tested with increasing to 24h)  - The JCO destination instead of using a new SSO ticket continues to use the expired SSO ticket which it has cached in the JCO Connnection Pool similar to what is described in the note 1130191. But here the Soloution has been provided for clearing the JCO Pool using the WD JCO Pool viwer tool. But In our case since we are using the JCO 3.0 API's - the methods which were available to access the JCO Pool (JCO.Pool and JCOPoolManager) with previous versions of JCO Connector are not available anymore with the SAP JCO 3.0.

Please help.

Thanks

Hussain

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

We could find our issue.

Instead of just remember the Destination-Name we stored the Destination in an local variable. This variable was available to the User through a Session-Scoped bean. This bean has had a longer livetime than the Destination.

The solution is quiet simple:

instead of useing JCoDestinationManager.getDestination(destinationName); and hold the JCoDestination-Object we just hold the "String destinationName" and call the obove method everytime we need a JCoDestination-Object.

Due to the pooling this will not create much overhead and works like a charm.

Former Member
0 Kudos

Hi Schindler,

Thank you for sharing the solution. We had raised this with SAP and we were advised to use Assertion ticket instead of SSO ticket as per note - 1166904 .

I will also try out your solution and see how it goes.

Regards

Hussain

Answers (1)

Answers (1)

Former Member
0 Kudos

We are fighting with exactly the same issue.

JCo works fine. After 8h (of idle?) the SSO ticket expires and no new tickt is created. instead the old one is used unsucessfully.

Just wanted to bump this topic since we also could not find any solution yet.

Sys: NW 7.3; JCo 3;