How to push ABAP system data to a Java only SLD
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
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.
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).
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).
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.
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).
Picture 1.6
There click on Profile (see picture 1.6)
Picture 1.7
Now in the selection drop down box choose ALL.
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.
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).
Picture 2.0
Now click on Stop Server to stop the SLD server (see picture 2.0).
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.
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).
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.
Picture 2.4
Go back to the SLD server and click on home.
Picture 2.5
Now under the Landscape header click on Technical Systems.
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>
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
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
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
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
Hi Tabrayz
No, that is not possible.
Best regards
Tom
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
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
Hello Tom ,
You above post is too good . I am also in a similar situation but a little different scenerio and if you can just have look on my issue it will a great help
Configuration for Central SLD in HA
Please check and suggest .
Regards,
Umesh
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
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
Thanks!
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
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?
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
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
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
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
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
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
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
Hi Erwin
Thanks for your comment, always nice to know a blog post helps people out.
Best regards
Tom
Excellent!
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
Hi Yashith
Thx for the comment & additional info for others!
Glad you like the post.
Best regards
Tom
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
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
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
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
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
Hi Neha
The registration happens after picture 1.8 is configured properly + SLD is restarted.
If the program doesn't register to gateway, you might want to check your Gateway Access Control Lists - Security and Identity Management - SCN Wiki
Best regards
Tom
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
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
Hello Tom, Thanks a lot for providing solution Solution: Add this line in your reginfo file P TP=SLD_UC HOST=10.97.17.164 CANCEL=10.97.17.164 ACCESS=* Activate the configuration files secinfo and reginfo by choosing Goto → Expert Functions → External Security → Read Again in transaction SMGW. Refer : https://help.sap.com/saphelp_nw04/helpdata/en/0a/64861a386e481c90400401e6f20bba/content.htm Thanks & Regards, Neha
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
Hey Tom, I am facing
CPIC Return Code 679 - Transaction Program not Registered
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
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
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
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
Nice Doc . Thanks a lot for sharing
Hi All,
Nice document.
For those interested in connecting multiple ABAP data suppliers to the same Java stack e.g SAP PO (or SAP PI AEX), you may refer these blogs:
Creation of an SLD connection from ABAP backend to AEX SLD
PI7.4 SLD_UC failed to connect,RZ70 failed problem
Thanks,
Bakau Onafuwa
hi