h4. Introduction

I have seen several unanswered questions on the SDN forum about putting a SLD connection in place in ABAP in transaction RZ70 towards a Java only SLD. An example of such configuration is a BW SAP system landscape where ABAP part and Java part are different SAP systems according to the recommendations of SAP.

There is documentation available but it seems people are confused when it comes to the configuration and I must say it looks a bit confusing when you look at it. Let’s do something about that.

Read write?

The SLD host and gateway you place in transaction RZ70 will help determine where data is pushed to (write).I t doesn’t determine where the ABAP SAP system goes to read if SLD data is to be read, reading is determined by the settings maintained in transaction SLDAPICUST.

RFC destinations SLD_UC and SLD_NUC

Most will know that there are TCP/IP RFC connections (transaction SM59 – TCP/IP) SLD_UC and SLD_NUC (UC for Unicode, NUC for Non-Unicode). These RFC connections are created when you configure the target SLD in transaction RZ70 in ABAP.

If you would delete SLD_UC and SLD_NUC from SM59, repeat the activation and execution in transaction RZ70, you would see that those RFC destinations were created again automatically.

Registered program

RFC TCP/IP RFC_UC

picture 1.1

When you open one of the RFC destinations in transaction SM59 in ABAP you will notice the Registered Server Program on the Technical Settings tab. What is this registered program about? When another application (it can even be non SAP) registers a connection on the SAP Gateway using the TCP/IP protocol, a Program ID is used. Using the Program ID the SAP system knows which RFC destination is the connection to which application.

logged on clients

picture 1.2

You can view the registered Program ID in transaction SMGW by clicking Goto ‘ Logged on Clients in the upper menu (see picture 1.2).

registered program

picture 1.3

In the overview you get there you can find the registered Program ID by checking the entries which have Registered Server as value in column Syst. Type (see picture 1.3).

SLD_UC program ID

picture 1.4

In the TP Name column you will see SLD_UC which is the Program ID that is registered (see picture 1.4).

Don’t create a JCO destination with program ID SLD_UC or SLD_NUC

I have seen suggestions on the forum to create JCO destinations in the Visual Administrator or in the Netweaver Administrator but please don’t do this. I can understand it sounds logical to do so if the SLD_UC or SLD_NUC is not registered in the SAP gateway but it’s not the correct procedure and it will throw errors when you execute the configuration in transaction RZ70.

How is it done then?

SLD parameter configuration

Here comes the actual solution to such issues. If you want to connect an ABAP only SAP system to a Java only SLD you have to maintain the gateway that is to be used on the Java SLD.

SLD main screen

Picture 1.5

Log on to the SLD through the URL http://<hostname SLD>.<domain>.<ext>:5<instance number>00/SLD using a user that has administrative rights (SLDDSUSER if sufficient rights or Administrator).

Now click on Administration (see picture 1.5).

SLD Profile

Picture 1.6

There click on Profile (see picture 1.6)

SDL Parameter dropdown ALL

Picture 1.7

Now in the selection drop down box choose ALL.

SLD Gateway Host parameter

Picture 1.8

Now look for the GatewayHost and GatewayService parameters. These should contain the ABAP SAP system where you want to register the TCP/IP connection (remember SLD_UC, SLD_NUC). Adjust these parameters so it matches the hostname of the ABAP system and its gateway.

Home SLD

Picture 1.9

After changing this you will have to stop/start the SLD to apply the changes. Click on Administration in the top navigation bar of the SLD (see picture 1.9).

Stop SLD server

Picture 2.0

Now click on Stop Server to stop the SLD server (see picture 2.0).

Start SLD server

Picture 2.1

Next click on Start Server to start the SLD server again (see picture 2.1). Once you see Status: Running again as in picture 2.0 you should find the registered program SLD_UC in the logged on client in the gateway of the ABAP SAP system.

You can check the section Registered Program which you can find above in this blog if you want to check if it’s the case.

RZ70 configuration

Now we still haven’t pushed any data so let’s take a look at RZ70.

RZ70 configuration

Picture 2.2

Now normally you fill in the SLD Host and Service in RZ70 where the SLD is actually running. If you point it towards a Solution Manager (dual stack) you would fill in the Solution Manager hostname and its gateway.

However, here it’s different. You fill in the ABAP SAP system itself and its gateway. This looks strange but it makes sense, previously the configuration of the SLD was changed so that the registered program SLD_UC registered to the gateway of the ABAP SAP system. The registration takes place when the SLD server is stopped/started. This means the gateway of the ABAP SAP system now knows where the TCP/IP connection is pointing to. So in RZ70 we give the location of the hostname and the gateway where the Program ID has been registered.

The program will find the registered Program ID in the ABAP gateway and it will know that it originated from the Java only SAP system (as the Java only SAP system registered it there).

Once you have the configuration in place, click on activate and execute in transaction RZ70 (see picture 2.2).

Succssful triggering

Picture 2.3

After you press execute, you will get a summary of the actions that were performed and you should see a successful RFC call (see picture 2.3) there and not an error message.

Checking if the SLD content is updated

Once the execution has taken place the SLD content is updated on the SLD server. Let’s take a look where you can see this.

SLD home

Picture 2.4

Go back to the SLD server and click on home.

SLD Technical Systems

Picture 2.5

Now under the Landscape header click on Technical Systems.

SLD data check

Picture 2.6

From the dropdown box Technical System Type choose Web AS ABAP. Now navigate to the ABAP system you used or use the filter option and fill in the SID there and click go.

!https://weblogs.sdn.sap.com/weblogs/images/251804053/lastupdate.jpg|height=41|alt=Last update date time stamp|width=94|src=https://weblogs.sdn.sap.com/weblogs/images/251804053/lastupdate.jpg|border=0!</body>

To report this post you need to login first.

41 Comments

You must be Logged on to comment or reply to a post.

  1. Michael Nicholls
    The other suggestion I have seen is to install a standalone ABAP Gateway on the same host as the Java-only SLD. The advantage here is that your SLD is self sufficient and can be sent ABAP system details from multiple ABAP systems.
    (0) 
    1. Tom Cenens Post author
      Hello Michael

      Thanks for the feedback.

      Yes, the standalone ABAP gateway is also mentioned in SAP Note 1057720 – Missing configuration for JCO/RFC destinations of the SLD along with other. The SAP Note gives some hints on issues occuring concerning SLD communication.

      It all depends on what architecture is in place and how the SAP systems are connected. I did notice on the forums the questions for a similar configuration to the blog content are raised but I didn’t see that many good answers.

      We configure a local SLD on each Java instance we install. We also have a large number of Java instances that use ABAP as UME source so you can say those are closely connected and then the configuration described in the blog is sufficient to have proper ABAP updates in the SLD of the connected Java SAP system.

      For those interested in SLD Architecture, you can find the recommendations on following path: System Landscape Directory (SLD)

      Kind regards

      Tom

      (0) 
      1. Sean M
        I’m curious as to why you configure a local SLD on each Java instance?

        We decided to use the topology that was (later) described in these two blogs:
        SLD Topology: How-To Gather and Distribute SLD-Data in Your IT-Landscape?
        How-to Handle Data in the SAP NetWeaver System Landscape Directory

        Instead of configuring SLD on every Java instances, there is one production SLD where everything sends technical system data. It in turn syncs back to DEV and QA instances, and Solution Manager.

        That reduces the number of SLDs to be setup and maintained: the CIM (Common Information Model) and CR (Component Repository) need to be updated periodically, and you need to manually delete the data for decommissioned systems since deletions are not included in the data sync.

        Regards,
        Sean

        (0) 
        1. Tom Cenens Post author
          Hello Sean

          The reason is high availability, avoiding single points of failure as much as possible.

          There are many good architectures and their are pros and cons for each of them.

          We have roadmaps in place when a system is decommisioned.

          The updating brings the most additional work compared to a central SLD but it’s not that big of a deal either when you take it into account when SPS are done.

          Kind regards

          Tom

          (0) 
      2. Tabrayz Abdul

        Dear Tom,

         

        First of all a big thank you for sharing this information!! with the help of your blog i am able to push application server ABAP sld  in solman as my central sld is solman and its showing in solman SMSY, however i have one question in your blog you have mention to go http://<hostname SLD>.<domain>.<ext>:5<instance number>00/SLD and then in parameters then ALL then mention the application server abap gateway details and then in aplication server abap run rz70 and push the sld thats what  i did and it was successfull, now i have one more application server abap for which  i have to push sld in to solman so i have to go again in
        http://<hostname SLD>.<domain>.<ext>:5<instance number>00/SLD and paramter and menetion abap system gate way details  but there already another abap system gateway information is present  is there any option to mention more than one abap gateway details?

         

        Thanks

        Tabrayz

        (0) 
          1. Tabrayz Abdul

            Thanks Tom

             

            That means every time i want add a new system in sld i need to remove old system details and put new system details?

             

            Thanks

            Tabrayz

            (0) 
            1. Tom Cenens Post author

              Hi Tabrayz

               

              No that should not be the purpose.

               

              I’m away to an event so I cannot verify it right now but I would expect you would need to fill in the same ABAP host + gateway in another ABAP system in order to make it register to the same Java only SLD that was used.

               

              So try to maintain another system as in picture 2.2 and let me know the result. I would expect it to work. Of course the new system would need to be able to connect to that ABAP system + gateway (make sure firewalls or alikes or not in the way).

               

              Best regards

               

              Tom

              (0) 
  2. Sreekantha Reddy mopuru
    Hi Tom,

    We will consider Central Standalone Java SLD when you want to connect PI SOlution manager all application linking to this SLD.

    suppose if you  consider PI Java application SLD as Central SLD then when you want to do some system down of PI then  all other systems will affect

    Normally SAP also prefers to have one Central SLD for DEV and Quality environment and One central SLD for Production(two SLD s are standalone jAVA SYSTEMS with additional gateways)

    Gateway to balance load if the no of system upating SLD if large

    Best Regards,
    Sreekantha reddy

    (0) 
    1. Tom Cenens Post author
      Hello Sreekantha Reddy

      Like I mentioned earlier there are many possibilities. Using a central SLD ensures you have less maintenance effort but it also means you then have a single point of failure.

      Concerning seperate SLD’s for DEV/QUALIT and PRODUCTION in some cases you need all that data. For example in a Solution in Solution Manager it is better to have all the systems included of a system landscape, for some scenarios it is even required  (CHARM for example) in order to use those systems.

      This would mean you would have to push certain data into the same SLD to ensure certain scenarios to work or to push the SLD data from your two central SLD’s into certain local SLD’s.

      I should write another blog on the system landscape directory really as I have noticied some points that could definitely be improved.

      Kind regards

      Tom

      (0) 
  3. Ivan Milkovic
    I was lost about this until I found your blog. Excellent material, since SDN forums mentions plenty of different solutions that where causing me lot of errors.

    Thanks!

    (0) 
    1. Tom Cenens Post author
      Hello Ivan

      Thanks for your feedback, always nice to read that the blog was useful and actually helped someone out. Feedback like this is what keeps me going and makes me want to create more content.

      I noticed how there were many questions on this topic on the forum and how there were also many incorrect answers or suggestions so I decided to write this blog.

      Kind regards

      Tom

      (0) 
  4. Team EDW
    Hi Tom,
    Thanks for the wonderful document.
    I just have one query which is bothering me.
    I am trying to configure my BI 7.1 system to existing standalone SLD 6.40 as sap java system.
    The gateway host in SLD is same as local SLD host. Now if I go by your document and try to change the gateway host value to match with my BI ABAP system host name, then the other systems that are connected to this SLD might get affected as they will be using that value. Can you please highlight the changes and advise?

    (0) 
    1. Tom Cenens Post author
      Hello

      With the method described in this blog you can only have a one on one connections. The scenario is mainly used in scenarios with separate SID’s that belong together, for example an ABAP only BI SAP system to a Java only BI system. To connect multiple SAP systems you can install a standalone gateway for your Java only SLD which then serves as the target for your settings.

      Kind regards

      Tom

      (0) 
      1. Deb Donohoe

        Hi Tom,

         

        Thank you for this blog, it is very helpful.  The challenge we are facing is still elusive. Since we installed NW 7.3 Java only for our SLD system, it already has the gateway in the SCS instance and I can see it up and running.  Based on above and notes 1172161 and 11057720, I do not believe we need to install a separate stand-alone gateway for the ABAP systems.  However, it is just the ABAP systems that are having errors connecting.

         

        Am I missing something? Does anything come to mind immediately that might be a common issue? 

         

        Also, can you help on your comment above, you said “to connect multiple SAP systems you can install a standalone gateway for your Java only SLD…” would that be different from the gateway that is included as part of NW 7.3 in the SCS instance?

         

        I am still troubleshooting.  Any thoughts or suggestions are appreciated.

        Deb

        (0) 
        1. Tom Cenens Post author

          Hi Deb

           

          You should see the gateway of your AS Java running (In unix the process looks like gw.sap<SID>_SCS<instance number SCS> pf=<profile> -no_abap

           

          Then you change the data supplier settings in your SLD. Point the GatewayHost to your AS Java 7.3 and the GatewayService to sapgw<instance number SCS>. Next save and go back to Administration. There hit stop SLD and once stopped, hit start SLD. This will register the RFC connections on the Java based gateway.

           

          Then you go to your ABAP based SAP system and you point RZ70 to the host of your AS Java based SAP system and the gateway to the gateway of the SCS so sapgw<SCS instance number>.

           

          Hit execute to push the data and check that the data push is succesful. Once done, check in your SLD and your ABAP system should have an up to date time stamp when you check it under Technical Systems.

           

          A standalone gateway is no longer useful once you have AS Java with it’s own SCS gateway running. On a NW 7.3 As Java  based SAP system you should not have to maintain anything special or additionally, the gateway should be running after the installation of your Netweaver (referring to the discussion thread questions).

           

          Best regards

           

          Tom

          (0) 
          1. Deb Donohoe

            Hi Tom,

             

            Thank you! The light bulb went on because of your response.  It was a simple error,   when I updated the data supplier I did not update the gateway service to use the SCS instance number. 

             

            We are golden now. Thanks again!

            -Deb

            (0) 
            1. Tom Cenens Post author

              Hi Deb,

               

              Glad you got it to work! I’ll post a blog on how to do it for others for future reference.

               

              Best regards

               

              Tom

              (0) 
            2. Tom Cenens Post author

              Hi Deb,

               

              Glad you got it to work! I’ll post a blog on how to do it for others for future reference.

               

              Best regards

               

              Tom

              (0) 
  5. Erwin Tadler

    Hi Tom,

    thanks a lot for the very good explanation.

     

    I have spent quite some time on a similar issue, before I found your post.

     

    Works as expected!

     

    Erwin

    (0) 
  6. Yashith Manjunath

    Hi Tom,

     

    We have used an ABAP stand-alone gateway instance on the SLD server of AS Java 7.01. But I came across note 1172161, which says from release 7.1 an RFC gateway comes along in the AS Java  SCS instance which is automatically recognized in SLD. I guess there wont be anymore confusions in updating RZ70 in the ABAP system using this new feature.

    Excellent blog post, by the way.

     

    Regards,

    Yashith

    (0) 
      1. John Studdert

        Hi Tom, excellent blog post and thanks for taking the time to write it up. I realise this is an old blog post now but it still appears high in the search rankings and as such it’d be great if you could add an update to the blog post itself regarding AS Java systems >=7.1 now having the gateway process by default.


        It took me a while to dig far enough down the comments to find this

        (0) 
  7. Hrishav Kumar

    Hi Tom,

     

    After reading your blog I had easily pushed data from Development ABAP system which was installed on a standalone host to the SLD which was again on a standalone host.

     

    But during the production system, you wont believe I had to work for 3 continuous days, that too during vacations at my place.

     

    I have AS ABAP, installed on a high availability system clustered mode.

    AS JAVA is also installed in HA clustered mode.

     

    To rescue other, here is a solution. Add the following parameter to start profile for SCS instance ( this is coz there is no gateway service in a Java system, thanks to this link ” http://scn.sap.com/thread/1599267 “:

    #————————————————–

    #Start SAP gateway service (Dont forget the initial underscore)

    #————————————————–

    _GW = gw.sap$(SAPSYSTEMNAME)_$(INSTANCE_NAME)

    Execute_05 = local rm -f $(_GW)

    Execute_06 = local ln -s -f $(DIR_EXECUTABLE)/gwrd$(FT_EXE) $(_GW)

    Restart_Program_02 = local $(_GW) pf=$(_PF)

     

    I had to add these parameter as I couldn’t see any service for SAPGW on the host on which SLD/ AS JAVA was installed.

     

    As correctly mentioned by you in reply to Deb Donohoe queries on 08-Jul-12, I then changed, the data supplier host to ” Host for SLD” and gateway to ” sapgw<nn>” where nn was instance number for SCS instance, in the SLD configuration and then restarted the same.

     

    Then I went to RZ70 in ABAP system and entered hostname of Java system and sapgw<nn> where nn is instance number of SCS instance.

     

    You are a saviour Tom. Thank you from depth of my heart. Special thanks to Deb Donohoe. His queries and your reply to the same helped me in understanding the concept for the same.

     

    Regards,

    Hrishav

    (0) 
    1. Tom Cenens Post author

      Hi Hrishav

       

      Glad the blog post brought added value to you and thanks for adding more value to it.

       

      Yes, you can start a gateway service on a AS Java which version is not yet high enough to have it running by default but is already high enough in terms of it’s version to get it running.

       

      Best regards

       

      Tom

      (0) 
  8. Neha Jain

    Hello Tom,

     

    As per your picture 1.2 we can view the registered Program ID in transaction SMGW

    But in my system SLD_UC is not getting registered.


    I have added abap system details in the java only SLD as mentioned in the picture 1.5, 1.6 and 1.7, but still SLD_UC

    in rz70 transaction there is only option to give gateway host and port as ABAP system

    rz70.PNG

     

    But rz70 is failing with the error

     

    0: vhcalabaci_ABA_00                         : Execute program: _SLD_RCC

    0: vhcalabaci_ABA_00                         : Execute program: _SLD_RFC

    0: vhcalabaci_ABA_00                         : Collection of SLD data finished

    0: vhcalabaci_ABA_00                         : Data collected successfully

    0: vhcalabaci_ABA_00                         : RFC data prepared

    0: vhcalabaci_ABA_00                         : Used RFC destination: SLD_UC

    0: vhcalabaci_ABA_00                         : RFC call failed: Error when opening an RFC connection (CPIC-CALL: ‘ThSAPOCMINIT’ : cmRc=2 thRc=67

    0: vhcalabaci_ABA_00                         : Batch job not scheduled

    Do you have any suggestion how to solve this issue.

    I have tried to register manually at OS level SLD_UC but that disnt help

     

    Regards,

    Neha

    (0) 
      1. Neha Jain

        Hello Tom,

         

        Thanks, I have done settings as mentioned in the picture 1.8 and restarted SLD.

        acl list also set properly.

         

        When I am trying to connect ABAP system with other SLD it is working fine.

        But I am facing issue with my current standalone JAVA PI system. Any other suggestion ?

         

        Regards,

        Neha

        (0) 
        1. Tom Cenens Post author

          Hi Neha

           

          I can try to help you further but then I need more details. Can you mail me a word doc or something with the steps you perform(ed)?

           

          You can find my priv mail in my SCN profile.

           

          Best regards

           

          Tom

          (0) 
            1. Tom Cenens Post author

              Hi Neha

               

              Your welcome. So just to share some details to the community on what was done (troubleshooting steps)

               

              In the SLD – Administration – Details the JCO RFC were stated as [DOWN]. Normally, after changing the parameters to point to the ABAP data supplier (sapgw) and stop/starting the SLD? those JCO RFC server threads should be running. In this case, they didn’t so to check what was wrong, we first manually created a JCO RFC destination in the /nwa pointing to the ABAP system.

               

              This JCO RFC destination would state “running” only very briefly after you would start it, if you refresh ,it would be stopped already again. This made me believe, the destination ABAP system is either not reached or the connection is denied due to security ruling.

               

              So I upped the SMGW trace level, triggered the JCO RFC again and then I got the message that “reginfo” blocks SLD_UC (we named the manual JCO RFC SLD_UC). So then the line was added to reginfo to allow the SLD_UC to register. As mentioned, you need to reread reginfo after adjusting through SMGW. Once this was done, the JCO RFC registered fine. So we removed the manually created JCO RFC, stop / started the SLD (in /SLD) and we saw now SLD_UC registering automatically on the ABAP gateway. As from this point, RZ70 worked fine as well.

               

              Best regards

              Tom

              (0) 
  9. Srinivasan Vinayagam

    Hi Tomas,

     

    You can run RZ70 with ABAP system credentials, the SLD_UC and SLD_NUC created with ABAP system hostname and gateway host.

     

    Then How ABAP system data collected by JAVA SLD system?

     

    How? Where ABAP system and JAVA’s SLD system communicate?

     

    Regards,

    V Srinivasan

    (0) 
  10. Rahul Yedapally

    Hi Srinivas,

     

    correct me if I am wrong, when we Run RZ70 in backend (ECC)system , data will be pushed to system landscape directory

     

    SLD will write the data to LMDB and LMDB will writes data to SMSY

     

    How ABAP system data collected by JAVA SLD system?


    Help of LMDB jobs


    Thanks,


    Rahul Yedapally

    (0) 
    1. Srinivasan Vinayagam

      Hi Rahul,

       

      Here SLD system is Portal system Version 7.01

      ABAP system is ECC system.

       

      JAVA system is configured as SLD system.

      Now wanted to register SAP ECC ABAP system to SLD system(JAVA).

       

      here no LMDB concept.

       

       

       

      JAVA System Side:

       

      JCo RFC Provider

      SLD Data Provider

      Destination

       

      ABAP System side:

       

      RZ70

      SM59

      SLDAPICUST

      SLDCHECK

       

      Please any one explain this scenario

       

      Regards,

      V Srinivasan

      (0) 
      1. Tabrayz Abdul

        Hi Srinivasan,

         

        What I understood is  you want to register ECC ABAP system to java SLD not SOLMAN?

         

        Go to ECC ABAP RZ70 give the hostname and gateway service SAPGW00  00 Is instance no then excute and you will see the abap system in java system sld http://hostname:50000/sld

         

        Now you have a portal system which is as java based and you want to register SLD to another java system then login to NWA and go to SLD Data supplier and give the link of target java system sld like http://hostname:50000/sld and excute you will get the confirmation then and there .

         

        Please let me know if i am making  any sense?

         

        Thanks

        Tabrayz

        (0) 

Leave a Reply