Skip to Main Content

APEX

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!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

ORDS - Java memory error

partlycloudySep 25 2015 — edited Sep 25 2015

ORDS 3.0.1, APEX 4.2.6, Oracle 11.1

Submitting a page with 756 INPUT fields (as per document.forms[0].getElementsByTagName('input').length) to ORDS gives a error. The page has a dozen page items and 3 tabular forms using the g_fNN arrays.

25-Sep-2015 13:36:58.763 SEVERE [ajp-nio-127.0.0.1-8009-exec-5] oracle.dbtools.http.errors.ErrorPageFilter.log Java heap space

java.lang.OutOfMemoryError: Java heap space

    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:165)

    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:48)

    at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:938)

    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)

    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798)

    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:4901)

    at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:5631)

    at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1385)

    at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.lang.reflect.Method.invoke(Unknown Source)

    at oracle.ucp.jdbc.proxy.StatementProxyFactory.invoke(StatementProxyFactory.java:353)

    at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:178)

    at oracle.ucp.jdbc.proxy.CallableStatementProxyFactory.invoke(CallableStatementProxyFactory.java:136)

    at com.sun.proxy.$Proxy36.execute(Unknown Source)

    at oracle.dbtools.apex.OWA.execute(OWA.java:152)

    at oracle.dbtools.apex.ModApex.handleRequest(ModApex.java:254)

    at oracle.dbtools.apex.ModApex.doPost(ModApex.java:180)

    at oracle.dbtools.apex.ModApex.service(ModApex.java:90)

    at oracle.dbtools.http.entrypoint.Dispatcher.dispatch(Dispatcher.java:104)

    at oracle.dbtools.http.entrypoint.EntryPoint$FilteredServlet.service(EntryPoint.java:123)

    at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:73)

    at oracle.dbtools.http.forwarding.QueryFilteringRewrite.doFilter(QueryFilteringRewrite.java:82)

    at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)

    at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

    at oracle.dbtools.http.forwarding.ForwardingFilter.doFilter(ForwardingFilter.java:59)

    at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)

    at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

    at oracle.dbtools.http.cors.CORSPreflightFilter.doFilter(CORSPreflightFilter.java:67)

    at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)

    at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

    at oracle.dbtools.http.cookies.auth.CookieSessionCSRFFilter.doFilter(CookieSessionCSRFFilter.java:61)

OHS has no problem handling this page.

This is similar to the memory issue I had with a spreadsheet upload

This is frustrating. We can't really use ORDS in Production if we don't understand the limitations of the product. Having it fail randomly without warning is simply not acceptable.

Kris, Colm: Can you please advise?

Thanks

Comments

partlycloudy

Tomcat logs show that the default value for the Java heap memory is

25-Sep-2015 01:18:16.122 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms128m

25-Sep-2015 01:18:16.122 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx256m

Changing this to 512MB/1024MB fixes this problem. I turned on debugging and verified that the Tomcat logs/stdout file changed from a aborted request like

p_t07=....f10=....p_flow_id=..

==== Request Processed ====

to a "good" request like

p_t07=....f10=....p_flow_id=..

Exec: 297 ms

Got results length: 100206

==== Headers from Results ====

Setting Content-Type (Content-type): text/html; charset=UTF-8

==== Request Processed ====

So far so good.

But I have another ORDS 3.0.1 instance pointing to APEX 5.0.1  and even though that has the 128M/256M, it is able to handle the same page submission just fine!

So I am confused. Is this purely a ORDS issue or does the APEX version have anything to do with it?!

1 - 1
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Oct 23 2015
Added on Sep 25 2015
1 comment
3,498 views