Purpose
The Purpose of this wiki is to rovide details on the Return code 679 which indicates a "Program not registered" error.
Overview
This wiki provides details on how to determine the RFC destination that is reporting the error, explains how a test program can be registered the gateway and also provide details on who is responsible for registering the server program.
Identifying the issue
Communication error 679 is reported in the system log (SM21):
All CPIC return codes are mentioned in note 63347. Return code 679 means "Transaction Program is not registered":
TP_NOTREGISTERED 679 TP not registered
To find out more detail on which program is causing the error the corresponding rfc trace file must be checked.
Determining the failing RFC destination
In the example above, the work process number (Nr) is 01 so the dev_rfc1 (St11) will contain more details. Search this file for the timestamp reported in sm21, in this case it is 171012.
You will see something like the following:
This shows that the problem is related to RFC destination REGTEST and program "Program1". If you
go to transaction SM59 and test the destination REGTEST the "program not registered" error will
be returned:
Example of registering test program rfcexec
Note 353597 provides details on how to register a server program:
<program name> -a<program ID> -g<SAP gateway hostname> -x<gatewayservice>
So, for our example above "Program1 "needs to be registered:
<program name> -aProgram1 -gy52tdc00 -xsapgw52
<program name> is the name of the program you are trying to run.
Program1 is the name given in SM59 (ProgramId).
Y52tdc52 is the gateway host (from the dev_rfc1 trace above) and sapgw52 is the gateway service (from the dev_rfc1 trace).
If the program has been registered on the local gateway you should see an entry for it in
SMGW ==> "Logged on Clients", it will be shown as a REGISTERED_TP / REGISTERED SERVER.
The example given in note 353597 is:
rfcexec -atest -gHOST -xsapgw00
Please note that "rfcexec" is a sample program delivered with the RFCSDK. If you do the following:
rfcexec -aProgram1 -gy52tdc00 -xsapgw52
This means that you are trying to register the sample program "rfcexec" with ID "Program1" on the gateway.
If you are not trying to connect to program rfcexec, the developer of the program you are trying to run should be contacted to advise how to correctly register their program.
In some cases, a particular service may need to be started.
You should know the name of the program you are trying to register. There is no direct possibility to find out the name of the backend program which is associated with the Program ID used for a registered connection in SM59. The only possibility is to do a level 3 trace of the gateway to get the IP and remote number of the program that registers.
With this information you need to remotely execute a netstat and search for the pid of the program that is running on that port. With this pid you goto the ps command to get the name and location.
Checklist
For a checklist of what to do in case of Program not registered error (RC 679) see the following note:
2104408 - Checklist for "program not registered" errors
Related Content
Related Documents
Related SAP Notes/KBAs
353597 Registration of RFC server programs
1408081 Basic settings for reg_info and sec_info
1305851 Overview note: "reg_info" and "sec_info"