How kill the server cache of tomcat

I' ve this horrible problem with the cache of tomcat and any time I have to clean the temporary folders and closing the browser.
Is there an option to eliminate server cache??
Please help

could you describe your problem a little bit closer? i also use tomcat and never had problems with caching so i wonder what the problem could be (and maybe find a way to solve it..)

Similar Messages

  • Using the server cache dir: Dumb programming?

    Hello,
    I have installed an application on Weblogic portal server 8.1.4, SP5 on Linux Redhat 4. This application is using the .wlnotdelete directory to store some files, which it updates once in a while. I understand this directory is called the server cache, and I know you can empty it if you want changes in your server or application to take immediate effect after a restart.
    So: isn't it stupid to have your application put files created by your application in this directory?
    And, when is this cache cleared by the server itself? It doesn't happen at every server restart I think...
    There is not much in the documentation about this directory...

    Hi Morr,
    Basically, you need to do both. The tangosol.jar and
    coherence.jar files must be in the classpath and you will
    need to code using the Coherence API. However, if you have local caching functionality already (and you are using a Map) it should be a pretty easy port since Coherence hides the clustering complexities behind a java.util.Map interface. Take a look at com.tangosol.net.CacheFactory and com.tangosol.net.NamedCache, as well as, the FAQ item entitled "Q: How do I create a Coherence cache?".
    I would also suggest taking a look at the Feature Guide located at: http://www.tangosol.com/coherence.jsp
    Later,
    Rob Misek
    Tangosol, Inc.
    Coherence: Cluster your Work. Work your Cluster.

  • For how long the library Cache latch is hold.

    Hi ,
    For how long the library Cache latch is hold.
    Is it hold , till the new sql is placed in the library cache
    or
    Till it got parsed
    or
    Till it got executed?
    Thanks
    Naveen.

    Hi ,
    For how long the library Cache latch is hold.
    Is it hold , till the new sql is placed in the library cache
    or
    Till it got parsed
    or
    Till it got executed?
    Thanks
    Naveen.

  • How does presentation server cache shared by users and roles in OBIEE 11.1.1.6.7

    We are running through a scenario where user1 is assigned to role1 and run a report and after couple minutes user1 is assigned to role2 and run the same report, in 2nd run i see an error in saw log, even though there is presentation server cache that was generated by user1 is previous run it s not shared to the same user if his roles is chnaged, Is this expected behaviour ? by the way we dont have any row level security jut object level
    [2014-01-20T08:11:54.000-07:00] [OBIPS] [ERROR:31] [] [saw.views.dashboard] [ecid: 2f571434fbbd5490:72a3494e:14398c832ad:-8000-0000000000daa36e,0:1] [tid: 1545778944] Invalid request ID (ml75inai8rfs23tn9ih04bh236).  The request you are attempting to access has either expired or is from a previous logon.[[
    File:reportquerycache.cpp
    Line:68
    Location:
    saw.views.dashboard
    saw.httpserver.processrequest
    saw.rpc.server.responder
            saw.rpc.server
    saw.rpc.server.handleConnection
    saw.rpc.server.dispatch
    saw.threadpool.socketrpcserver
            saw.threads
    SessionID: hjhbcvfak396tc89uuu550g8bgv75v2rshv2oeq
    Thanks for your help
    Srix

    The variable DISABLE_CACHE_HIT is used to enable or disable Oracle BI Server result cache hits and not the presentation server cache. So the behavior seems to be correct. You can manage the presentation server cache settings in hte instanceconfig.xml file. Refer to the documentation below to understand the parameters you can configure: ( http://docs.oracle.com/cd/E21764_01/bi.1111/e10541/querycaching.htm#i1218900 )

  • How does the server authenticate a print user?

    I don't fully understand how my XServe authenticates my clients for print access. If the XServe user account differs from the account on the client machine, does it still work? For example, if server account John Smith is allowed to print to a queue, will it still work if the client machine account is Johnny Smith?
    How does the XServe get the authentication info?

    Hi
    I might be able to shed some light on this. Is the printer you are managing a networked printer on the same IP address range as server and clients?
    If thats the case then you can print to the printer directly and bypass the server’s print server anyway. You have to use different methods if you really want to lock the printer down and have users print to it by using the accounts specified in WorkGroup Manager – and by implication using either PasswordServer or Kerberos authentication.
    You can do this a number of ways. If your server has two ethernet ports – which yours has – then place the printer on the other ethernet port that is currently not in use. There is no way for any of your clients to access this printer other than through the Server. If you have more than one networked printer, again utilise the other ethernet port, this time attach a small switch/hub 5-8 ports (depending on how printers you have) to the port and work it the same way.
    Hope this helps.

  • BlazeDS with WAS 6.1 streaming channel killing the server?

    Hi,
    We are experiencing a strange issue with WAS (websphere server) 6.1 with BlazeDS
    after a while severe performance degrades and then system hungs shortly after
    Some prelimenary observations:
    we are seeing following errors in Server Log:
    [6/22/10 16:41:26:828 EDT] 000000b0 ThreadMonitor W   WSVR0605W: Thread "WebContainer : 3-in-streaming-mode" (0000002a) has been active for 656127 milliseconds and may be hung.  There is/are 1 thread(s) in total in the server that may be hung.
    [6/22/10 16:48:00:144 EDT] 000000b1 ThreadMonitor W   WSVR0605W: Thread "WebContainer : 0" (00000027) has been active for 753457 milliseconds and may be hung.  There is/are 2 thread(s) in total in the server that may be hung.
    We do see that there is always one active connection maintained betweeb browser and server(which is connected to ):
    messagebroker/streamingamf
    and  that keeps sending keep-alive signals , now is this a reason we are getting hung messages? can we safely ingore it?
    basically can streaming chanell cause that error? and what would be suggestions tweaks/modifications to fix that issue?
    our destination config :
    <destination id="alerts-Push-jms" >
            <properties>
                <jms>
                    <destination-type>Topic</destination-type>
                    <message-type>javax.jms.TextMessage</message-type>
                    <connection-factory>jms/***JMSTopicConnectionFactory</connection-factory>
                    <destination-jndi-name>jms/AlertEventingTopic</destination-jndi-name>
                    <delivery-mode>PERSISTENT</delivery-mode>
                    <message-priority>DEFAULT_PRIORITY</message-priority>
                    <preserve-jms-headers>"true"</preserve-jms-headers>
                    <acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
                    <max-producers>1</max-producers>
                </jms>
            </properties>
            <adapter ref="jms" />
        <channels>
            <channel ref="my-streaming-amf" />
        </channels>
        </destination>

    Actually we did not fix it from WAS perspective, but what we did is ditched a blazeds streaming channel in favor of polling channel,
    that solved the issue.
    it appears that WAS has issues with connections that are Held open for a long time.

  • Dreamweaver with network homes kills the server

    1. Dreamweaver is very slow to open on both our laptops and
    desktops. The start page menu pops up, but the color-wheel cursor
    continues to spin for between one and two minutes before the user
    is able to start working in Dreamweaver. If one disables the start
    screen, it doesn't happen, but it definitely feels like a bug.
    2. Dreamweaver also keeps slowing down our entire server.
    We've discovered that Dreamweaver is writing temp files to the
    server under ... Library/Application Support/Adobe/Dreamweaver
    9/Configuration/temp. This happens when multiple
    users have Dreamweaver open, and slows down logins and such
    for everyone, even users who do not have Dreamweaver open.
    I tried redirecting the temp folder locally, but it did not
    improve performance.

    "jdobbie" <[email protected]> wrote in
    message
    news:fe18sk$ge7$[email protected]..
    > 1. Dreamweaver is very slow to open on both our laptops
    and desktops. The
    > start page menu pops up, but the color-wheel cursor
    continues to spin for
    > between one and two minutes before the user is able to
    start working in
    > Dreamweaver. If one disables the start screen, it
    doesn't happen, but it
    > definitely feels like a bug.
    >
    > 2. Dreamweaver also keeps slowing down our entire
    server. We've
    > discovered
    > that Dreamweaver is writing temp files to the server
    under ...
    > Library/Application Support/Adobe/Dreamweaver
    9/Configuration/temp. This
    > happens when multiple
    > users have Dreamweaver open, and slows down logins and
    such for everyone,
    > even
    > users who do not have Dreamweaver open.
    >
    > I tried redirecting the temp folder locally, but it did
    not improve
    > performance.
    Hi jdobbie,
    I'm just starting to use dreamweaver on the mac, however your
    analysis
    puzzles me.
    Temp files shouldn't have much negative effect on logins, why
    do you think
    this is causing the slowdowns?
    Are your users logging on to the server via Remote Desktop or
    VNC or have
    you redirected a local folder to a network location?
    One thing that may impact network performance is dreamweaver
    refreshing the
    remote site, or the local site when it's root is on the
    network.
    Joris

  • How long is the locally cached token valid?

    Dear Forum,
    we are currently planning to show Microsoft RMS to potential Clients with a live demo and so on. In our preparations we noticed that users are able to be authenticated eventhough there is no connection to the cloud Service. We also figured out that some
    kind of cache (more specific: parts of the certificates) is stored in C:\Users\<username>\AppData\Local\Microsoft\MSIPC, but it's quite intransparent how the cache is used and for how long the locally cached token is valid for a specific RMS protected
    file. In order to be prepared for such questions after the demo, I kindly ask you for help on this matter.
    Thanks and Regards
    Fabio

    Hi Fabio,
    When a user first authenticates against the certification URL of an RMS server, the user is than issued a RAC (rights account certificate) or GIC certificate (those that you see in MSIPC folder). RAC/GIC is issued after user authenticates to the domain and
    is used with further communication between user->RMS server to confirm users' identity. For ADRMS (RMS on premises) the default RAC lifetime is 365 days (it can be manually changed). I would assume that the same amount time is set for Azure RMS.
    You can have a better view on certificates with this great post of Dan Plastina 
    http://blogs.technet.com/b/rms/archive/2012/04/16/licenses-and-certificates-and-how-ad-rms-protects-and-consumes-documents.aspx
    Did my post help you or make you laugh? Don't forget to click the Helpful vote :) If I answered your question please mark my post as an Answer.

  • How to upload a file to the server using ajax and struts

    With the following code iam able to upload a file ato the server.
    But my problem is It is working fine if iam doing in my system nd when iam trying to
    access theis application from someother system in our office which are connected through lan
    iam getting an error called 500 i,e internal server error.
    Why it is so???????
    Plz help me????????
    It is required in my project.
    I want the code to access from every system.
    My exact requirement is i have to upload a file to the server and retrive its path and show it in the same page from which we
    have uploaded a file.
    Here the file has to be uploaded to the upload folder which is present in the server.Iam using Tomcat server.
    Any help highly appreciated.
    Thanks in Advance
    This is my input jsp
    filename.jsp
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    <script type="text/javascript">
    alertflag = true;
    var xmlHttp;
    function startRequest(file1)
         if(alertflag)
         alert("file1");
         alert(file1);
    xmlHttp=createXmlHttpRequest();
    var video=document.getElementById("filepath").value;
    xmlHttp.open("POST","FilePathAction.do",true);
    xmlHttp.onreadystatechange=handleStateChange;
    xmlHttp.setRequestHeader('Content-Type', application/x-www-form-urlencoded');
    xmlHttp.send("filepath="+file1);
    function createXmlHttpRequest()
         //For IE
    if(window.ActiveXObject)
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
         //otherthan IE
    else if(window.XMLHttpRequest)
    xmlHttp=new XMLHttpRequest();
    return xmlHttp;
    //Next is the function that sets up the communication with the server.
    //This function also registers the callback handler, which is handleStateChange. Next is the code for the handler.
    function handleStateChange()
    var message=" ";
    if(xmlHttp.readyState==4)
         if(alertflag)
              alert(xmlHttp.status);
    if(xmlHttp.status==200)
    if(alertflag)
                                       alert("here");
                                       document.getElementById("div1").style.visibility = "visible";     
    var results=xmlHttp.responseText;
              document.getElementById('div1').innerHTML = results;
    else
    alert("Error loading page"+xmlHttp.status+":"+xmlHttp.statusText);
    </script></head><body><form >
    <input type="file" name="filepath" id="filepath" onchange="startRequest(this.value);"/>
    </form>
    <div id="div1" style="visibility:hidden;">
    </div></body></html>
    The corresponding action class is FIlePathAction
    package actions;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.*;
    public class FilePathAction extends Action{
         public ActionForward execute(ActionMapping mapping, ActionForm form,
                   HttpServletRequest request, HttpServletResponse response)
                   throws IOException, ServletException
              String contextPath1 = "";
              String uploadDirName="";
              String filepath="";
                        System.out.println(contextPath1 );
                        String inputfile = request.getParameter("filepath");
                        uploadDirName = getServlet().getServletContext().getRealPath("/upload");
                        File f=new File(inputfile);
    FileInputStream fis=null;
    FileOutputStream fo=null;
    File f1=new File(uploadDirName+"/"+f.getName());
    fis=new FileInputStream(f);
         fo=new FileOutputStream(f1);
                        try
         byte buf[] = new byte[1024*8]; /* declare a 8kB buffer */
         int len = -1;
         while((len = fis.read(buf)) != -1)
         fo.write(buf, 0, len);
                        catch(Exception e)
                                  e.printStackTrace();
                        filepath=f1.getAbsolutePath();
                        request.setAttribute("filepath", filepath);
                        return mapping.findForward("filepath");
    Action-mappings in struts-config.xml
    <action path="/FilePathAction"
                   type="actions.FilePathAction">
                   <forward name="filepath" path="/dummy.jsp"></forward>
              </action>
    and the dummy.jsp code is
    <%=request.getAttribute("filepath")%>

    MESSAGE FROM THE FORUMS ADMINISTRATORS and COMMUNITY
    This thread will be deleted within 24 business hours. You have posted an off-topic question in an area clearly designated for discussions
    about Distributed Real-time Java. Community members looking to help you with your question won't be able to find it in this category.
    Please use the "Search Forums" element on the left panel to locate a forum based on your topic. A more appropriate forum for this post
    could be one of:
    Enterprise Technologies http://forums.sun.com/category.jspa?categoryID=19
    David Holmes

  • Defined the Server as a valid Tomcat Servlet! AND ajust Client to Tomcat

    I am sorry for this amateurs questions. I have never used Tomcat, and am having some problems in placing a Server in one.
    Basically i have made in JAVA a Client and Server, and wish to place the Server in a TomCat, and keep the Client in my machine (for now).
    I am using Socket communication, so i have changed the port to 8081 (the one supported by my TomCat Server).
    My problem, is that i am supposed to place the Java.Class somewhere, and also i need to place some code in the Java Classes... like:
    Import Javax.servlet.*;
    Import Javas.servlet.jsp.*;
    Do i also need to use Extension to JSPServlet in my java functions???
    If you could point me to an example, it would be very appreciated...
    Thanks

    1:
    the database has nothing to do with the web application and therefore it
    should be stored in a sepaerate location
    2:
    the error about not finding the database should be fixed be changing the
    connectin url not by placing the database in a different location.
    set the database up as a ODBC datasource and connect to it by using
    the datasource name.
    check out the jdbc tutorial, it deals with jdbc/odbc bridge.
    3:
    acccess is not a database and is not recommended to use it with
    web applications
    4:
    you should be using Connection pooling to connect to databases

  • Save file from server cache in WebUI

    Hello,
    maybe someone here can help me with this obscure problem, that bothers me for quite some time now:
    I want to save a pdf file from an internal table to the clients harddrive. Everything is implemented as in Thomas Jung's BLOG(forgot the link) on getting the table in the server cache and I do have my working download URL.
    Now for the difficult stuff: I need to get the file to download correctly without freezing the application.
    This are the ways I tried, but I always do end up with the loading icon in front of my page, not able to make any input. gv_download_url is my working URL, file is OK too when I open it on the hdd:
    1.
      <iframe src="<%= gv_download_url%>" width="0" height="0" id="PDFDownload"
              name="PDFDownload" style="display:none">
      </iframe>
    2.
    <p>
      <object data="report.pdf" type="text/unicode" width="1" height="1">
        <param name="src" value="<%= gv_download_url %>">
        Ihr Browser kann das Objekt leider nicht anzeigen!
      </object>
    </p>
    3.
    <script type="text/javascript">
    function pageLoaded(){
    var myFrame = document.createElement("iframe");
    var src = document.createAttribute("src");
    var height = document.createAttribute("height");
    var width = document.createAttribute("width");
    src.nodeValue = "<%= gv_download_url%>";
    height.nodeValue = "600";
    width.nodeValue = "800";
    myFrame.setAttributeNode(src);
    myFrame.setAttributeNode(height);
    myFrame.setAttributeNode(width);
    var output = document.getElementById("Bereich");
    output.appendChild(myFrame);
    document.close();
    </script>
    <div id="Bereich"/>
    <iframe src="about:blank" onload="pageLoaded()" height="0" width="0"/>
    The only working way I know is this one:
    <script langugage="Javascript">
      var win = window.open("<%= gv_download_url%>");
    </script>
    But I always end up with an empty browser page open, whicht the user has to close manually.
    <i>Short: URL is good, file data is good. How do I get the file download dialog without freezing WebUI?</i>
    Any help would be highly appreciated. Thanks in advance.

    Had the chance to test it in IC WebClient on CRM4.0 today. Everything works fine.
    It seems to be really WebUI specific then. Suppose some missed JavaScript event, that triggers the "Please Wait"-Icon.

  • Serve Cache Issue

    Hi buddies,
    I have been made up a download code and I'm using the serve cache functions.
    So, After got my path to the file as you can see below:
    Oninputprocessing:
    cl_http_server=>server_cache_upload( url      = display_url
                                              response    = cached_response ).
    I left in my current screen two ways to get the file, one of them is through the link directly to the file using the code below:
    <htmlb:link id      = "ID_DOWNLOAD01"
                        text          = "Click Here!"
                        reference     = "<%=display_url%>"
                        target        = "_BLANK"/>
    The other way is through the onLoad event, I'm calling a javascript function that contain the window.open statament.
    Well, If i click to the link "Click here" a auto popup screen shows me up to accept the file. But when I use the window.open at the onLoad event, the screen open and close without let me get the file. Both way lead me to the display_url path that I got from the serve cache. By the way I've trying absolute and relative path.
    I've trying to using window.location.href to get the file in the same screen, but this one mess with my application.
    Any idea how can I make this file available?
    Thanks in advance,
    Alex

    do not call the js function in onload instead call like below
    <% IF not display_url IS INITIAL.
          %>
          <sc ript lang uage="Jav ascript">
            wi ndow .op en("<%= display_url%>");
          < / scrip t>
          <%
      ENDIF.
          %>

  • Timeout: Tuxedo kills the service but not the database connection

    Hi all,
    I am experiencing some performance problems on my system due an efficient SQL and a Tuxedo improper timeout handling.
    A service is using a "problematic" SQL (we will tune it but it's not the main problem). After 60 seconds from the execution, Tuxido kills the services for a timeout.
    At this point I would like Tuxedo to notify DB2 database as well in order to stop processing the SQL. Instead the SQL continues running on the database (also if the service is killed) and this produce a gradual slow down of the performances.
    In the UBBCONFIG, we are using a service configuration like the following timeout configuration:
    .RESOURCES
    SCANUINIT 5
    SANITYSCAN 6
    BLOCKTIME 12
    .SERVICES
    DEFAULT: SVCTIMEOUT=45
    service1 SVCTIMEOUT=60 TRANTIME=60
    service2 SVCTIMEOUT=60 TRANTIME=60
    Note: not all the services are listed in the .SERVICES section and we are using the default NOTIFY as well as an OPENINFO.
    Can you please help me in finding a configuration to kill both the services and the database?
    Thanks in advance,
    Benedetto

    Hi Benedetto.
    First of all, Tuxedo doesn't kill services, it kills servers. Your UBBCONFIG file specifies three timeouts, BLOCKTIME, SVCTIMEOUT, and TRANTIME.
    BLOCKTIME specifies how long a Tuxedo API that needs a response will wait for that response. If the response isn't received in that period of time, Tuxedo will return TPETIME to the caller. As with any failure, if the request was part of a transaction, the transaction is marked rollback only. Note, this timeout does not affect the request, whether sitting in a server's IPC queue or currently executing in a server.
    SVCTIMEOUT is a much more severe timeout and determines how long Tuxedo will allow a service implementation to execute. If a service implementation doesn't reply within the SVCTIMEOUT period, Tuxedo will issue an OS level KILL request to kill the process. If the server is marked restartable, Tuxedo will then try to restart the server assuming none of the restart limits have been reached. Killing the server causes the request to be lost within the server so the caller will stay blocked until BLOCKTIME is reached at which point the above actions will take place.
    TRANTIME is the amount of time Tuxedo allows a transaction to remain active and viable. When this period expires, Tuxedo will mark the transaction as timed out with the only option being rollback. As well, Tuxedo aborts any API requests that would normally cause messaging to occur, i.e., making a tpcall() within a timed out transaction will fail without any attempt to call the service.
    So in your case, the issue is partially that you have the values of your timeouts in somewhat reverse order. Typically we see BLOCKTIME being the smallest value, with TRANTIME typically larger than BLOCKTIME, and SVCTIMEOUT larger even still, although there are good reasons for exceptions to this guideline. Part of the reasoning behind this is that killing a server is a significant thing and its usually best to try and let the server complete whatever its doing, if if the work has been timed out either due to BLOCKTIME or TRANTIME, since the cost of killing and restarting a server is significant.
    Tuxedo will notify the database of the transaction status when the application finally issues a tpcommit() or a tpabort() request, but not until then. Although, if SVCTIMEOUT is hit, then killing the server should cause the database connection to be lot.
    If you could describe the behavior you are seeing and the relevant portions of your ULOG we can try to make some sense of what is happening.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Shell window for the life of the server??

    We open a shell to remotely start a server on another machine, but we can't then
    logout of the shell without killing the server! Do we really have to maintain
    that
    shell for the life of the server? If someone starts a server and then has to
    bounce
    their machine, it would mean ungracefully shutting down the remote WLS.
    What are we missing? Cannot find an answer in the WLS 6.1 administration guide.
    We tried putting the command in the background, and using nohup, but nothing
    seems to work.
    Answer??

    Michael McHugh wrote:
    I start my weblogic server using nohup startWebLogic.sh & and find that it dies after a period of time.. the script runs forever in the background, but that's not what I want... I want the server running in the background, not the startup script....
    I have checked that script to find the following...
    $JAVACMD $JAVA_OPTIONS -classpath $CLASSPATH -Dweblogic.Domain=informatica -Dweblogic.Name=myserver -Dbea.home=$WL_HOME/infalicense -Dweblo
    gic.management.password=$WLS_PW -Dweblogic.ProductionModeEnabled=$STARTMODE -Djava.security.policy==$WL_HOME/lib/weblogic.policy weblogic.S
    erver
    and I notice the weblogic.Server to be located in the "lib" directory... BUT.. when I go to the lib directory, it does not appear there... so I cannot issue the command nohup $JAVA weblogic.Server &
    also, where/how are the user and pass specified at the command line?
    Thanks
    MikeWhen you look at the list of running processes you won't find anything
    that is obviously ``WebLogic" you will, depending on Unix version, see a
    bunch of proceses all called Java. Also the ``weblogic.Server" you are
    referring to is a class inside the weblogic.jar file which is located in
    $BEA_HOME/weblogic81/server/lib. You could not simply issue the command
    $java weblogic.Server anyway as that wouldn't be enough to start the
    server completely. Username and password information can be passed in a
    number of ways. First you can add the system properties
    weblogic.management.username and weblogic.management.password to the
    start script. You can also create a boot.properties file in the domain
    directory containing the 3DES encrypted username and password. Third,
    you can create a UserConfig file which contains the encrypted username
    and password. All of this and more is detailed in the administration
    documentation:
    http://edocs.bea.com/wls/docs81/adminguide/overview.html
    ~Ryan Upton

  • Image provided in server cache does not appear in Excel download

    Hello WD Experts!
    I have a Web Dynpo (ABAP) ALV table with material master data. One column contains the image of the product or a "sorry, no picture" image, if no specific material image exists.
    The images are not available as MIME objects, hence I load the images from an external source and push them into the server cache using the method cl_http_server=>server_cache_upload( ... ). The lifetime for the cache is defined with 600. The "sorry, no picture" -image is a MIME object.
    All works fine... except for the download to Excel. Only the "sorry, no picture" -image appears. The others gets replaced by a placeholder icon which looks similar to those frequently seen in emails or slow web pages.
    Why don't the cached images get downloaded to Excel???
    Best Regards
    Bodo

    I would imagine this is a limitation of the Excel converter functionality within the ALV. It is probably designed to only download images that come directly from the MIME repository.  The logic between the two approaches would be very different.  Images in the MIME repository can be read from the database using the MIME APIs. To read the images from the Server Cache, the ABAP program would have to make an HTTP request to the cache (using CL_HTTP_CLIENT).  I'm guessing the convert logic simply doesn't do this.
    The other option is - is your lifetime high enough? 600 seconds seems like it would be long enough - at least for a test - there is no guarentee that in a real application the user might not display the data for more than 10 minutes before downloading. Probably not your problem, but something you might still consider if you get this working.
    My only suggestion is that you would have to create your own excel conversion instead of using the ALV one.

Maybe you are looking for