cancel
Showing results for 
Search instead for 
Did you mean: 

Issue with Java engine

former_member192238
Participant
0 Kudos

Hello Experts,

I am facing one strange issue in production environment.In message monitoring i am seeing that all my inbound interfaces which inserts  data in to the database are in  scheduled state .Please see the attached file for the same

This issue is happening very frequently after restarting of Java stack all the messages are going in to successfully

I am not understanding why this issue is happening any upgrades need to be done to solve this permanently please suggest.

Any help is highly appreciated.

Regards

Praveen

Message was edited by: Praveen Reddy

Accepted Solutions (0)

Answers (2)

Answers (2)

iaki_vila
Active Contributor
0 Kudos

Hi Praveen,

I recommend you that you see this document http://scn.sap.com/docs/DOC-11909 about "Analyzing Performance Issues and Possible Solution Strategies"

May be you could research abouit Parallelization of PI qRFC Queues

Regards

former_member192238
Participant
0 Kudos

Hi,

Please guide me where i can find config tool in NWA in PI7.1.

Go to the Config Tool

-> server

-> services

-> com.sap.aii.af.svc

-> messaging.connectionDefinition

Regards

Praveen

marksmyth
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Praveen,

It is not possible to modify the messaging.connectionDefinition parameter in the NWA (it has status non-Modifiable).

Details on how to start the Config Tool are at this link.

To start the Config Tool, double click the configtool script file from <SAP_install_dir>/<system_name>/<instance_name>/j2ee/configtool directory.

Regards

Mark

marksmyth
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Praveen,

This is possibly caused because there are not enough resources available to process the volume of messages.

Use note #1662269 How to Monitor the PI Adapter Framework queues, to check if there are any backlogs in the Adapter queues (I assume it is the JDBC adapter that you are using in this scenario?).

How many queues/threads are available to the JDBC connections? You may need to increase these to handle the volume of messages you are processing.

Check these blogs:

1) http://scn.sap.com/community/pi-and-soa-middleware/blog/2007/08/20/messaging-system-queue-properties...

2) http://scn.sap.com/community/pi-and-soa-middleware/blog/2011/01/26/tuning-the-pi-messaging-system-qu...

Regards

Mark

former_member192238
Participant
0 Kudos

Thanks Mark for your quick response we have around 60 Receiver JDBC interfaces .

I am using PI 7.1 please tell me were to check queues/threads are available to the JDBC connections

Regards

Praveen

marksmyth
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Praveen,

This is documented in the note I recommended - note #1662269. Follow the steps here to check the JDBC queues.

Regards

Mark

former_member192238
Participant
0 Kudos

Hi Mark,

I have checked in Engine status--->Additional Data i am seeing for

Queue Names

JDBC_http://sap.com/xi/XI/SystemCall

JDBC_http://sap.com/xi/XI/SystemRecv

JDBC_http://sap.com/xi/XI/SystemRqst

JDBC_http://sap.com/xi/XI/SystemSend

Maximum number of threads or 5

should i increase this value i am not getting how to increase.

Regards

Praveen

marksmyth
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Praveen,

Ok, so each of the JDBC connections have 5 threads configured. This is the default value. As a first step, I would recommend increasing this to 10. If you are unsure which connection type (e.g. SystemRecv) the blockage is occuring in, it would be ok to increase all to 10. But best if you can identify on which queue has the blockage and then increase the value of that queue only.

How to increase the number of threads/queues available to these JDBC connections is documented in the blog - http://scn.sap.com/community/pi-and-soa-middleware/blog/2007/08/20/messaging-system-queue-properties...

In brief, what you need to do is:

Go to the Config Tool

-> server

-> services

-> com.sap.aii.af.svc

-> messaging.connectionDefinition

-> then append the JDBC entry onto the existing configuration (check the blog for exactly how this is done) e.g.

(name=JDBC_http://sap.com/xi/XI/System,  messageListener=localejbs/AFWListener, exceptionListener=localejbs/AFWListener, pollInterval=60000, pollAttempts=60, Send.maxConsumers=10, Recv.maxConsumers=10, Call.maxConsumers=10, Rqst.maxConsumers=10)

As this issue is occuring in your PRD environment, I would recommend that you test out this configuration change on a Dev or QA box before implementing in PRD. This should help avoid any mistakes on the PRD box.

Regards

Mark

rajasekhar_reddy14
Active Contributor
0 Kudos

Hi Praveen,

how many JDBC messages are you processing per day, what kind of peration are you performing (insert/update).

better to change design to stored procedure and then change maxrecv value to 10(marks input).

Best regards,

raj

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Since you have 60 receiver interfaces ,  messages  are in scheduled state due to unavailability of sufficient jdbc connections to handle during runtime.  In your jdbc receiver adapter,

a) You can increase the "Maximum Concurrency" Value to more.  Say 10 or so.

b) Select the option: Disconnect from Database after each message processing.

Plus you might want to check /monitor the queues as Mark pointed on the above reply and decide the Maximum Concurrency parameter setting value based on the volume of interfaces.

former_member192238
Participant
0 Kudos

Hi,

I am using UPDATE_INSERT operation actually now all the interfaces are in PROD it is bit difficult to change all the interfaces to STOREDPROC

If i follow below options

a) You can increase the "Maximum Concurrency" Value to more.  Say 10 or so.

b) Select the option: Disconnect from Database after each message processing.

will it affect any other things ? Please suggest me.

Regards

Praveen

rajasekhar_reddy14
Active Contributor
0 Kudos

Hi Praveen,

It is not going to affect anything once your basis team set value to 10 then request them to restart java stack. then definetlky you will see performance imporvement.

JDBC Adaptere perfromance depend on Traget system also.

Regards,

Raj