cancel
Showing results for 
Search instead for 
Did you mean: 

Receiver JDBC channel is stuck in "delivering" status.

Former Member
0 Kudos

Hi experts,

I have a IDoc -> JDBC scenario, and when the JDBC channel tries to process a message, it get stuck in "delivering" status. Here's the log of the message process:

2011-04-25 17:38:10 Success Message successfully received by messaging system. Profile: XI URL: http://xq0ds001:50100/MessagingSystem/receive/AFW/XI Credential (User): PIISUSER

2011-04-25 17:38:10 Success Using connection JDBC_http://sap.com/xi/XI/System. Trying to put the message into the receive queue.

2011-04-25 17:38:10 Success Message successfully put into the queue.

2011-04-25 17:38:10 Success The message was successfully retrieved from the receive queue.

2011-04-25 17:38:10 Success The message status set to DLNG.

2011-04-25 17:39:08 Success Delivering to channel: CC_JDBC_NA_Familiares_BUXIS_Receiver

2011-04-25 17:39:08 Success MP: Entering module processor

2011-04-25 17:39:08 Success MP: Processing local module localejbs/CallSapAdapter

2011-04-25 17:39:08 Success Receiver JDBC adapter: processing started; QoS required: ExactlyOnce

2011-04-25 17:39:09 Success JDBC adapter receiver channel CC_JDBC_NA_Familiares_BUXIS_Receiver: processing started; party , service BS_NA_BUXIS_QA

Any ideas of what could be causing this?

Many thanks!

Vanesa.-

Accepted Solutions (0)

Answers (4)

Answers (4)

0 Kudos

Hi Vanesa,

Make sure you have set the MaxThreadCount parameter to 350 or higher depending of the case and of the resources available.

To increase the parameter, please follow the instructions below:

1. In the left frame choose Server -> Kernel -> ApplicationThreadManager

2. In the tab Display Configuration (right frame) choose Switch between view and edit mode to activate the edit mode.

3. The parameter MaxThreadCount must be set to 350.

4. You will then need to restart the J2ee

For reference see note #937159 - XI Adapter Engine is stuck

For specific setting to an adapter can be done by going to Services -> SAP XI AF Messaging

Look at the property 'Messaging connections' here you will see the following queues:

Send.maxConsumers (asynchronous sending - outbound)

Recv.maxConsumers (asynchronous receipt - inbound)

Call.maxConsumers (synchronous sending - outbound)

Rqst.maxConsumers (synchronous receipt - inbound)

Depending on where the bottleneck is occurring (i.e. too many entries in the Send.maxConsumers) you can increase these parameters.

Example of parameter value syntax (sample for JDBC adapter):

(name=JDBC_http://sap.com/xi/XI/System, Send.maxConsumers=15, Recv.maxConsumers=15, Call.maxConsumers=15, Rqst.maxConsumers=15)

For reference see note:

#791655 - Documentation of the XI Messaging System Service Properties

And see the link:

/people/kenny.scott/blog/2007/08/20/messaging-system-queue-properties-after-xi-30-sp19-xi-70sp11

Regards,

Caio Cagnani

Former Member
0 Kudos

I agree with Caio Cagnani. "For specific setting to an adapter can be done by going to Services -> SAP XI AF Messaging"

Check also queue status (smq2) and check Oracle Connection Status (in general DB Connection Sessions Status). Maybe the connection can be blocked 'cause reached max number of DBConnection Sessions.

former_member463616
Contributor
0 Kudos

Hi,

Go to RWB -->Message monitoring. In that, try to restart the message.

Please see the below link, it might be useful to you.

Regards,

P.Rajesh

baskar_gopalakrishnan2
Active Contributor
0 Kudos

If you configure JDBC receiver channel with invalid login credentials, sometime oracle lock the user and further communication will not happen. Check the login credentials configured in the channel to access db.

Former Member
0 Kudos

Hi Baskar, thanks for your reply.

Actually, I have several receiver channels pointing to the same database... only one of them has this strange behaviour.

Besides Message Monitoring, does anybody know another tool for diagnosing or monitoring these kind of situations?

Thanks!!

Vanesa.

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

Actually, I have several receiver channels pointing to the same database...

Do you have any specific reason why you use different channels pointing to the same db? You could technically reuse the same channel. You could try increasing the maximum concurrency under the processing tab.

Now as for the monitoring, go to rwb -> component monitoring -> adapter engine -> communication channel monitoring and then filter your jdbc comm channel from there.

Hope this helps,

Mark

baskar_gopalakrishnan2
Active Contributor
0 Kudos

To analyze further for the better clarity do the following steps... This might be helpful in general too....

a) In receiver comm channel go to advanced tab click advance mode and add parameter as follows

Name: logSQLStatement value: true

This will help for tracing the errors.

b) Check "Disconnect from Database After Processing Each Message" : I will recommend this one, bcuz since you use multiple receiver channels and some connections might have not gone back to jdbc connection pool to host other jdbc calls. This is better practice too.

C) Do the same query against the database directly using TOAD or SQLPlus and see what's going on.

Hope that helps.

Former Member
0 Kudos

Baskar, thank you! Finally I solved my problem.

These are the steps i followed:

1) Checked "Disconnect from Database After Processing Each Message" in channel's configuration.

2) In message monitoring, canceled all "system error", "to be delivered" and "delivering" messages. As messages in "delivering" status actually can't be cancelled, previously i restarted AF Messaging service.

3) Asked DBA to kill all open connections.

4) Executed the interface again.

That worked for me.

Thanks everybody for all suggestions!!

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

According to SAP Note 831162 - FAQ: XI 3.0 / PI 7.0 / PI 7.1 JDBC Adapter section 24, you need to

Set the receiver channel configuration Exactly Once handling parameters as "local" and "redo".

The configuration setting "local" and "error" setting is some times prone to deadlock situations at the DB table level

Hope this helps,

Mark

Former Member
0 Kudos

Hello Mark. Thanks for your quick reply. I've checked channel's configuration and Persistence field is set to 'Local' and Conflict Resolution is set to 'Redo'.

I've also tried to restart java stack, restart AF messaging service as well as deleting all messages related to JDBC adapter in 'system error' status, but messages still are not being delivered.

Thanks and regards,

Vanesa.