cancel
Showing results for 
Search instead for 
Did you mean: 

Stop Incoming HTTP request

AntonioSanz
Active Participant
0 Kudos

Hello experts,

I am working in a SAP PI 7.31 dual stack. I have some ccBPM which receives HTTP request (abap) and inside is doing some RFC to a backend system.

The http client is countiniusly doing http calls to my SAP PI (every minute). I have noticed that during the starting of the system, the HTTP (ABAP) is available, but the java stack takes a bit more time to be ready. So my system is acepting HTTP Calls due to ABAP is ready but is not calling the backend system because RFC is not working, and I am getting errors until Java stack is ready.

I want to ask if there is way to configure SAP PI to accept HTTP calls (ABAP) when the Java stack is ready and not before.

I have scheduled my comunication channels, but for ABAP channels I can not do that.

I am thinking on stop and start icm services (with a scheduled job) but I am not sure if it good.

Any suggestions?

Kind Regards.

Accepted Solutions (1)

Accepted Solutions (1)

iaki_vila
Active Contributor
0 Kudos

Hi Antonio,

if you works with PI 7.31 dual system, why don't use HTTP_AAE adapter?, you will solve your Java stack delay problem because this adapter is in the java stack.

Regards.

AntonioSanz
Active Participant
0 Kudos

Thanks Iñaki.

That can be an option, but I am not sure, but I am afraid that by using HTTP_AAE adapter we have to change the url for calling SAP PI. Right now we are on a productive environment and we can not do changes on client side.

Thanks again an kind regards.

iaki_vila
Active Contributor
0 Kudos

Hi Antonio,

Definitely, Eng's solution seems to be the best, Ockham's Razor.

Please feedback to the forum, if during these days this solution works for your scenario.

Regards.

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello,

Since ccBPM runs on ABAP you can use it to capture/collect the inbound of the HTTP calls than send them to the main interface. The sending steps need to have a catch exception to loop if there is any error with the Java.

It doesn't require lot effort but you can make it fancy to

Cheers,

Fouad

AntonioSanz
Active Participant
0 Kudos

Thanks Fouad.

We already have a ccBPM and the problem is inside the ccBPM. It does some RFC calls and because the java pool isn't ready some times we get queues stuck with messages.

I will inform you about my solution based on dynamic receiver determination + ignore error.

Regards.

AntonioSanz
Active Participant
0 Kudos

Hi all,

     I've implemented Enhanced Receiver Determination with option Ignore. But I still get an error NO_RECEIVER_CASE_BE, No receiver could be determined


As I have read from sap help

Defining Receiver and Routing Conditions - Integration Directory - SAP Library

Note 

These settings apply to asynchronous messages only. If a receiver cannot be found in synchronous communication, an error always occurs.

So it seems that my solution is not 100% valid, because my interface is synchronous. I am trying to find another solution.

markangelo_dihiansan
Active Contributor
0 Kudos

Hi Antonio,

I have not tried it, but if you look in SICF, there is a Handler List. Maybe you can develop a class that will reject the connection from the HTTP client. It should be possible.

You can place your class in number 2

Regards,

Mark

AntonioSanz
Active Participant
0 Kudos

Thanks Mark,

I have decided to use dinamic recevier determination. In this mapping I will check day and hour and if that is out a schedule it will return no receiver.

Now I have to check it.

engswee
Active Contributor
0 Kudos

Hi Antonio

If your requirement is only during a planned restarting of the PI server (which is common during periodic maintenance), you can follow the steps listed in the link below.

Starting and Stopping - Administering PI (Process Integration) - SAP Library

Basically, if you have a planned shutdown on the PI server, in particular for the HTTP adapter follow step 5 of stop procedure to lock the integration engine by setting ENTRY_LOCK = 1 in SXMB_ADM. This prevents new messages going into the integration engine.

Once the server is up and running and you have confirmed that the Java stack is up, perform step 8 of start procedure to unlock the engine to allow new HTTP messages in.

It is best that you follow the all the steps listed in stop and start and not just the ones for the HTTP adapter. This is the best practice for stopping and restarting the PI server in a controlled manner. We do this during our periodic maintenance schedule and it works without issues.

Rgds

Eng Swee

AntonioSanz
Active Participant
0 Kudos

Thanks Eng, but is an every day schedule. My solution needs a bit of programming, but it is simple, and it is seems to be working fine.

Regards.

engswee
Active Contributor
0 Kudos

Antonio,

Just curious, why does your PI system need to be restarted every day?

Rgds

Eng Swee

AntonioSanz
Active Participant
0 Kudos

Well, they do a daily backup of all SAP systems. Thats why they stop an start PI every day.

Regards.