Connection Manager for HDR in Windows server
Posted in 2017
A user setting up Connection Manager for an HDR pair (CM on its own host) was confused by the docs' step to "create a sqlhosts file on each client host." Art Kagel explained the client host is simply the machine(s) running the applications (here the JBoss app server), which should connect to the SLA name rather than a server name; the CM then redirects the client to the appropriate server. He also advised running two CMs with distinct SLA names and defining an sqlhosts group containing both for failover. Madison Pruet added that placing the CM on the app server host lets it detect network failures between app and database. The follow-up question about exactly where/how to place sqlhosts entries for JBoss and whether the JDBC datasource URL must change went unanswered, so no resolution for that part is recorded.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: High Availability & Replication, Installation, Setup & Upgrades, Networking & sqlhosts Configuration, Platform-Specific Issues, Clustering, Grid & MACH11
Dear all, I really appreciate for your fast responses. I followed the example from below link to configure connection manager. https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.admin.doc/i ds_admin_1173.htm Due to lack of understanding on some points mentioned below please clarify on this. From the information provide on the above link i need a clarity. 8th point: Add entries to the sqlhosts files on server_1 and server_2's host and on server_3's host. -- I have two database servers, which i will add entries on each sqlhosts on both servers. (he it is cleared) 9th point: Create a sqlhosts file on each Connection Manager. -- I have installed CM in different host. I will create sqlhosts in the path where CM is installed. (It is cleared). 10th point: Create a sqlhosts file on each client host. -- here im getting confused where to create this sqlhosts file. What is this client host. where to refer this client host. (very much confused). requesting you to please give clear info on this. What is client host. Is this the host where the CM is installed? if so, where to create the sqlhosts file, already the sqlhost file is created as per 9th point. Please see the above link.
The client host referred to is the system(s) where your applications will be running assuming that will be one or more different systems than where the server and connection manager are running. Art Art S. Kagel, President and Principal Consultant ASK Database Management www.askdbmgt.com Blog: http://informix-myview.blogspot.com/ Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Fri, Jul 14, 2017 at 2:45 AM, MUKESH TANUKU <mukeshbt1328@gmail.com> wrote: > Dear all, > I really appreciate for your fast responses. > > I followed the example from below link to configure connection manager. > > > https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12. > 1.0/com.ibm.admin.doc/ids_admin_1173.htm > > Due to lack of understanding on some points mentioned below please clarify > on > this. > > >From the information provide on the above link i need a clarity. > > 8th point: > Add entries to the sqlhosts files on server_1 and server_2's host and on > server_3's host. > -- I have two database servers, which i will add entries on each sqlhosts > on > both servers. (he it is cleared) > > 9th point: > Create a sqlhosts file on each Connection Manager. > -- I have installed CM in different host. I will create sqlhosts in the > path > where CM is installed. (It is cleared). > > 10th point: > Create a sqlhosts file on each client host. > -- here im getting confused where to create this sqlhosts file. What is > this > client host. where to refer this client host. (very much confused). > > requesting you to please give clear info on this. > > What is client host. Is this the host where the CM is installed? if so, > where > to create the sqlhosts file, already the sqlhost file is created as per 9th > point. > > Please see the above link. > > > ************************************************************ > ******************* > Forum Note: Use "Reply" to post a response in the discussion forum. > >
Thanks Mr.Art But still little confusion. On the host of each client application, create an sqlhosts file entry for each service-level agreement (SLA) in each Connection Manager configuration file. My SLA is sla_1, which is configured in the connection manager cmsm.cfg file. now where i need to create the sqlhost file for SLA entry. I have already create the SQLHOSTS file in CM. which have the database entries. My application server is JBOSS. do you want me to create SQLHOSTS file on Application server?
Yes, exactly. And your app server will connect to the SLA name not a server name. That will initially connect it to the connection manager which will decide which server currently satisfies the SLA requirements and return the correct connection details. Internally the JDBC library will read that packet, disconnect from the Connection Manager and reconnect using those returned parameters to the appropriate server in the pair. Ideally you should have more than one Connection Manager running, in case the CM fails. Each CM will have a different SLA with similar rules, so SLA_1a in one CM and SLA_1b in the other. You will define a group in your sqlhosts file that includes the SLAs from both CMs. Call the group SLA_1. Then the app serve will be connecting to the group name SLA_1 that includes the SLA names from both CMs, SLA_1a & SLA_1b. The sqlhosts group will manage selecting one of the SLAs either using a round robin rule (c=1) or in priority order and by extension one of the CMs to initially connect to. Art Art S. Kagel, President and Principal Consultant ASK Database Management www.askdbmgt.com Blog: http://informix-myview.blogspot.com/ Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Sun, Jul 16, 2017 at 4:52 AM, MUKESH TANUKU <mukeshbt1328@gmail.com> wrote: > Thanks Mr.Art > But still little confusion. > > On the host of each client application, create an sqlhosts file entry for > each > service-level agreement (SLA) in each Connection Manager configuration > file. > > My SLA is sla_1, which is configured in the connection manager cmsm.cfg > file. > > now where i need to create the sqlhost file for SLA entry. I have already > create the SQLHOSTS file in CM. which have the database entries. > > My application server is JBOSS. do you want me to create SQLHOSTS file on > Application server? > > > ************************************************************ > ******************* > Forum Note: Use "Reply" to post a response in the discussion forum. > >
Just to explain. If the connection manager is running on the same machine as either the primary or secondary server, then it can not monitor the network path between the app server and the database server. By placing the connection manager on the same machine that the app server is running, then the connection manager can detect a network failure between the app server and the primary database server. And from a business standpoint the goal is to keep the apps running, not just keep the primary database running. So if the network between the app server and the primary database server has failed, then it would be best to perform a failover even if the primary database server itself has not failed. That way the app server could connect to the old secondary server which is now a primary and the business apps could continue to function. Madison Pruet Retired and Loving it On Sunday, July 16, 2017 3:52 AM, MUKESH TANUKU <mukeshbt1328@gmail.com> wrote: Thanks Mr.Art But still little confusion. On the host of each client application, create an sqlhosts file entry for each service-level agreement (SLA) in each Connection Manager configuration file. My SLA is sla_1, which is configured in the connection manager cmsm.cfg file. now where i need to create the sqlhost file for SLA entry. I have already create the SQLHOSTS file in CM. which have the database entries. My application server is JBOSS. do you want me to create SQLHOSTS file on Application server? ******************************************************************************* Forum Note: Use "Reply" to post a response in the discussion forum.
So now got clarity. We have to create the SQLHOSTS file in application server. In my scenario the SLA is sla_1. How/where to add the SQLHOSTS entries for application host (JBOSS Server)? Is there any Client bundle/Software to install on application server (JBOSS) to communicate with connection Manager or any other way to establish the connection between application server and CM. As of now we are using the data source (DS) link to establish the connection between the Client host (JBOSS) and the Informix database server with the help of IfxDriver.jar file in Jboss server which is responsible to read data source parameters in our JAVA application. <datasources> <local-tx-datasource > <jndi-name>jdbc/OMEGADS</jndi-name> <connection-url>jdbc:informix-sqli://199.166.155.22:23425/neura_omega_stg:INFORM IXSERVER=ol_informix1210</connection-url> <driver-class>com.informix.jdbc.IfxDriver</driver-class> <user-name>informix</user-name> <password>admin1234</password> <min-pool-size>5</min-pool-size> <max-pool-size>1000</max-pool-size> <cache>false</cache> <proxyInterface>javax.sql.DataSource</proxyInterface> </local-tx-datasource> </datasources> As per my knowledge, After configuring Connection Manager, is above DS structure will remain same or we need to create the data source link consists the SLA name instead of database server name. If so, where to create the SQLHOSTS file which contains the SLA?
Can anyone please reply on this ASAP.