cancel
Showing results for 
Search instead for 
Did you mean: 

Intermittent Connection issue between PI and HANA

Former Member
0 Kudos

Hi All,

We are connecting to HANA db from PI 7.31 using JDBC adapter. This is a synchronous scenario (SOAP To JDBC and back). Though this scenario works fine most of the time, we are seeing intermittent connection errors (Messaging Error). This behavior is being seen in Dev, QA and Prod. And looks like this issue happens when the interface is run after a long break.

Thanks,

Ashish

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

So we had raised a sap message for this issue:

Reply from SAP.

Here I am explaining about the stackOverflowError:

1. When a JDBC receiver channel called, it creates a new JDBC connection to the database.

2. After the JDBC receiver channel completes processing the message, this JDBC connection is kept in a resource pool to be used again.

3. When the JDBC receiver channel is called again, it looks for the JDBC connection in the connection pool instead of creating a new JDBC connection.

4. Now, before this already existing JDBC connection could be used, the integrity check happens for this JDBC connection. If the integrity check(check if the

connection is valid or broken) is successful, then only this JDBC connection is used, otherwisea new JDBC connection to the database is created.

5. For checking the integrity of the already existing channel, a dummy query is executed (in your case i.e. for HANA database, the query executed is

"SELECT 1 FROM DUMMY"). If a favorable result is obtained upon executing this dummy query, the same JDBCconnection is used again for processing the

messages, otherwise a new JDBC connection created and the processing of the messages is done by this new JDBC connection.

Now, for your NW i.e. NW 7.31 SP 12, the same integrity check wasn't happening with a proper dummy query, instead it was executing a generic dummy

query which wasn't supported by the HANA database. Due this issue, the same integrity check was going in aninfinite loop due to which stackOverflowError

was being thrown.

I have made the code changes and the same has been made submitted. An official patch for this will be released soon.

.

.

.

The official patch has been released.

Please download the latest patch "XI ADAPTER FRAMEWORK 7.31: "SAPXIAF12P" (SP-level #12, Patch-level #61)" from SAP Service Market Place.

Note No. 2162239.

Thanks,

Ashish

vadimklimov
Active Contributor
0 Kudos

Hello Ashish,

As it can be seen from the error text, the exception is StackOverflowError - looking into it, I personally cannot state with confidence if it is really due to connectivity issue, or reason is something different. StackOverflowError is one of generic exceptions thrown by JVM in response to attempt to exceed defined size limit for thread's stack size. One of common causes of this exception, is deep recursion or deeply nested calls executed by the Java application. Sometimes it may be due to sub-optimal configuration of thread stack size limit (met less frequently, since this is one of JVM parameters that is not subject for common customization in JVMs of PI/PO systems).

As said, so far I cannot see evidences of this error being related to connectivity issues - as a result, I don't think we are in position to provide any specific recommendations regarding parameters tuning / configuration changes right now. Can you please retrieve details of the exception from Adapter Engine logs and provide it here? It will be specifically helpful to see which application / thread caused this exception and what its call stack was at a time of exception occurrence.

Regards,

Vadim

former_member186851
Active Contributor
0 Kudos

Hello Ashsih,

Increase the timeout parameter and check

Setting a Channel-Specific Timeout - Advanced Adapter Engine - SAP Library