File Handling |
This chapter describes issues and limitations when using Server Express with third party software.
AIX 4.2 and later dbx versions do not support COBOL data types. As this product requires AIX V4.3 or later only, dbx support has been removed.
If you are using an Oracle database you might need to relink rtsora.
If you do need to do this, you should ensure that the cob command
line or makefile uses the -t option. You should also edit the file $ORACLE_HOME/lib/sysliblist
to remove /lib/crt0_r.o -lc_r
If you want to migrate applications that call Oracle but do not use the OpenESQL functionality for Oracle access, you might might find the following information useful. This includes those of you using COBSQL.
Note: This method is not recommended by MERANT and is not intended to overrule advice from Oracle on the subject. For more information about configuring and accessing your Oracle database, you should consult your Oracle documentation.
Although Oracle traditionally rebuilds a run-time system so that the APIs it uses are available to COBOL, this approach is not the best way of making Oracle 8 and COBOL work together. Under Server Express, the best solution is to create a shared library with the Oracle 8 support linked into it, and load this shared library before the application starts. To do this, you need to:
This solution has several advantages over the existing method:
The traditional method of relinking a run-time system for Oracle uses the following type of command:
cob -x -e "" -o rtsora oracle_parameters
Under Server Express on AIX, you can create a shared library called rtsora8_t.so with all the oracle libraries linked into it by using:
cob -Zt -e "" -o rtsora8_t.so oracle_parameters
where oracle_parameters
are the libaries, files
and/or options taken from the makefile that builds rtsora, which
might include the following types of options:
-lxxxx, -Ixxxx, xxxxx.o
Note: If the Oracle support links in the C startup modules crt0.o or crt0_r.o, these should be omitted by not linking them into the shared library.
Next you need to compile the main program with some extra directives:
INITCALL"rtsora8_t"
Use this to allow the Oracle support shared library to be loaded before the first line of the program is executed.
SERIAL
Use this if the Oracle 8 support uses threading, to enable the application for use in a threaded environment.
If the program fails to execute due to run-time system error (173) on rtsora8_t.so, the run-time system has been unable to find rtsora8_t.so.
Otherwise, if run-time system error 198 is generated on rtsora8_t.so, the run-time system has not been able to load rtsora8_t.so into memory. This might be because:
You need to create a dummy rtsora that points to rts32_t. You do this by creating a symbolic link, although you could use cobrun or cobrun_t triggers. A dummy rtsora can be created as follows:
ln -s $COBDIR/bin/rts32_t `pwd`/rtsora
You can now run applications under Server Express that call Oracle functions directly.
Copyright © 2000 MERANT International Limited. All rights reserved.
This document and the proprietary marks and names
used herein are protected by international law.
File Handling |