Caching a data source
System Connection: RFC
Problem: You use an RFC in Visual Composer on the story board and change the BAPI in the backend afterwards. You want to display the changes in the input/output ports of the data service.
Here are some tips of how to solve that:
- Make a refresh of the data service (right click on the data service and select Refresh (available when you use queries))
- Restart the J2EE engine
- Turn off the caching in VC 7.0: Go to Options, tabstrip Compiler and change the setting of Data service retrieval to Do not cache data services.
- Make sure that your backend is not caching the changes (may vary from system to system)
- Modify your connection lifetime setting in the Visual Administrator as it is described in this WIKI entry.
- Use the attached PAR-file (under tab strip Attachments - don't forget to rename and remove the .jpg)
- Create an iView from it and just preview it. What it does is just stop and start the ESP framework (not "expensive") and thus releasing the cache. J2EE WS invocation layer caches by default and the only way to release the cache is by code. So, I created this simple PAR file. (Thanks to Netanel Slomianski)
6 Comments
Unknown User (wvdgh5t)
"Restart the J2EE engine"
I think this is not practicable solution. I had this problem often, when I develop a new RFC function module. Everytime I change Import or Export Parameters, this error occurs. I cannot restart the J2EE engine, if this error occurs, because we have only one J2EE engine in our R&D department.
I hope there is also another solution for this problem.
Best regards,
Marcel
Former Member
Agree. Let's try to figure out with this page, whether there is a "best practices" usable and working, or if we need to go back to development and report the problem.
Let's collect here all things that worked for getting over that and figure out what works best.
Unknown User (wvdgh5t)
Okay Mario, one way is to copy the RFC function module and give them another name. Then you can re-drag it again to the storyboard. This workaround is okay, if you use it once in the model. I wrote a OSS message about this problem. Now I'm waiting for an answer.
Best Regards,
Marcel
Unknown User (lqtiorw)
Hi.
I am having the same kind of trouble. Did you get any response on the OSS message Marcel?
Best regards Gunnar Braaten
Nathaniel Slomianski
Hi Guys,
Actually, we (VC core) found out that the J2EE WS layer is always caching the WS metadata and therefore, you can stand on your head if you'd like - the metadata change will not be reflected in VC unless you:
1. restart the J2EE server.
2. Stop and start the ESP WS layer by code.
I created an iView that restarts the ESP WS layer. It doesn't restart the whole J2EE
if you would like, I can give you the par file and you can use it whe you need it.
@Mario: Is there a place where we can put this par file for people to download until we create an official note ?
Regards,
Natty
Former Member
Hi Netanel,
I am trying to download this par file but it seems to be corrupted. Whenever I try to upload this par file to portal it gives me the following log.
2008-10-07_14-37-23
Application upload failed: VC.par
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:111)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at com.sapportals.portal.prt.deployment.ArchiveIterator.iterate(ArchiveIterator.java:39)
at com.sapportals.portal.prt.deployment.UploadProcess.upload(UploadProcess.java:60)
at com.sapportals.portal.prt.deployment.DeploymentManager._uploadArchive(DeploymentManager.java:835)
at com.sapportals.portal.prt.deployment.DeploymentManager.uploadArchive(DeploymentManager.java:474)
at com.sapportals.portal.prt.deployment.DeploymentManager.uploadApplication(DeploymentManager.java:319)
at com.sap.ip.portal.admin.portalanywhere.ArchiveUploader.doUpload(ArchiveUploader.java:116)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.sapportals.portal.prt.component.AbstractPortalComponent.handleRequestEvent(AbstractPortalComponent.java:706)
at com.sapportals.portal.prt.component.AbstractPortalComponent.handleEvent(AbstractPortalComponent.java:412)
at com.sapportals.portal.prt.pom.ComponentNode.handleEvent(ComponentNode.java:252)
at com.sapportals.portal.prt.pom.PortalNode.fireEventOnNode(PortalNode.java:368)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:707)
at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
at java.security.AccessController.doPrivileged(Native Method)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
If you could provide me the proper version of this par file on my email address murtuza.kharodawala@capgemini.com then I would really be grateful to you.
Hoping for a quick response.
Regards,
Murtuza Kharodawala