[Mono-list] Unhandled Exception: System.DllNotFoundException: db2_36

Bartolomeo Nicolotti bnicolotti at siapcn.it
Wed Feb 11 04:11:13 EST 2009


Hello,

I've installed mono, and xsp (not yet mod_mono) on ubuntu following the
instruction here:

http://ubuntuforums.org/showthread.php?t=803743

in view of using mod_mono together with php on ubuntu server 8.04, to
migrate a web service that access a db2/as400 database.

I've also installed db2exc from ubuntu repository as said here:

http://www.ubuntu.com/partners/ibm/db2

I can compile a test program that does a query to the db:

siap at LxPC54:~/src/test$ gmcs -r:/usr/lib/mono/1.0/IBM.Data.DB2.dll
-r:/usr/lib/mono/2.0/System.Data.dll helloDB2.cs

but when I execute it:

siap at LxPC54:~/src/test$ mono helloDB2.exe bart
Hello, bart 

Unhandled Exception: System.DllNotFoundException: db2_36
  at (wrapper managed-to-native)
IBM.Data.DB2.DB2CLIWrapper/StaticWrapper36:SQLAllocHandle
(int16,intptr,intptr&)
  at IBM.Data.DB2.DB2CLIWrapper.SQLAllocHandle (Int16 handleType, IntPtr
inputHandle, System.IntPtr& outputHandle) [0x00000]
  at IBM.Data.DB2.DB2CLIWrapper.Initialize (System.IntPtr& pEnvHandle)
[0x00000]
  at IBM.Data.DB2.DB2Environment..ctor () [0x00000]
  at IBM.Data.DB2.DB2Environment.get_Instance () [0x00000]
  at IBM.Data.DB2.DB2ConnectionPool.FindConnectionPool (System.String
connectionString) [0x00000]
  at IBM.Data.DB2.DB2ConnectionSettings.GetConnectionSettings (System.String
connectionString) [0x00000]
  at IBM.Data.DB2.DB2Connection.SetConnectionString (System.String
connectionString) [0x00000]
  at IBM.Data.DB2.DB2Connection..ctor (System.String conString) [0x00000]
  at (wrapper remoting-invoke-with-check) IBM.Data.DB2.DB2Connection:.ctor
(string)
  at HelloWorldDb2.Main (System.String[] args) [0x00000] 

I've tried to edit /etc/mono/config:

sudo vim /etc/mono/config

        <dllmap dll="oci" target="libclntsh.so" os="!windows"/>
        <dllmap dll="db2cli" target="libdb2_36.so" os="!windows"/>

adding this line:

        <dllmap dll="db2_36" target="libdb2.so" os="!windows"/>

and executed this command:

sudo /sbin/ldconfig /opt/ibm/db2exc/V9.5/lib32

this because the right lib should be:

  /sbin/ldconfig /opt/ibm/db2exc/V9.5/lib32/libdb2.so

as below http://www.nabble.com/file/p21950856/helloDB2.cs helloDB2.cs 

siap at LxPC54:~/src/mono/mono-2.2/mcs/class/IBM.Data.DB2/IBM.Data.DB2$ vim
DB2CLIWrapper.cs


                public class StaticWrapper36
                {
                        private const string libname = "db2_36";

                        [DllImport(libname, EntryPoint = "SQLAllocHandle")]
                        public static extern short SQLAllocHandle(short
handleType, IntPtr inputHandle,  out IntPtr outputHandle);
                        [DllImport(libname, EntryPoint = "SQLFreeHandle")]
                        public static extern short SQLFreeHandle(short
handleType, IntPtr inputHandle);

....

siap at LxPC54:/usr/local/lib/xsp/test$ nm
/opt/ibm/db2exc/V9.5/lib32/libdb2.so.1  | grep SQLAllocHandle
001dadd4 T SQLAllocHandle
00d28bec d SQLAllocHandle$$LSDA

00d2d260 d SQLGetDiagRecW$$LSDA
002716d8 T
_Z14SQLGetDiagRec2P19CLI_ERRORHEADERINFOiPhPiS1_sPshhP17CLI_STATEMENTINFO
00d2ae78 d
_Z14SQLGetDiagRec2P19CLI_ERRORHEADERINFOiPhPiS1_sPshhP17CLI_STATEMENTINFO$$LSDA 
-- 
View this message in context: http://www.nabble.com/Unhandled-Exception%3A-System.DllNotFoundException%3A-db2_36-tp21950856p21950856.html
Sent from the Mono - General mailing list archive at Nabble.com.



More information about the Mono-list mailing list