cancel
Showing results for 
Search instead for 
Did you mean: 

Setting idle timeout for JDBC communication channel(oracle driver 10.2.0.4)

Former Member
0 Kudos

Hello Together,

currently we have the following problem in our PI environment. We have many JDBC Communication channels in place in different scenarios and some of that channels have also a high load on it (but not a continous load - more a peak load sometimes a day/week).

Technical details:

Oracle JDBC driver 10.2.0.4.0 (released feb 2010)

PI: 7.1103 and XI 3.0 SP20

Therefore we want use MaximumConcurrency parameter conbined with poolWaitingTime and taskTimeout parameter. But nevertheless we do not(!) want, that the JDBC connections are hold forever once they are initiated by an incoming/outgoing message.

We are not able setting something like SQLNET.EXPIRE_TIME on server Listener side, because some of them are running ABAP systems which handle their connection by themself.

Have anyone experiences/ideas or can access source code of JDBC channel ressource configuration for Oracle databases for XI3.0 - PI7.1. I think/hope that there exists somwhere in the world an parameter which I could use in extended parameter section inside the communication channel configuration ?!

Further it's not clear to me, why it is not possible to use connection pooling for JDBC channels. On a connection pool it is easily to set a timeout parameter for idle connections.

I'm waiting for your answers.

Regards,

Andreas

Accepted Solutions (1)

Accepted Solutions (1)

Shabarish_Nair
Active Contributor
0 Kudos

can you check if the below helps;

SAP Note 791379 - xiadapter.inbound.timeout.default within the SAP XI Adapter: XI J2EE service

Former Member
0 Kudos

Dear Shabarish,

no this OSS(#791379) is not a solution:

[...]

The "timeout" property is only relevant for synchronous messages. This time specifies how long the messaging system waits for a response during synchronous communication. If this time elapses, a "MessageExpired" exception is triggered.

[...]

In my case asynchronous communication is used.

Thanks nevertheless.

Former Member
0 Kudos

Hi,

did you consider the option "disconnect from database after each message processing" in the channel?

also is there any specific reason you dont want to use taskTimeout parameter.. one issue is with the sennder channels as mentioned here Note 1500791 - JDBC sender adapter causes update of DB after timeout. but this is fixed..

regards,

francis

Former Member
0 Kudos

Hello Francis,

that's not a valid option for us. Most of the messages are very small and it does not make sense to execute the login and session handshake for every message. This will slow down the message execution dramaticly.

Thanks for the hint with the note (we already had seen this one).

Best regards,

Andreas

Answers (1)

Answers (1)

0 Kudos

Try on Advanced parameters of the Communication Channel.

you can use in Advance Mode

Name Value

driver:oracle.net.CONNECT_TIMEOUT 5000

driver:oracle.jdbc.ReadTimeout 30000

For Oracle Driver, for connection and read timeout with Value on milliseconds.

I'm looking for SQL Server parameters.