1 Download latest SOCI Library (3.1.0) and unpack it 2. Build SOCI core 2.1 Build the shared soci-core library by executing the following commands cd /core make -f Makefile.basic shared 2.1.1 If the build fails add -fPIC to CXXFLAGS in the Makefile.basic, delete all the .o files and build it again 2.2 Now you should have the libsoci_core.so file in /core directory 3. Build SOCI oracle backend 3.1 Go to the /backends/oracle and open the Makefile.basic 3.2 Modify the ORACLEINCLUDEDIR accoridng to your environment. The variable should contain a path to the OCI (Oracle Client Interface) header files like oci.h. 3.3 Build the shared soci_oracle library by executing the following commands cd /backends/oracle make -f Makefile.basic shared 3.4 Now you should habe the libsoci_oracle.si in the oracle backend directory 4. Checkout the latest Directory Server projekt from the Repository: https://svn.cern.ch/reps/acc-co/trunk/cmw/cmw-directory-server 5. It seems that some gnat compilers do not allocate the Heap-size for particular tasks correctly. In this case the Server will throw an Segmentation Error just after start. If this Problem occure the source code of the server need to be modified. There are 3 Tasks definition which should be adjusted: Worker_Task, Network_Manager and Database_Manager Each definition should get a pagma Storage_Size derective. Examlpe: task type Network_Manager is pragma Storage_Size(1024*1024) end Network_Manager; The actual Size seems not to be important. 6. Modify the /Makefile and Makefile.dep according to your environment. In order to do this you will need a genering makefile from CERN. The compiler and linker schould get libraray dependencies to following libraries: -lclntsh -lnnz11 -lsoci_core -lsoci_oracle. Additionaly the compiler should get reference to the include folder. If you execute the eclipse patch then, the variables are set, but you still need to adjust the pathes. 7. Build the Directory Server by executing the following commands: cd make -f Makefile 8. To run the directory server make sure the the required shred libraries (oracle and soci) are in the searching path (easiest way is to set the LD_LIBRARY_PATH environment variable). Also, you will need a directory stucture consiting following directories: log, local-backup, conf. The conf folder should contain a file named: cmw-directory.dbaccess.properties This contain following oracle configuration String: oracle://service= user= password= It may also be required to create the log files: directory-server.log and client-request.log