cancel
Showing results for 
Search instead for 
Did you mean: 

SAP GW Subscription & notification : Error - internal source pos cx_static_check /iwbep/cx_mgw_base_exception

Former Member
0 Kudos

Hi All,

While trying to prove Gateway Subscriptions & Notifications, I am below error...

   internal source pos cx_static_check /iwbep/cx_mgw_base_exception

   I could able to create Subscription successfully, and I am getting this error @ send_notifications

 

TRY .

         lo_notification_publisher->send_notifications(

             is_notification_endpoint = ls_notification_endpoint ).

       CATCH /iwbep/cx_mgw_tech_exception INTO lx_mgw_tech_exception.

help me to sort this,

Thanks

Rajesh

Accepted Solutions (1)

Accepted Solutions (1)

EkanshCapgemini
Active Contributor
0 Kudos

Hi Rajesh,

Check this reply for Invalid destination error.

It would be better if you debug inside "lo_notification_publisher->send_notifications" method and check for the system alias, destination there and check the configuration of these.

Former Member
0 Kudos

Hi Ekansh,

I have cross checked all the connections and found

Maintaining Outbound bgRFC Queue from SAP Backend System to the Hub System

is missing after reconfiguring them also it is still the same error throwing


---get bg rfc queue name

    TRY.

        lo_destination = cl_bgrfc_destination_outbound=>create( lv_destination ).

      CATCH cx_bgrfc_invalid_destination INTO lx_invalid_destination.

        RAISE EXCEPTION TYPE /iwbep/cx_mgw_tech_exception

          EXPORTING previous = lx_invalid_destination.

    ENDTRY.

failing at cl_bgrfc_destination_outbound.

By the way I have given the same system(GW Hub) hots with different host..it shouldn't be a problem I am expecting

Thanks

Rajesh

AshwinDutt
Active Contributor
0 Kudos

Hello Rajesh,

When you say ' By the way I have given the same system(GW Hub) hots with different host.. ' what does this mean ? Can you please explain.

In Back-End system after Creating RFC Destination For Outbound Queues in SPRO by maintaining all the details regarding the GW System by selecting Classic With bgRFC as transfer protocol, have you maintained Gateway Settings under SAP NetWeaver Gateway Settings?

Where you need to maintain Destination system ( Your GW system ID ),Client,System Alias ( Which you have created in GW Hub system ) and RFC Destination ( which you just now created in the above step ). This is the GW Settings to be done in Back-End system.

Please check this.

regards,

Ashwin

EkanshCapgemini
Active Contributor
0 Kudos

Hi,

IMO there is some problem with the config. I am sharing the screenshot of my config. This system is gateway server with Embedded approach. So the destination 'IWFND_ODATA_PUSH' connection corresponds to same system.

Please check your config once.

Regards,

Ekansh

Former Member
0 Kudos

Hi Ashwin & Ekansh,

@ Ashwin : As per your advice I made the configurations and corrected....and In debug mode I have the error gone from cl_bgrfc_destination_outbound  method.

I haven't seen any error through my debug, but strangly I dont see any notifications arise on my putty, is there any other way know wether the notification been sent to destination(like other than any HTTP Listener).

@ Ekansh : Thanks for the screen shots, and I am sure in sync with configurations and I am hoping all are well..because I haven't seen any exception while debugging.

Thanks

Message was edited by: rajesh kelam

EkanshCapgemini
Active Contributor
0 Kudos

Hi Rajesh,

Good to know that now it runs error free. For notifications not reaching the HTTP Listener, it may happen that your notification is still locked in the queue. Go to transaction SBGRFCMON and check, if there is any locked queue. Try to process the queue manually. It should work fine.

is there any other way know wether the notification been sent to destination

Yes, you can use a HTTP handler class in your ABAP server. You can expose a class as SICF service. Then create a RFC destination (HTTP destination) to your server where that class is hosted. Then subscribe the entityset with the URL(with fully qualified domain name) of just created class. Set a external breakpoint in the class. Once the gateway processes the notification, your debugger will start.

To create a HTTP handler class, check the reply Your class must be inheriting from the interface "IF_HTTP_EXTENSION" and you need to implement "HANDLE_REQUEST" method.

Former Member
0 Kudos

Hi Ekansh,

Thanks buddy, yup I got all notifications in SBGRFCMON

Please let me know how  can I release them manually,thanks for the help

Former Member
0 Kudos

Hi Ekansh & Ashwin,

I released(from back-end) manually in Debug mode, but no notification traffic seen, after released from back end , I haven't see them in Gateway SBGRFCCONF....don't know what went wrong and how to correct.

After releasing from back end SBGRFCMON, is there any way to debug or trace the floe whether it is hitting to gateway or not ? if not than why not reaching...

Advice me to sort , thanks in advance

Rajesh

Former Member
0 Kudos

Hi ,

I have tried the same on RMTSAMPLEFLIGHT, luckily it worked and notification been sent from back end to Gateway hub .....but at HUB its failed,

error log from ST22

advice me how can I sort this, and why this happened.

Thanks

Rajesh

EkanshCapgemini
Active Contributor
0 Kudos

Hi Rajesh,

If it is failing on Gateway Hub, Check if you have created RFC destination for the subscriber in the Gateway system.

AshwinDutt
Active Contributor
0 Kudos

Hello Rajesh,

That means you need to check the code which is implemented to trigger the notification. i.e., /IWBEP/R_MGW_PUSH_TEST

Put a break point and check why trigger is failing.

In ST22 go to ABAP Developer View and click on Source Code Extract which will take you to the place where flow is broken.

Regards,

Ashwin

Former Member
0 Kudos

HI Eknash,

Could you please explain me which RFC destination I need to check on HUB?

Thanks

Rajesh

Former Member
0 Kudos

Hi Ashwin,

Below are FM and details where error is raising,

/IWFND/SAPLFGR_MGW_PUSH

/IWFND/FM_MGW_ODP_SEND_NOTIF

please find the ST22 error log

sorry wrong screen

thanks

Rajesh

Message was edited by: rajesh kelam

EkanshCapgemini
Active Contributor
0 Kudos

You have a HTTP listener set up which have subscribed to the entity set against which you are sending the notification. Suppose your listener is configured at <server1>:<port1>. Then you need to configure this server port combination as a RFC destination as well (in the HUB system).

Former Member
0 Kudos

Hi,

Which is HTTP Connection to External Server- which is configured in HUB and back end both and working fine(Connection test is OK).

/IWFND/FM_MGW_ODP_SEND_NOTIF

lv_status = lo_rest_http_client->/iwcor/if_rest_client~get_status( ).


is returning 500 error code


and not sure before to above method call

iv_request_uri is empty- dont know what it is and how to correct



lo_rest_http_client = /iwfnd/cl_mgw_notif_odp_client=>get_rest_http_client(

           iv_rfc_dest    = iv_rfc_dest

           iv_request_uri = iv_request_uri ).

Thanks

Former Member
0 Kudos

Hi Guys,

Sadly, I don't see any success and I can't find any issue which is causing to fail, but please clarify me few things....

1) In  HTTP destination : do  I need to given only IP address(I tried both Host name & FQDN)

2) In  HTTP destination : Is it must to pass path prefix(e.g. http://host:port/) ?

3) BGRFC_SUPERVISOR: Where it is bo created Back end or on GW(sorry for the stupid question , because my BASIS has created on GW....even I replicated same on back end now)

Below is my error log

Thanks

Rajesh

Former Member
0 Kudos

Hi Ekansh,

Sorry for posting again, have some confusion about the screens you shared to me, is I need to maintain IWFND_ODATA_PUSH destination in Gateway ...we are using HUB installation here.

Do i need to mention IWFND_ODATA_PUSH in SAP NW Gateway Setting from IMG ?

Thanks

Rajesh

EkanshCapgemini
Active Contributor
0 Kudos

This IWFND_ODATA_PUSH RFC should be maintained in the backend side not in Hub system.

This will be maintained in the node:

Former Member
0 Kudos

Hi Ekansh,

I am trying to implement a ABAP class as a httplistener as you advise, but got struck after creating class and SICF node you told to create a HTTP External destination where the class is hosted.

So wwhile creating HTTP destination I have given the HOST(FQDN) and what port I have to give here, if I give the same port where my server is running like 8000, connection will refuse right...its failing as well.

Please suggest me

Thanks

Rajesh

EkanshCapgemini
Active Contributor
0 Kudos

In my case, it worked on the same server and port. You can go to SICF->to your node->right click and click on Test... this will open a browser. Here you can check the server and port used to call the class.

Try using these server and port in RFC destination.

Former Member
0 Kudos

Hi,

Yup it worked for me as well, thanks for the idea given....even I feel this is the best way around for the listener .

thing is we have to give the path prefix of the service from SICF, after this its worked for me

Thanks

Rajesh

EkanshCapgemini
Active Contributor
0 Kudos

Good to know that it worked.

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi All,

Finally I am closing my post as Answered because I could able to hit my delivery address with notifications, but these notifications are showing with 500 error code at HUB... until unless I release or delete them manually they not going out....

Here my delivery address is not external , I am using the same HUB box with different port.

I would like to thank Eknash & Ashwin for support through(don't know how can I give points to equally )

Thanks

Rajesh

kammaje_cis
Active Contributor
0 Kudos

Rajesh, Error i see from the log is "CX_BGRFC_INVALID_DESTINATION". You might search the forum with that. I quickly found this.

AshwinDutt
Active Contributor
0 Kudos

Hello Rajesh,

Could you please check without Try and Catch ?

Just call send_notifications method alone to send back End-Points.

Regards,

Ashwin