Hi,
running Listener 2.0.2.133.14.47 under WLS.
I have asked a similar question before but was not given a good answer, https://forums.oracle.com/thread/2292910
I have a packaged procedure that prints a web page using htp.p().
Sometimes (I cannot reproduce at will) the procedure's result is not updated when I refresh the page in the browser.
That is, pressing F5 (or Ctrl+F5) gives an old result.
I wrote and granted to apex_public_user this package:
CREATE OR REPLACE PACKAGE BODY callpack AS
PROCEDURE calltest (param varchar2 default null) IS
BEGIN
htp.p('<div>You gave me "'||nvl(param,'<null>')||'". The time is '||to_char(sysdate,'HH24:MI:SS')||'</div>');
for i in 1..1000 loop
htp.p('<div>1000 rows of meaningless content</div>');
end loop;
END calltest;
END callpack;
/
I called this from my browser like this: http://server/apex/my_schema.callpack.calltest
Initially I got a new time with every update (F5). After leaving it for a few minutes and trying again it got "stuck". Every refresh now gives me the same response.
The response header for this apparently cached page looks like this
Accept-Ranges bytes
Age 1250
Connection Keep-Alive
Content-Encoding gzip
Content-Length 423
Content-Type text/html; charset=UTF-8
Date Thu, 07 Nov 2013 10:20:22 GMT
Vary Accept-Encoding
X-ORACLE-DMS-ECID 632c140cd74ad62b:281ea775:1410befd01e:-8000-0000000000d03396
X-Powered-By Servlet/2.5 JSP/2.1
I have also compiled and granted the above packaged procedure as standalone. This has (yet) not been cached. The response headers there:
Connection Keep-Alive
Content-Length 49
Content-Type text/html; charset=UTF-8
Date Thu, 07 Nov 2013 10:20:08 GMT
X-ORACLE-DMS-ECID 632c140cd74ad62b:281ea775:1410befd01e:-8000-0000000000d04f52
X-Powered-By Servlet/2.5 JSP/2.1
Besides from restarting the server, the only way I know of to make the listener actually call the procedure when caching is to change case in the url.
So if http://server/apex/my_schema.callpack.calltest is cached, I can get a new page using http://server/apex/My_schema.callpack.calltest
Or I can add a parameter (?param=X) that I change when I want new content.
Has anyone noticed this?
Is there some caching mechanism in the listener (when doing direct pl/sql-calls)? Or is it WebLogic doing something... sometimes...
Kind regards
Tomas Albinsson