cancel
Showing results for 
Search instead for 
Did you mean: 

JDBC Driver: Messages stuck in processing started at rwb

Former Member
0 Kudos

Hi,

I have ABAP Proxy (7.1 EHP1) -> JDBC (MS SQL Server) scenario.

I'm trying to do INSERT_UPDATE. The interfases works fine for the first 5 messages. If I check the DB I see rows inserted correctly, but the first five messages stucks in processing started, and the others JDBC messages stuck in Pending to be delivered The interfase is developed as asynchron, i'm not affraid in the response.

I tryed to do just an INSERT, send just one message, or change the isolation level. But the messages continues stucking in processing started status.

One of the lasts possibilities is transform the interface to sync or increase the max number of threads of queue "JDBC_http://sap.com/xi/XI/SystemRecv" via ConfigTool. But I can't stop the j2ee stack until next weekend.

The audit Log:

- The message was successfully received by the messaging system. Protocol: XI URL: http://sapdev:51000/MessagingSystem/receive/AFW/XI Credential (User): PIISUSER

- Using connection JDBC_http://sap.com/xi/XI/System. Trying to put the message into the receive queue.

- Message successfully put into the queue.

- The message was successfully retrieved from the receive queue.

- The message status was set to DLNG.

- Delivering to channel: CC_C0400_IM01_MES_INTEG

- JDBC Adapter Receiver processing started, required QoS ExactlyOnce

- JDBC Adapter Receiver Channel CC_C0400_IM01_MES_INTEG: processing started; party / service XXXXXXXXX_DES.

- INSERT INTO XXXXXXXXXX_TST (CodArticulo, Descripcion, EAN13, Vidautil, bolsasporestuche, estuchesporcaja, estuchesporpalet, gxu, UNISTK) VALUES (XXXXXX, XXXXXXXXX, , 270 , 1, 0 , 0.000 , 1000 , KG)

-


Maybe is a problem in DB side, but the experience tell me that is more inestable a SAP PI than MS SQL Server

Any Idea?

P.S. In the same PI is coexisting diferents JDBC interfaces that works fine. I have tried to use their channels but still stucking.

And this is not my first PI 😛

Accepted Solutions (0)

Answers (5)

Answers (5)

sunil_singh13
Active Contributor
0 Kudos

Hi,

As you said you already have other JDBC scenarios that are working fine.... Then I dont think there is any problem in your JDBC adapter.

However you can use any of the working JDBC channel in the Receiver Agrrement and change the connection string and see if it works.

Also you can Switch on the Debugging mode of the JDBC adapter to see at what place the problem is comming... Also you can set Debugging mode on on the adapter side to see whats going wrong there.

Thanks,

Sunil Singh

Former Member
0 Kudos

Hi Xavier,

set the options to

Local

Redo

In the Processing tab/Exactly one handling, this should prevent the jdbc thread to hold.

Regards,

Julio

Former Member
0 Kudos

@ Narendra - I hardcoded the interface. Still stucking at 5th message (Max of messages for adapter to process in paralel) But it's curious that the rows are inserted at DB.... It seems that Adapter Engine don't get any kind of ACK from DB.

@ Shabarish - I restarted & canceled, and resended. The JDBC connector service works fine @ NWA

Shabarish_Nair
Active Contributor
0 Kudos

can you increase the maximum concurrency parameter?

JDBC processing tab-> Maximum Concurrency

Former Member
0 Kudos

Maximum Currency was set to 90000.

I'm trying to modify:

- configtool > managers > applicationThreadManager: MaxThreadCount to 350.

- configtool > services > com.sap.aii.af.svc: messaging.connectionDefinition to increase Send.maxConsumers to 10, Recv.maxConsumers to 10, Call.maxConsumers to 10, Rqst.maxConsumers to 10

Former Member
0 Kudos

Another usefull information about Comunication Channel configuration:

Exactly-Once Handling:

Persistence = Local

Conflict Resolution = Error

Transaction Isolation Level = Default (I checked it with serializable)

DataBase AutoCommit-Enabled (checked)

Disconnect from Database after Processing each message (checked)

Batch Mode (unchecked)

Former Member
0 Kudos

Hi Xavier,

try to disable the auto.commit option. This might cause deadlocks on the table.

Regards

Sven

Former Member
0 Kudos

@ Sven But how I can commit the data at DB System?

Former Member
0 Kudos

Hi Xavier,

have a look at the documentation of this option:

db.autoCommit=NO|YES

Use this parameter to deactivate the logical unit of work required by the JDBC adapter to guarantee that the data in the database is consistent. This option is required for JDBC drivers that do not support transactions. To avoid data inconsistencies in the database when the logical unit of work is deactivated, ensure that multiple database transactions cannot access the database simultaneously.

The default value is NO.

Do not set this parameter to YES if the JDBC driver supports transactions, that is, if the system does not display a corresponding error message during normal operation.

Netweaver Documentation

I'm sure MS SQL Server JDBC Driver is able to support transactions. By default the whole message will be treated as one transaction against the database.

Regards

Sven

Former Member
0 Kudos

@ Sven: I've unchecked the auto commit and no way.

Former Member
0 Kudos

Hi Xavier,

can you have a look at the database (locks, deadlocks, load) while inserting into the table via PI? You could use a tool like toad. I'm not sure Visual Studio supplies the functionality to do so.

Did you deactivate/stop the channel to make sure the CPA cache is cleared and the new settings are running? I'm still convinced it's a setting problem. Maybe you can try to uncheck the "disconnect after each message" option. Could be an issue with that.

Regards Sven

Former Member
0 Kudos

I can't install // connect software like Toad. I'll talk to DBs Administrator to coordinate it.

I activate / desactivate the channel each time. (I have to cancel the messages stucked as processingstarted)

I also changed the number of messages that can process simultaniously @ config tool and now is "crashing" at 15 messages instead 5.

I'll try to uncheck disconnect after each message.

Regards,

Xavi

Shabarish_Nair
Active Contributor
0 Kudos

when the adapter finally goes into error after the retries, what is the error description?

Former Member
0 Kudos

@ Shabarish: The message doesn't never reach error status.

Shabarish_Nair
Active Contributor
0 Kudos

can you restart the JDBC adapter service from VA or NWA?

Former Member
0 Kudos

I have restarted several times yesterday. I can't restart it now.

Shabarish_Nair
Active Contributor
0 Kudos

When you can try the below;

1. Cancel all the pending messages

2. Restart the J2EE stack and retry.

This seems to be an issue with the service and not the adapter as such since at least the message should have gone into error after the retry levels.

Hope your scenario is not a EOIO one.

Former Member
0 Kudos

don't worry about that. Finally I restarted j2ee stack, and I am going to send hardcoded data as the table of live system. I'll also check the nwa for an error.

Former Member
0 Kudos

Hi Xavier,

Kindly check the data type in SAP side as well as in SQL side.

Also, check the actual data by sending 1 by 1 records.

Its a issue of data.

Regards,

Narendra