Sender JDBC blocks the follow succesive polls with a big message size.
We have noticed that when the sender jdbc select a huge register size,the channel is blocked and this doesn't do a new poll, even if we create a new channel to have the two processes in parallel, the second one is waiting as well. Only when the Adapter has sent the message to the Integration Engine, in the audit log the step "Trying to put the message into the send queue." is finished the adapter does the new poll. This step is the bottleneck, then i don't think the problem is in the SELECT/UPDATE statements.
We have notice the receiver JDBC has parameters to deal with the parallelism but we haven't found anyone to the Sender JDBC.
Transaction Isolation level is setting to Serializable also we try with read_commited.
We have tried yet:
1. Defining an Operating System Command->Timeout: the SAP.HELP documentation points that when the timeout is reached the active program will run in batch mode but we have not notice any improvement.
2. Disconnect from Database After Processing Each Message. Even with this check marked, the adapter continues blocking in the large query.
The system is a PI 7.0 SP12.
I have found this note 1084161 - Performance decrease after applying XI 3.0 SP20 7.0 SPS12 but im not sure that this note could improve the performance, anyone has tried it?
I really appreciate any help you can provide.
Iñaki Vila replied
With a little investigation SAP PI 7.0 writes sequentially the messages from jdbc adapter to integration engine, it doesn't have parallelism in contrast of file adapter for example.
Increasing one java node (although only one is active at time with this channel but in this way i avoid the channel stopping) and increasing the physical memory as well, the problem has been solved.
Thank you all for your valuable suggestions.