Topic
  • 5 replies
  • Latest Post - ‏2013-09-03T16:24:54Z by Arvind_Gupta
EmaGht
EmaGht
3 Posts

Pinned topic Informix Connection. Cannot find entry point to DB2APP64.dll

‏2013-08-27T21:21:17Z | .net 4.0 informix

Hi everyone, I'm trying to create a simple Console application to communicate with multiple databases.
The code is extremely simple:

using IBM.Data.DB2;
using IBM.Data.Informix;

namespace MiniDbTest
{
    class Program
    {
        static void Main(string[] args)
        {
            //DB2Connection
            DB2Connection DB2Cn = new DB2Connection();
            //InformixConnection
            IfxConnection IfxCn = new IfxConnection();
        }
    }
}

But when i try to run it i receive the error: Cannot find an entry point for the procedure *Extremely long name* in dynamic link library DB2APP64.DLL

This code is clearly inconclusive. It's just a starting point to know i can create thoose connections without errors.
Strangely enough, if i create the InformixConnection before the DB2Connection like this:

   static void Main(string[] args)
        {
            //InformixConnection
            IfxConnection IfxCn = new IfxConnection();
            //DB2Connection
            DB2Connection DB2Cn = new DB2Connection();
        }

everything works. Is there a way to fix it or is it supposed to work like that (thought it's hard to believe...)?
Thank you for your attention

Updated on 2013-08-27T21:22:17Z at 2013-08-27T21:22:17Z by EmaGht
  • Arvind_Gupta
    Arvind_Gupta
    58 Posts

    Re: Informix Connection. Cannot find entry point to DB2APP64.dll

    ‏2013-08-30T04:40:56Z  

    Hi,

    I could not reproduce your problem. Could you please provide testconn40.exe output? To know more about testconn40.exe, please refer section "Testing connectivity for ADO.NET drivers" in below link.
    http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.swg.im.dbclient.install.doc/doc/r0058814.html


    Also for your reference, The Informix® .NET provider (IBM.Data.Informix.dll) is deprecated in version 10.1 Fix Pack 1 and later fix packs. Use the DB2® .NET Provider (IBM.Data.DB2.dll) for accessing Informix database servers.
    For more information, please refer http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.wn.doc/doc/i0060894.html

    Thanks,
    Arvind

  • EmaGht
    EmaGht
    3 Posts

    Re: Informix Connection. Cannot find entry point to DB2APP64.dll

    ‏2013-08-30T16:58:20Z  

    Hi,

    I could not reproduce your problem. Could you please provide testconn40.exe output? To know more about testconn40.exe, please refer section "Testing connectivity for ADO.NET drivers" in below link.
    http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.swg.im.dbclient.install.doc/doc/r0058814.html


    Also for your reference, The Informix® .NET provider (IBM.Data.Informix.dll) is deprecated in version 10.1 Fix Pack 1 and later fix packs. Use the DB2® .NET Provider (IBM.Data.DB2.dll) for accessing Informix database servers.
    For more information, please refer http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.wn.doc/doc/i0060894.html

    Thanks,
    Arvind

    Hi, thanks for your reply!

    I don't know if i really can test my connectivity, since i have no server installation in this machine. To better explain my situation: i have a Virtual Machine with varius database services installed, and I'm connecting to it via the physical machine, which only has the client installation. I don't really know if this matters, thought.

    Anyway, thanks for your info about the dll deprecation. Right now I'm using IBM 2 Version 10.5C, so i guess i should stick to IBM.Data.DB2.dll. Btw, I didn't quite understand a thing... should i use an InformixConnection of some kind to connect to Informix or should i use the DB2Connection specified in IBM.Data.DB2.dll?

  • Arvind_Gupta
    Arvind_Gupta
    58 Posts

    Re: Informix Connection. Cannot find entry point to DB2APP64.dll

    ‏2013-08-30T17:24:27Z  
    • EmaGht
    • ‏2013-08-30T16:58:20Z

    Hi, thanks for your reply!

    I don't know if i really can test my connectivity, since i have no server installation in this machine. To better explain my situation: i have a Virtual Machine with varius database services installed, and I'm connecting to it via the physical machine, which only has the client installation. I don't really know if this matters, thought.

    Anyway, thanks for your info about the dll deprecation. Right now I'm using IBM 2 Version 10.5C, so i guess i should stick to IBM.Data.DB2.dll. Btw, I didn't quite understand a thing... should i use an InformixConnection of some kind to connect to Informix or should i use the DB2Connection specified in IBM.Data.DB2.dll?

    Hi,

    You can run tesconn40 from db2 command prompt to test connectivity to remote database in your case it is on a Virtual Machine. Below is the syntax for it. You need to replace <Database Name>, <server IP address/Name>, <DRDA port>, <username> and <password> with actual value.

    testconn40 "database=<Database Name>;server=<server IP address or Server Name>:<DRDA port>;uid=<username>;pwd=<password>;authentication=server"

    To connect to Informix server, please use DB2Connection specified in IBM.Data.DB2.dll.

    Thanks,

    Arvind

  • EmaGht
    EmaGht
    3 Posts

    Re: Informix Connection. Cannot find entry point to DB2APP64.dll

    ‏2013-09-02T17:07:12Z  

    Hi,

    You can run tesconn40 from db2 command prompt to test connectivity to remote database in your case it is on a Virtual Machine. Below is the syntax for it. You need to replace <Database Name>, <server IP address/Name>, <DRDA port>, <username> and <password> with actual value.

    testconn40 "database=<Database Name>;server=<server IP address or Server Name>:<DRDA port>;uid=<username>;pwd=<password>;authentication=server"

    To connect to Informix server, please use DB2Connection specified in IBM.Data.DB2.dll.

    Thanks,

    Arvind

    Hi. Thanks again for your answer. I tried to TestConn the database. Here is the report:

    C:\Ema\Programmi\IBM DB2\BIN>testconn40 "database=Test;server=192.168.1.99:9090;
    uid=informix;pwd=macmanu;authentication=server"

    Step 1: Printing version info
            .NET Framework version: 4.0.30319.18052
            64-bit
            DB2 .NET provider version: 9.7.4.4
            DB2 .NET file version: 10.1.2.4
            Capability bits: ALLDEFINED
            Build: s121127
            Factory for invariant name IBM.Data.DB2 verified
            Elapsed: 3,3619269

    Step 2: DB2DSDRIVER_CFG_PATH env var: unset
            Validating db2dsdriver.cfg against db2dsdriver.xsd schema file
            File searched at C:\ProgramData\IBM\DB2\IBMDBCL1\cfg\db2dsdriver.cfg  mi
    ssing. Nothing to validate
            Elapsed: 0,015502

    Step 3: Connecting using "database=Test;server=192.168.1.99:9090;uid=informix;pw
    d=macmanu;authentication=server"

    Unable to open socket to server:

    ERROR [08001] [IBM] SQL30081N  È stato rilevato un errore delle comunicazioni. P
    rotocollo di comunicazione in uso: "TCP/IP".  API di comunicazione in uso: "SOCK
    ETS".  Ubicazione dell'errore: "192.168.1.99".  Funzione di comunicazione che ha
     rilevato l'errore: "recv".  Codici di errore specifici al protocollo: "*", "*",
     "0".  SQLSTATE=08001


    Some things to consider:
    - is the port number correctly specified
      50000 is the default for LUW servers
        svcename dbm cfg parm for LUW servers
      446 is the only port for iSeries servers, default for zSeries
    - for a LUW server, is the TCPIP listener started
      db2set DB2COMM=TCPIP, db2stop / db2start
    - for an Informix server, ensure DRDA listener is started
      and you are using DRDA port vs the SQLI port


    Test failed.

    Strange thing is that i have no problems connecting to the server via RazorSQL, using this connection string:

    jdbc:informix-sqli://192.168.1.99:9090/Test:INFORMIXSERVER=InformixServer

    Anyway, during the execution of testconn i received 3 times the error mentioned in my first post:

    Cannot find an entry point for the procedure *Extremely long name* in dynamic link library DB2APP64.DLL

    Also, since he tried to connect to the database i tried to find a connectivity fix. Reading the error log, my eyes stumbled upon

    - for an Informix server, ensure DRDA listener is started
      and you are using DRDA port vs the SQLI port

    Then i tryed to configure it following this link but I didn't achieve much. Here is my current sqlhosts.InformixServer:

    InformixServer olsoctcp *Servers-PC informixserv
    InformixServer drtlitcp Servers-PC 9090

    Is there anything I'm still doing wrong?
    Thanks again


     

  • Arvind_Gupta
    Arvind_Gupta
    58 Posts

    Re: Informix Connection. Cannot find entry point to DB2APP64.dll

    ‏2013-09-03T16:24:54Z  
    • EmaGht
    • ‏2013-09-02T17:07:12Z

    Hi. Thanks again for your answer. I tried to TestConn the database. Here is the report:

    C:\Ema\Programmi\IBM DB2\BIN>testconn40 "database=Test;server=192.168.1.99:9090;
    uid=informix;pwd=macmanu;authentication=server"

    Step 1: Printing version info
            .NET Framework version: 4.0.30319.18052
            64-bit
            DB2 .NET provider version: 9.7.4.4
            DB2 .NET file version: 10.1.2.4
            Capability bits: ALLDEFINED
            Build: s121127
            Factory for invariant name IBM.Data.DB2 verified
            Elapsed: 3,3619269

    Step 2: DB2DSDRIVER_CFG_PATH env var: unset
            Validating db2dsdriver.cfg against db2dsdriver.xsd schema file
            File searched at C:\ProgramData\IBM\DB2\IBMDBCL1\cfg\db2dsdriver.cfg  mi
    ssing. Nothing to validate
            Elapsed: 0,015502

    Step 3: Connecting using "database=Test;server=192.168.1.99:9090;uid=informix;pw
    d=macmanu;authentication=server"

    Unable to open socket to server:

    ERROR [08001] [IBM] SQL30081N  È stato rilevato un errore delle comunicazioni. P
    rotocollo di comunicazione in uso: "TCP/IP".  API di comunicazione in uso: "SOCK
    ETS".  Ubicazione dell'errore: "192.168.1.99".  Funzione di comunicazione che ha
     rilevato l'errore: "recv".  Codici di errore specifici al protocollo: "*", "*",
     "0".  SQLSTATE=08001


    Some things to consider:
    - is the port number correctly specified
      50000 is the default for LUW servers
        svcename dbm cfg parm for LUW servers
      446 is the only port for iSeries servers, default for zSeries
    - for a LUW server, is the TCPIP listener started
      db2set DB2COMM=TCPIP, db2stop / db2start
    - for an Informix server, ensure DRDA listener is started
      and you are using DRDA port vs the SQLI port


    Test failed.

    Strange thing is that i have no problems connecting to the server via RazorSQL, using this connection string:

    jdbc:informix-sqli://192.168.1.99:9090/Test:INFORMIXSERVER=InformixServer

    Anyway, during the execution of testconn i received 3 times the error mentioned in my first post:

    Cannot find an entry point for the procedure *Extremely long name* in dynamic link library DB2APP64.DLL

    Also, since he tried to connect to the database i tried to find a connectivity fix. Reading the error log, my eyes stumbled upon

    - for an Informix server, ensure DRDA listener is started
      and you are using DRDA port vs the SQLI port

    Then i tryed to configure it following this link but I didn't achieve much. Here is my current sqlhosts.InformixServer:

    InformixServer olsoctcp *Servers-PC informixserv
    InformixServer drtlitcp Servers-PC 9090

    Is there anything I'm still doing wrong?
    Thanks again


     

    For informix connection problem, you need to change

    InformixServer drtlitcp Servers-PC 9090

    to

    InformixServer drsoctcp Servers-PC 9090

     

    Regarding the problem related to "DB2APP64.DLL", it could be that the dll might have corrupt or some problem in your dsdriver setup.
    Can you please try first uninstall dsdriver and then install it again.

    Updated on 2013-09-04T11:08:55Z at 2013-09-04T11:08:55Z by Arvind_Gupta