Skip to Content
avatar image
Former Member

System received an expired SSO ticket

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

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

2 Answers

  • Best Answer
    avatar image
    Former Member
    Aug 06, 2013 at 02:04 PM

    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.

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      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

  • avatar image
    Former Member
    Jan 08, 2013 at 09:53 AM

    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;

    Add comment
    10|10000 characters needed characters exceeded