geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Maximov" <pavel.maxi...@returnpath.net>
Subject Oracle JDBC connections timeout
Date Tue, 16 Jan 2007 21:56:31 GMT
Hello everybody,

I'm not sure if the issue is related to the oracle driver or specific to
geronimo, but here is what's happening.

I have an oracle connection pool with the configuration below:

So the oracle driver version I'm using is 10.2.0.2.

I defined an error-page element in web.xml to redirect to a static error
page when HTTP error code is 500.

	<error-page>
		<error-code>500</error-code>
		<location>/apperror.html</location>
	</error-page>

The desired behavior for the application would be, in case database goes
down, to generate an exception with HTTP error code 500, which will be
caught by error page handler and the user will be redirected to a static
error page.

And it's working if you restart the app server when the connection is
already down (I'm testing installing an iptables MAC-address based
filter to reject packets, not to drop them, so it's not a TCP stack
issue).

/sbin/iptables -A INPUT -m mac --mac-source 00:0B:DB:E7:9D:1F -d 0/0 -j
REJECT --reject-with icmp-host-prohibited

However, when the app server is already running and DB connection goes
down (iptables filter is installed) - the app is hanging instead of
generating an exception within a reasonable timeout period.

Any clues how to prevent this from happening? I need an app to generate
an exception instead of hanging. Are there any hidden driver setting or
deployment plan elements to configure this?

This is happening on geronimo 1.1.1, and the app is using JDBC calls
directly, without any ORM or caching.

Thank you for any help with this,
--Pavel.

<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.1">
    <dep:environment
xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
        <dep:moduleId>
            <dep:groupId>console.dbpool</dep:groupId>
            <dep:artifactId>DevDBPool2</dep:artifactId>
            <dep:version>1.0</dep:version>
            <dep:type>rar</dep:type>
        </dep:moduleId>
        <dep:dependencies>
            <dep:dependency>
                <dep:groupId>oracle</dep:groupId>
                <dep:artifactId>oracle-thin</dep:artifactId>
                <dep:version>10.2.0.2</dep:version>
                <dep:type>jar</dep:type>
            </dep:dependency>
        </dep:dependencies>
    </dep:environment>
    <resourceadapter>
        <outbound-resourceadapter>
            <connection-definition>
 
<connectionfactory-interface>javax.sql.DataSource</connectionfactory-int
erface>
                <connectiondefinition-instance>
                    <name>DevDBPool2</name>
                    <config-property-setting
name="Password">xxxxxxxxx</config-property-setting>
                    <config-property-setting
name="Driver">oracle.jdbc.OracleDriver</config-property-setting>
                    <config-property-setting
name="UserName">xxxxxxxxx</config-property-setting>
                    <config-property-setting
name="ConnectionURL">jdbc:oracle:thin:@devdb.pmd:1521:SPMDDB1</config-pr
operty-setting>
                    <connectionmanager>
                        <local-transaction/>
                        <single-pool>
                            <max-size>20</max-size>
                            <min-size>0</min-size>
 
<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>
 
<idle-timeout-minutes>10</idle-timeout-minutes>
                            <match-one/>
                        </single-pool>
                    </connectionmanager>
                </connectiondefinition-instance>
            </connection-definition>
        </outbound-resourceadapter>
    </resourceadapter>
</connector>

Mime
View raw message