Skip to Main Content

ORDS, SODA & JSON in the Database

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Direct procedure call cached?

Tomas AlbinssonNov 7 2013 — edited Nov 28 2013

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,'&lt;null&gt;')||'". 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

This post has been answered by Tomas Albinsson on Nov 28 2013
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 26 2013
Added on Nov 7 2013
4 comments
2,308 views