Re: 'FATAL: database "null" does not exist ' when accessing through a

From: "Joeseph Blowseph" <joseph_blowseph(at)hotmail(dot)com>
To: oliver(at)opencloud(dot)com
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: 'FATAL: database "null" does not exist ' when accessing through a
Date: 2006-01-14 22:05:26
Message-ID: BAY101-F29B2D2D6084DAEDD462E1283190@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Thanks for the comprehensive answer.

I was assuming that the container was parsing the database name from the
URL. I've also been running into an "Invalid Oracle URL" error while I've
been trying to get this working. That didn't seem to make much sense when
the driver specified is Postgres. I think the two errors may be related.

Oracle profess their container to be database-independent, but I'm not so
sure! I have a thread open in the Oracle forum and I did feel that the
problem lies with them; I just thought I'd ask here to see if I could get
any further clarification. And I did :-)

>From: Oliver Jowett <oliver(at)opencloud(dot)com>
>To: Joeseph Blowseph <joseph_blowseph(at)hotmail(dot)com>
>CC: pgsql-jdbc(at)postgresql(dot)org
>Subject: Re: [JDBC] 'FATAL: database "null" does not exist ' when accessing
>through a datasource
>Date: Sun, 15 Jan 2006 10:24:01 +1300
>
>Joeseph Blowseph wrote:
>>The datasource construction parameters are stored in a data-sources xml
>>file like this:
>>
>> <native-data-source name="PGDS1"
>> data-source-class="org.postgresql.ds.PGPoolingDataSource"
>> jndi-name="jdbc/PGPooling"
>> user="postgres" password="password"
>> url="jdbc:postgresql://localhost:5432/PGSQL1"/>
>>
>>...
>>
>>The program code does a jdni lookup for the DataSource. That means that
>>you don't have to hard-code connection details into the source. But, as
>>things stand, I have to hard-code the database name.
>
>Sorry, I guess I wasn't clear.
>
>Your container will be constructing a PGPoolingDataSource object, then
>calling various JavaBean-property-style methods on it to initialize it.
>These are methods such as setUser(), setPassword(), and setDatabaseName().
>
>When PGPoolingDataSource is asked for a connection, it constructs a driver
>URL from the various properties it is configured with and then requests a
>connection with that URL.
>
>The set of properties provided by a particular DataSource implementation
>can vary -- the container is meant to use introspection to find and invoke
>the property accessors.
>
>PGPoolingDataSource does not have a "url" property, it does not provide
>setURL() or similar. So I don't know what the container is doing with that
>"url" parameter, but it's not being set on the DataSource for sure. As the
>URL you specify never makes it to the DataSource, it's not suprising that
>the information you specify there is not used.
>
>You need to persuade your container to call the JavaBean accessor
>setDatabaseName() on the DataSource before use. Perhaps you could try
>adding an attribute called databaseName to your <native-data-source>
>configuration element above?
>
>This is why manually calling setDatabaseName fixes the "problem" -- but
>it's the container's job to call it, as you say. So complain to your
>container's vendor.. the PG datasource is working as designed, AFAIK.
>
>-O

_________________________________________________________________
Are you using the latest version of MSN Messenger? Download MSN Messenger
7.5 today! http://messenger.msn.co.uk

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Colin Taylor 2006-01-16 03:35:29 Socket read fails
Previous Message Oliver Jowett 2006-01-14 21:24:01 Re: 'FATAL: database "null" does not exist ' when accessing