Hi community,
Environment:
Oracle Apex 21.1 Patch 5, Oracle REST DataServices (ORDS) 21.2.0.174.1826, Tomcat
I create a page in which I create a Cards region with a Cards container template. The sql source has a blob column that contains images.
Media:
Source: BLOB column
BLOB Column: MED_CONTENT
Position: First
Appearence: Auto
Sizing: Cover
Pagination:
Type: Page
Cards per Page: 64
At run time, only a few of the 64 images are displayed.
The Tomcat log shows the following:
503 ORDS was unable to make a connection to the database. This can occur if the database is unavailable, the maximum number of sessions has been reached or the pool is not correctly configured.
In line with the recommendations found on the Internet, I increased the number of JDBC connections in the ORDS configuration, which solved the problem. All images are displayed and there is no error in the Tomcat log.
<entry key = "jdbc.InitialLimit"> 16 </entry>
<entry key = "jdbc.MinLimit"> 16 </entry>
<entry key = "jdbc.MaxLimit"> 256 </entry>
However, the solution is not good because the error was not caused by a large number of users, but by a simple query.
It causes several problems:
- All developers need to know about JDBC limitation
- in some cases unnecessarily many database sessions are used (APEX_LISTENER 16 sessions, APEX_PUBLIC_USER 121 sessions, APEX_REST_PUBLIC_USER 105 sessions)
- scaling cannot be specified exactly because it does not depend on the number of competing users, but on the query result / page sizes
For many applications, the problem is also seen in the icon view in Apex Application Builder.
Is there another solution?