Skip to Content
author's profile photo Former Member
Former Member

Registering program permanently in gateway

Hello Gurus,

We need to have a program registered in the gateway i.e <SID>_RFCSENDER.

I follow this command to register it in the UNIX box

nohup rfcexec -a <>SID_RFCSENDER -g <hostname> -x sapgw00 &

This works fine as connection test is successful.But when we re-start the instance this process usually gets stopped and we have to register it manually again.Is there any way we can register this program in the gateway permanently without the need to register it again ?

As an after thought,is there any way we can monitor the process in the OS and start it if the process gets stopped automatically?

Thanks

Sabya

Add a comment
10|10000 characters needed characters exceeded

Related questions

4 Answers

  • Best Answer
    Posted on May 27, 2014 at 02:55 PM

    please check the note "353597 - Registering RFC server programs", section "Automatic registration after a program termination"

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Alwina Enns

      Thanks Alwina for all the help,

      We were able to resolve our issue.PI needed to poll the ECC with the PID WR2_RFCSENDER.

      The registration in this case is automatic from PI end..These same details(i.e PID and gateway details) needed to be updated in the Integration Builder of PI.When PI calls this PID, it automatically registers and the RFC connection test is successful.

      I have attached the screenshot for Integration builder.

      Thanks

      Sabya

  • author's profile photo Former Member
    Former Member
    Posted on May 27, 2014 at 02:42 PM

    You need to look at this as your external process telling the gateway "Hi, I'm here and ready, if you want to send me something". So the answer to your first question is no. The gateway registration is always temporary and lost if either side (external process or gateway) stops. I guess you could write a shell script to check for the process and restart it, if necessary.

    The question I have is, what do you actually want to achieve with this? Who is the external partner? This might help us maybe suggest alternatives to what you are doing right now.

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member

      Thanks Susan/Alwina for the response,

      The external system in this case is PI.This registered program is used by the communication channel in the integration builder for polling QRFC's from the gateway of the ECC system.

      PI needs to continuously poll this program <SID>_RFCSENDER .

      Please suggest if you need further info.

      Thanks

      Sabya

  • Posted on May 27, 2014 at 02:51 PM

    Hello Sabya,

    as Susan already wrote it is important to know, what is this external program, which should be registered at the gateway. Some program have their own procedure, how they should be registered at the gateway. Was the file saprfc.ini created with the registration information (gateway and host)?

    regards,
    Alwina

    Add a comment
    10|10000 characters needed characters exceeded

    • Hello Sabya,

      could you please attach screenshots about configuration of the destination of the program in SM59? Please check also SMGW --> Goto --> Logged on clients which "tp name" do you see for your program here? It should be exactly the same name like you see in SM59 for the "program id" in the destination. Does the program <SID>RFCSENDER write a trace?

      regards,

      Alwina

  • Posted on May 28, 2014 at 10:55 AM

    Hi,

    Sticking to your original issue i.e. You were able to register a program at OS level and that too with nohup running the program as an background daemon, so the RFC was working fine.

    Once your instance or the Unix box gets a re-bounce this process dies. To always ensure that this program is running when your Unix box is up you should add the execution of this command in the server start-up scripts, so every time if your instance re-bounces your command would be up and running.

    Effectively, you should be creating a script/service with the command "nohup rfcexec -a <>SID_RFCSENDER -g <hostname> -x sapgw00 &"

    Then you should add the service in the server's start-up script:

    chkconfig <service name> on

    Then you can view the status of the service:

    chkconfig <service name> --list

    That should be pretty much all.

    Regards,

    Akshay

    Add a comment
    10|10000 characters needed characters exceeded

    • Hi Sabya,

      Please define and run the script in the below specified way:

      1) First define the script: <yourscript>.sh

      while true

      do

      rfcexec -a WR2_RFCSENDER -g orcjap03a -x sapgw00

      done

      - Save the script

      2) Now run the above defined script as a daemon

      nohup <yourscript>.sh &

      This should probably work.

      Please consider OS discretions if any b/w Unix & Linux. The above points work absolutely fine on my Linux Machines.

      Regards,

      Akshay

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.