Understanding mod_plsql 3-33
mod_plsql provides two configuration options for tuning the dead database connection detection feature:
■
Specifying the Option to Detect Dead Database Connections
■
Specifying the Timeout Period
3.11.3.1 Specifying the Option to Detect Dead Database Connections
mod_plsql corrects connections after it detects a failure that could be caused by a database node going down. This is controlled by the PlsqlConnectionValidation
parameter. For details on the PlsqlConnectionValidation parameter, refer to the mod_ plsql section in the Oracle Fusion Middleware Administrators Guide for Oracle HTTP
Server.
3.11.3.2 Specifying the Timeout Period
When the PlsqlConnectionValidation parameter is set to Automatic or AlwaysValidate, mod_plsql attempts to test pooled database connections.
You can specify the timeout period for mod_plsql to test a bad database connection in a connection pool. This is controlled by the PlsqlConnectionTimeout parameter,
which specifies the maximum time mod_plsql should wait for the test request to complete before it assumes that a connection is not usable.
For details on the PlsqlConnectionTimeout parameter, refer to the mod_plsql section in the Oracle Fusion Middleware Administrators Guide for Oracle HTTP Server.
3.12 Restrictions in mod_plsql
The following restrictions exist in mod_plsql:
■
The maximum length of the HTTP cookie header is 32000 bytes. Values higher than this generate an error.
■
The maximum length of any single cookie within the HTTP cookie is 3990. Values higher than this generate an error. This limit is due to the OCI array bind limit of
strings in arrays.
■
There is a hard maximum cookie limit in mod_plsql that limits the number of cookies being set at any given time. That limit is set to 20. Anything over 20 will be
dropped.
Note: If after node failure, multiple mod_plsql requests come in
concurrently, and mod_plsql has not yet detected the first dead connection, there could be multiple failures at that instant.
See Also: Section 3.11.2, Closing Pooled Database Sessions
for information on other scenarios where mod_plsql closes dead
database connections even when no mod_plsql request is made to the server.
See Also: Table 4–1, Database Access Descriptor DAD
Parameters Recommended Setting Summary
See Also:
Table 4–1, Database Access Descriptor DAD Parameters Recommended Setting Summary
3-34 Oracle Fusion Middleware Users Guide for mod_plsql
■
The PLSQL Gateway does not support calling procedures with OUT parameters to be called from a Web interface. Doing this may result in ORA-6502 errors. The
recommended approach is not to call any procedure that has OUT variables in it. However, the current architecture will let you modify a value as long as the
modified value does not exceed the length that was passed in. Existing applications that encounter this problem need to be modified in one of the
following ways:
■
Implement wrappers for procedures with OUT parameters so that such procedures are not invoked directly through a browser URL.
■
Create a local variable that gets assigned the value of the parameter being passed in, and is then used for all internal changes.
■
The total number of name value pairs that can be passed to a PLSQL procedure is 2000.
■
mod_plsql limits the size of a single parameter that can be passed to a procedure to 32512 bytes.
■
It is not possible to use identical DAD locations in different virtual hosts.
■
The maximum value allowed for the PlsqlCacheMaxSize and PlsqlCacheTotalSize parameters is 4294967296 bytes 4 Gigabytes. If you
specify a value higher than this, mod_plsql issues a warning and sets the value to 4 GB internally.
■
mod_plsql does not support the following:
– Web-callable procedures from the form TYPE.PROCEDURE.
– Calling Member procedures of a TYPE object from a browser.
Example 3–13 Web Callable Procedure
CREATE OR REPLACE TYPE wpro06_type AS object atr1 VARCHAR2100,
static PROCEDURE sp1 a VARCHAR2, member PROCEDURE mp1
; show errors
CREATE OR REPLACE TYPE BODY wpro06_type AS static PROCEDURE sp1 a VARCHAR2 IS
v wpro06_type; BEGIN
htp.printFrom wpro06_type.sp1 : || a ; v := wpro06_typea;
v.mp1; END;
member PROCEDURE mp1 IS BEGIN
htp.printFrom wpro06_type.mp1 : || self.atr1; END;
END; show errors
In the above example, the following URLs are not supported:
– http:host:portplsDADmytype.sp1?a=HelloWorld
Understanding mod_plsql 3-35
– http:host:portplsDADmytype.mpl
3-36 Oracle Fusion Middleware Users Guide for mod_plsql
4
Optimizing PLSQL Performance 4-1
4
Optimizing PLSQL Performance
This chapter discusses the techniques for improving PLSQL performance in Oracle HTTP Server.
This chapter contains the following sections:
■
PLSQL Performance in Oracle HTTP Server - Overview