Hi,
I have a Pro*C program that listens at a socket, reads the data from the socket into a table. I have a problem in compiling this Pro*C program.
My database version is 8.174. The server is running solaris 5.0
Now when i set my ORACLE_HOME to point to 8.174 and then compile my Pro*C program i get the an error. The syntax used to compile the program is as follows:
make -f makeproc.mk stminter
Once i run this i get the following output:
/usr/ccs/bin/make -f ./makeproc.mk PCCSRC=stminter I_SYM=include= pc1
proc iname=stminter include=. include=/ora/product/v8174/precomp/public include=/ora/product/v8174/rdbms/public include=/ora/product/v8174/rdbms/demo include=/ora/product/v8174/plsql/public include=/ora/product/v8174/network/public
Pro*C/C++: Release 8.1.7.0.0 - Production on Fri Apr 27 19:17:25 2007
(c) Copyright 2000 Oracle Corporation. All rights reserved.
System default option values taken from: /ora/product/v8174/precomp/admin/pcscfg.cfg
/opt/SUNWspro/WS6U2/bin/cc -xO2 -Xa -xstrconst -xF -mr -xarch=v8 -xcache=16/32/1:1024/64/1 -xchip=ultra -D_REENTRANT -K PIC -DPRECOMP -I. -I/ora/product/v8174/precomp/public -I/ora/product/v8174/rdbms/public -I/ora/product/v8174/rdbms/demo -I/ora/product/v8174/plsql/public -I/ora/product/v8174/network/public -DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD -c stminter.c
/opt/SUNWspro/WS6U2/bin/cc -xO2 -Xa -xstrconst -xF -mr -xarch=v8 -xcache=16/32/1:1024/64/1 -xchip=ultra -D_REENTRANT -K PIC -DPRECOMP -I. -I/ora/product/v8174/precomp/public -I/ora/product/v8174/rdbms/public -I/ora/product/v8174/rdbms/demo -I/ora/product/v8174/plsql/public -I/ora/product/v8174/network/public -DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD -c stmparse.c
/opt/SUNWspro/WS6U2/bin/cc -o stminter stminter.o stmparse.o -L/ora/product/v8174/lib/ -lclntst8 `cat /ora/product/v8174/lib/ldflags` `cat /ora/product/v8174/lib/sysliblist` -R/ora/product/v8174/lib -laio -lm -lthread
Undefined first referenced
symbol in file
ncrov /ora/product/v8174/lib//libclntst8.a(nngt.o)
kgupntb /ora/product/v8174/lib//libclntst8.a(kgupi.o)
ldxpmxa /ora/product/v8174/lib//libclntst8.a(ldxsti.o)
kpupft /ora/product/v8174/lib//libclntst8.a(kpu.o)
lxsftb /ora/product/v8174/lib//libclntst8.a(lxpsset.o)
lpmiftfs /ora/product/v8174/lib//libclntst8.a(lpmpgif.o)
slxlcbk /ora/product/v8174/lib//libclntst8.a(lxinitc.o)
slxlobc /ora/product/v8174/lib//libclntst8.a(lxinitc.o)
slxlobj /ora/product/v8174/lib//libclntst8.a(lxinitc.o)
ld: fatal: Symbol referencing errors. No output written to stminter
*** Error code 1
make: Fatal error: Command failed for target `stminter'
-----------------------------------------------------------------------------------
Now if i change my oracle home to 8.17 the Pro*C program compiles fine. Compilation does not give me any errors. When i run this Pro*C program it listens at the socket and reads in the data into the database. However after 15-20 minutes the Pro*C program stops listening at the socket. When i check to see if the process is running on the server i find that it has not stopped but is still running. If i kill the process and restart it, then it starts reading data from the socket immediately. Can you tell me what is it that i am doing wrong here?
Also i wanted to know if in Pro*C code i can make a particular transaction use one rollback segment. For eg in pl/sql i can use the statement
set transaction use rollback segment R10
Is there an equivalent statement like this in Pro*C. I have checked with a few tutorials but nowhere do they say that i can use a particular rollback segment. Please help with this. Thanks in advance for all the help.