Thread: Re: interface to NeoWebscript 3.0

Re: interface to NeoWebscript 3.0

From
"Thilo Riessner"
Date:
Hi,
since one month I am trying now to get the interface between NeoWebscript 
and PostGres working. But I don't succeed. I guess that there is an version 
conflict between the libpgtcl. I am using Postgres 6.4.1 and NeoWebscript 
3.0 . NeoWebscript asks for libpgtcl.so.1.0 in the file http.conf in the etc 
subdirectory of the installation directory. I canged it to libpgtcl.so 
because there was just a libpgtcl.so.2.0 in my distribution of postgres. 
Below there is the result when I try to load the testpage for the postgres 
interface neowebscript/tests/postgres.html. 
Thanks for any help in advance

Thilo Riessner

----------------------------------------------------------------------------

Postgres Test
      For this test to work, postgres must be correctly configured on your 
system and accessible to the webserver user id. 
                  Too bad. Something is definitely broken. The following 
traceback should help:

couldn't load file "/usr/lib/pgsql/lib/libpgtcl.so": 
/usr/lib/pgsql/lib/libpgtcl.so: undefined symbol: Tcl_GetFile                                        while executing
"load $NeoWebServerConf(PostgresLib$PostgresVersion) 
$NeoWebServerConf(PostgresPkg$PostgresVersion) $safeInterp"                              (procedure "postgres_load"
line18)                                      invoked from within                                "postgres_load
$safeInterp"                               (procedure "pg_connect" line 5)                                      invoked
fromwithin                                  "pg_connect template1"
 
   If the test failed due to an error like: "pg_connect no such command", 
then this indicates either a problem in the configuration                               (access.conf), or something
moresubtle. 
 
                                  Proceed to authentication tests. 


Rießner Gase GmbH & Co.KG
Rudolf Diesel Str. 5
D-96215 Lichtenfels




Re: [INTERFACES] Re: interface to NeoWebscript 3.0

From
Tom Lane
Date:
"Thilo Riessner" <thilo@riessner.de> writes:
> I am using Postgres 6.4.1 and NeoWebscript 
> 3.0 . NeoWebscript asks for libpgtcl.so.1.0 in the file http.conf in the etc 
> subdirectory of the installation directory. I canged it to libpgtcl.so 
> because there was just a libpgtcl.so.2.0 in my distribution of postgres. 

There is a reason why the major version numbers are different: they're
not binary-compatible.  If this is a binary distribution of
NeoWebscript, you will need a newer NeoWebscript (or an older Postgres).
But if you are working from source it shouldn't matter.

> couldn't load file "/usr/lib/pgsql/lib/libpgtcl.so": 
> /usr/lib/pgsql/lib/libpgtcl.so: undefined symbol: Tcl_GetFile

Hmm, that suggests that you've got problems with your local version
of Tcl being different from what libpgtcl was compiled for.  Is this
libpgtcl one that you compiled yourself on your machine, or did you get
a binary distribution from somewhere else?  Or, perhaps you have more
than one version of Tcl installed, and NeoWebscript is picking a
different one than Postgres' configure script found?

The thing that usually gets people who are trying to dynamically load
libpgtcl is that libpgtcl.so depends on libpq.so, and many systems have
dynamic loaders that are not very bright about resolving second-level
dependencies like that.  This is not your current problem because
Tcl_GetFile is not a symbol in libpq, but if you still have problems
after you fix the Tcl version issue then you will need to look at
making sure that your system knows where libpq.so is.  There are
different incantations for that on different platforms --- see the
Postgres FAQ.
        regards, tom lane