In the informix's manual there is one example (see the link above) about how to set up the configuration manager, I noticed that the have 3 informix servers : ifx, ifx_hdr, and ifx_sds , and also they have 3 services: oltp, report and payroll.
In understand what the 3 server are, I think it is the equivalent to my 2 servers, but what are those 3 services???
If we had a java application that is connecting to informix and I am using the url=jdbc:informix-sqli://mycompany.com:2020/ccaiprod:INFORMIXSERVER=data_server1;user=informix ;password=informix
Is this data_server1 one of the servers that I have to specify on the connection manager configuration file, or it would be one of the services???? I am a little confused about the relation servers - services .
you have a number of things to check:
* in the sqlhosts files, check that hostname column (3rd column) contents is exactly the same as what the 'hostname' command returns (full hostname with domain) on each machine
* in the sqlhosts files check that the 4th columns contents (service name), exists in the /etc/services files on each machine
I think you have a mess effectively between hostnames, informixservers and services.
As a starting point, here is the relationship path:
in your onconfig file, each value of DBSERVERNAME and DBSERVERALIASES must have an entry in the $INFORMIXDIR/etc/sqlhosts ( or $INFORMIXSQLHOSTS ) file.
this entry must be set this way:
1 column=same as DBSERVERNAME or DBSERVERALIASES
2 column= protocol. for replication or cluster, must be onsoctcp
3 column = full hostname of the host (ex: mydomain.infx_server1 )
4 column= service name. Value must be as first column in the /etc/services file entry. just a port number is accepted, but using service name + name it in /etc/services is safer.
Connection between infx_server1 and infx_server2 should be secure ( I think you need s=6 in the sqlhosts line) and servers must be mutually authenticated with an entry in the $INFORMIXDIR/etc/hosts.equiv file, also with full hostnames
In general, you should first check your connection with dbaccess /connect option.
If you cannot connect with dbaccess, you wont do it with the connection manager.
Check this chapter from start to end in the IBM manual, it deals with an old version but it is well explained and step by step. I didn't find equivalent in the 11.50 doc, but the information is still actual.
I already verified the sqlhosts file, the host column is exactly the same name that I get the 'hostname' command in both servers, also the service name exist in the services file.
Also I already verified the DBSERVERNAME variable in the onconfig file has the same server name that is in my sqlhosts file.
I already tested the connectivity between the two database servers, using dbaccess, and I was able to connect from infx_server1 to infx_server2 and vice-versa.
I don't have the file hosts.equiv in the path $INFORMIXDIR/etc/hosts.equiv I have it in the path /etc/ Could this be a problem?????
As far as I understand Connection Manager is one way to achieve high availability and scalability, Enterprise Replication and Cluster would be other different ways
The 2 servers that I have are standard servers , Do I have to make them HDR or put the into cluster or Enterprise replication before try to run the Connection Manager???
One more thing, in both servers I changed the variable INFORMIXSERVER=cluster_1 (like the group I specified in my sqlhosts file) instead the previous values that they had infx_server1, and infx_server2. Should I keep the old values or so I need to have the same value on both servers?????
Last edited by fernando guerrero; 04-17-12 at 17:52.
According to the informix manual I need to specify a group in my sqlhosts (I am using cluster_1) and I need to change my INFORMIXSERVER VARIABLE to the group name instead the DBSERVERNAME value.
When I run the command:
I get the next: message:
shared memory not initialized for INFORMIXSERVER 'cluster_1'
If in my onconfig file I have one value for DBSERVERNAME, but in the INFORMIXSERVER variable i need to have the group name, How can I check the statistics for my server??? could this be part of the problem that I have when I try to run the Connection Manager ???
I know that in my onconfig file I have DBSERVERNAME infx_server1 and the variable INFORMIXSERVER should be INFORMIXSERVER=infx_server1 for this server, but according to the informix manual, I have to change the environment variable to match the cluster name, so the INFORMIXSERVER variable in this server is INFORMIXSERVER=cluster_1 (as specified in my sqlhost file)
Your files seem to be OK, excepting that the group cluster_1 does not seem to be defined in the infx_server2 sqlhosts file.
I think that infx_server2 is not infx_server1's HDR secondary server, this is why connection manager cannot establish the initial connections.
Can you check this?
1) check connectivity between informixservers as explain above, with dbaccess.
If not ok, recheck all hosts, sqlhosts etc. Check also your firewall and $INFORMIX/etc/hosts.equiv
If ok, proceed
2) start infx_server1 as primary then server2 as a secondary with the onmode command
check both msgpath log files whether the HDR connection is established
3) once the HDR is OK, you can retest the connection manager.
As far as I know, the connection manager is a connection manager, not a cluster
manager. It serves to define SLAs between MACH11 elements, loadbalance the clients
connections and redirerect in case of failure.
To manager your cluster, you can use Open Admin Tools