Informix

 View Only
Expand all | Collapse all

IBM data server driver connection to multiple connection managers

  • 1.  IBM data server driver connection to multiple connection managers

    Posted Mon November 27, 2023 04:01 PM

    Hello,

    I already asked this on whatsapp channel

    Does anyone use drda connection to group of connection managers? here is my connection string:
    <add name="name2" connectionString="Server=IPADDRESS:PORT;User ID=user;Password=password;Database=mydb;Persist Security Info=True;" providerName="Base.InformixDatabase" />
    and it can connect directly to drda listener. But what when i have sqlhosts like this:
    ####
    drda_grp     group    -            -      c=1,e=cm3_drd_sla
    cm2_drd_sla  drsoctcp 10.10.10.12  9089   g=drda_grp
    cm3_drd_sla  drsoctcp 10.10.10.13  9089   g=drda_grp
    ####
    and cm2/3 are listening on 9089 for drda connections
    How can I connect to group since IBM Data Server Driver does not know about sqlhosts file?
    I'm aware of this
    https://ibm.co/47RpGp4
    but still - what to put in connection string

    Hrvoje



    ------------------------------
    Hrvoje Zokovic
    ------------------------------


  • 2.  RE: IBM data server driver connection to multiple connection managers

    Posted Tue December 05, 2023 07:14 AM

    Finally working with support (thanks Joey) we managed to configure cluster.

    I have 2 IDS servers - in HDR pair. Next, "in fornt" there are 2 Connection Managers - with different priority, of course.

    Only problem not resolved is that you cant configure just drda cluster (i.e. listening just for drda connections) - since IDS is not aware of that (onstat -g cmsm shows nothing). So you must have sqli listener even if you are not using it.

    Next, on client (windows, .NET app) I installed IBM Data Server Driver and app is "using IBM.Data.DB2;"

    Trick is in configuration in db2dsdriver.cfg file (somewhere under C:\ProgramData\IBM\DB2\ something \cfg\). In my case file looks like this:

    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <configuration>  
      <databases>    
        <database host="172.16.0.62" name="test" port="14101">      
          <acr>        
            <parameter name="enableAcr" value="true"/>        
            <parameter name="enableAlternateServerListFirstConnect" value="true"/>       
            <alternateserverlist>           
              <server name="172.16.0.64" hostname="172.16.0.64" port="14101"/>     
            </alternateserverlist>   
          </acr>    
        </database>  
     </databases>
     
    </configuration>

    This line is "pointing" to first CM (not database server):

    <database host="172.16.0.62" name="test" port="14101">

    is almost the same as connection string:

    connStr = "Server=172.16.0.62:14101;Database=test;UID=informix;PWD=password;";

    and in "acr" (stands for "automatic client reroute") there are other CMs - in my case just one:

    <server name="172.16.0.64" hostname="172.16.0.64" port="14101"/> 

    Anf it is working :)

    Hrvoje



    ------------------------------
    Hrvoje Zokovic
    ------------------------------