Forum OpenACS Q&A: Oracle 10g/Fedora Core 3

Collapse
Posted by howard snyder on
I just want to make sure...before I spend a lot of time for nothing.

Will ACS work with Oracle 10g on a Fedora Core 3 installation?

Howard Snyder

Collapse
Posted by Jade Rubick on
I think it hasn't been tested well on Oracle 10g, but I imagine it should work with some minor bugs. I personally will be doing this at some point on my dev laptop.

If you do find any bugs, feel free to commit fixes or patches via the bug-tracker.

Collapse
Posted by Cynthia Kiser on
We just tried to compile nsoracle 2.7 against Oracle 10g with 0 luck. But looking at the cvs repository version of the Makefile, it looks like one might have some better luck with 2.8.beta1 (AKA cvs HEAD). Will give it a go tomorrow and report back.

Anyone who has already succeeded, feel free to jump in and tell us all about it.

Collapse
Posted by Jose Pablo Escobedo Del Cid on
Here at uc3m we recently compiled nsoracle 2.7 against Oracle 10g and succeeded, we just replaced the line:

MODLIBS = -L$(ORACLE_HOME)/lib -lclntsh -lcore9 -lcommon9 -lgeneric9 -lclient9

with

MODLIBS = -L$(ORACLE_HOME)/lib -lclntsh -lcore10 -lcommon10 -lgeneric10 -lclient10

and that was it. (If you are not using the source code to compile aolserver, you must need to change the NSHOME var too, and assign the right path to it)

I hope this helps.

-jopez

Collapse
Posted by Don Baccus on
nsoracle 2.8 may not be compatible with OpenACS, at some point the new maintainer took out some stuff we need, I'm not clear on the status but you have been warned...

Since nsoracle 2.7 works fine when compiled with the changes to the make file mentioned by Jose Pablo, I'd recommend you just use it ...

Collapse
Posted by Connie-Lynne Villani on
Using both nsoracle 2.7 (with the makefile changes) and 2.8, we got a ton of warnings at compile time. No errors, though, so we soldiered on...

Unfortunately, nsoracle won't load at startup (from the logs):
[14/Apr/2005:02:06:05][2992.3086952672][-main-] Warning: modload: could not find Ns_ModuleInit in /software/stow/ao
lserver/bin/nsoracle.so
[14/Apr/2005:02:06:05][2992.3086952672][-main-] Fatal: modload: failed to load module '/software/stow/aolserver/bin
/nsoracle.so'

Any idea how we should proceed?

Connie-Lynne (I work with Cynthia; this is the same installation she references above)

Collapse
Posted by Connie-Lynne Villani on
We think our problem is related to some warnings we get when trying to build nsoracle:

[root@holden nsoracle-2.7]# make
gcc -pipe -I/u01/app/oracle/product/10.1.0/Db_1/rdbms/demo -I/u01/app/oracle/product/10.1.0/Db_1/rdbms/public -I/u01/app/oracle/product/10.1.0/Db_1/network/public -I/u01/app/oracle/product/10.1.0/Db_1/plsql/public -O -D__NO_STRING_INLINES -D__NO_MATH_INLINES -Wall -Wno-implicit-int -fPIC -I/software/stow/aolserver-4.0.10/include -I/software/stow/tcl-8.4.6/include -DNO_CONST -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACK\
SIZE=1 -DHAVE_PTHREAD_ATFORK=1 -DHAVE_READDIR_R=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_STAT64=1 -DHAVE_TYPE_OFF64_T=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_STRTOLL=1 -DHAVE_STRTOULL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -DPEEK_XCLOSEIM=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1 -DHAVE_INTTYPES_H=1 -DHAVE_TIMEGM=1 -DHAVE_POLL=1 -DHAVE_DRAND48=1 -DHAVE_RANDOM=1 -DHAVE_CMMSG=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_ZLIB_H=1 -DHAVE_LIBZ=1 -c -o nsoracle.o nsoracle.c
nsoracle.c:272: warning: conflicting types for built-in function 'log'
nsoracle.c: In function `Ns_DbDriverInit':
nsoracle.c:897: warning: passing arg 3 of `log' discards qualifiers from pointer target type
nsoracle.c:901: warning: passing arg 3 of `oci_error_p' discards qualifiers from pointer target type
nsoracle.c:907: warning: passing arg 3 of `error' discards qualifiers from pointer target type
nsoracle.c:918: warning: passing arg 3 of `log' discards qualifiers from pointer target type

...and so on with warnings about arg 3 of log for what appears to be most functions in the module.

We've tried the following options to get nsoracle 2.7 to compile and build properly:

NSHOME set to /install/src/aolserver-4.0.10 (our source directory)
NSHOME set to /software/stow/aolserver-4.0.10 (our build directory)

Neither of these appear to make a difference in terms of the number of warnings we get when building nsoracle. I've also set AOLSERVER to both those values, and tried all four combos of those values, and we still get the warnings. Just for kicks, I also set the following environment variables:

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/10.1.0/Db_1
ORACLE_SID=demo1
NLS_LANG=AMERICAN_AMERICA.US7ASCII
NLS_DATE_FORMAT=YYYY-MM-DD
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin

Again, we still got the "type mismatch" error message on build, and the fatal error message about nsoracle being unable to load (because it can't locate Ns_ModuleInit) when starting AOLserver.

Any idea what we can do? Jose, you said you got it running, could you give us some more details? We're on RHEL 4.0, for the record.

Connie-Lynne

Collapse
Posted by Jose Pablo Escobedo Del Cid on
I forgot to say that we're using Debian, I just followed the instructions at www.openacs.org and http://www.togaware.com/linux/survivor/Oracle_10g.shtml(for debian), I also set all the environment variables, just as in de documentation, and I don't remember getting so many warnings.

I'm sorry I can't help you more. Ypu could try searching for RHEL specific documentation (http://www.puschitz.com/InstallingOracle10g.shtml maybe?).

Good luck! =)

Jose Pablo

Collapse
Posted by Cynthia Kiser on
Thanks. Oracle installed fine. Our problems are with compiling the nsoracle driver. But since you say you have had success, we'll poke around some more and see if we can figure out why ours doesn't compile correctly.
Collapse
Posted by Cynthia Kiser on
Well I am still a little concerned about the warnings. But the fatal loading error was in the way we were trying to load the module. The kind folks on the AOLserver IRC reminded me that one does not load the nsoracle driver in the modules section - instead you load nsdb.so, and then it loads the driver specified in the ns/db/drivers section. Much better now! I can select sysdate from dual. Now for some ACS testing (and perhaps even some OACS/dotLRN testing if I get to it).
Collapse
Posted by howard snyder on
I have Oracle up and running.
I have AOLServer up and running, without trying to load the oracle driver.
I compiled the oracle driver OK.
I duly note the warnings on the config.tcl file and I think I have it right.
So why am I getting "could not find Ns_ModeInit" error when I brave out into the oracle driver world world?

Howard Snyder

Collapse
Posted by Jade Rubick on
Hi Howard:

I posted a few bug fixes to the OpenACS installation on HEAD, but I wasn't getting the error message you were so perhaps this is irrelevant to you.

Collapse
Posted by howard snyder on
I succeeded in having AOLServer load nsoracle 2.7 but carefully following message of Cynthia Kiser from 4/15.

What do I put (in the .tcl config file) as the Datasource for Oracle? Localhost/localdomain?

Howard Snyder...

ps Nick and Steve say hi to C. Kiser.

Collapse
Posted by Andrew Piskorski on
Howard, no, absolutely not. (AFAIK this stuff is all exactly the same for 8i, 9i, and 10g, btw.)

If AOLserver and the Oracle RDBMS are on the same box, you can just set ns_param DataSource to empty string, which will use the Bequeath connection method.

If they are on different boxes, you must make sure that the Oracle listener is configured properly, and then set ns_param DataSource to the proper SID, "ora10" or whatever else you named it.

Collapse
Posted by howard snyder on
Thank you Andrew, that worked.

By the way, may I ask an Oracle question?
I keep getting "The Network Adaptor could not establish the connection" error when I try to access Oracle Enterprise Manager (from a remote machine). What are the proper settings for the tsanames and listener files?

Howard

Collapse
Posted by Andrew Piskorski on
Howard, I'm not sure; I've certainly never used Oracle Enterprise Manager. Check my Oracle notes, if it's not in there I probably don't know the answer.
Collapse
Posted by Mel Lord-Lloyd on
I'm running AOLServer 4.0.7 built 07/22/2004 on WindowsXP w/Tcl 8.4, with Oracle 10g as the database. I'm not having any luck compiling the driver. Has anyone compiled the nsoracle.dll driver for use with WindowsXP/Oracle? If so, could you please post a copy of it someplace where everyone else can use it.

Thanks
Mel2L

Collapse
Posted by Martin Elsman on
I have troubles linking in oracle dynamic libraries when trying to build and install the nsoracle 2.7 driver. Even after having installed oracle-xe and oracle-xe-client (10.2.0.1) using apt-get, I have troubles locating the libraries

-lcore10 -lcommon10 -lgeneric10 -lclient10

or other variants during linking. Have anyone experienced the same problem?

Collapse
Posted by Andrew Piskorski on
Martin, on Ubuntu 6.06 Dapper, I compiled the nsoracle CVS head, which built fine out of the box. It seems to work with OpenACS, but I have not yet used it heavily. I don't think I ever tried the changes above to get the older nsoracle 2.7 release to build against 10g.

I don't now what "oracle-xe" is exactly, is that some 3rd party Debian or Ubuntu package for Oracle Express Edition? Do you know for a fact that it is supposed to provide the same libraries that you get with the normal Oracle 10g server?

Collapse
Posted by jerry arns on
Hi,

I'm facing the same problem.
I found out that libs are missing from Oracle XE.

Did you find a workaround (other than installing regular Oracle 1O.2, compile and de-install?).

Would you share your binary driver for 10.2?