CM not obeying FOC
Posted in 2012
Hi All,
I am building a prototype of Informix Cluster with a primary node and
a HDR secondary initially, using connection manager.
On connection manager machine (ar-prdwhm01), I export
INFORMIXSERVER=auf_prep_odb and then starts connection manager (oncmsm-c cmconfig). Connection Manager registers successfully on primary and
secondary. I can see this in MSGLOG as well as in CM LOGFILE.
For my testing, I have installed Informix CSDK 3.70.TC1 (32 bit) on a
Windows 2003 SP2. I have setup a DSN on this server with following
settings:
Server Name: auf_clu_prep
Host Name: ar-prdwhm01
Service: ifmx_clu_prep_odb
I have two issues as:
1) I can connect successfully using above DSN from Windows Server
sometimes connections from DSN goes to Primary node and sometimes to
secondary node. (please see CM LOGFILE below). I want all the
connections MUST go to Primary (auf_prep_odb) first and if primary
goes down then only go to HDR secondary (hdr_prep_odb) which should
become primary when real primary is down.
2) When primary server (csux-dbwh3) goes down, CM work fine by
changing secondary HDR node (csux-dbwh1) to Primary as per FOC but
when orginal primary (csux-dbwh3) comes back, I do oninit -PHY and
then make original primary (csux-dbwh3) as secondary HDR. Now if I
bring current primary (csux-dbwh1) down, CM does not switch over
current secondary (csux-dbwh3) to primary.
Surely, I am doing something wrong. Could someone PLEASE help me out.
Also, I am not sure how do I use group name which bind all services/
INFORMIXSERVER as shown in CM INFORMIXSQLHOSTS.
CM Machine (ar-prdwhm01):
OS:
Linux ar-prdwhm01 2.6.16.60-0.42.10-smp #1 SMP Tue Apr 27 05:11:27 UTC
2010 x86_64 x86_64 x86_64 GNU/Linu
IDS Version: IDS 11.50.fc6
INFORMIXSQLHOST:
----------------------------------------------------------------------------------------------------------
aufcluster_prep group - -
i=10
auf_clu_prep onsoctcp ar-prdwhm01
ifmx_clu_prep_odb g=aufcluster_prep
auf_prep_odb onsoctcp csux-dbwh3
ifmx_auf_prep_odb g=aufcluster_prep
hdr_prep_odb onsoctcp csux-dbwh1
ifmx_hdr_prep_odb g=aufcluster_prep
auf_prep_soc onsoctcp csux-dbwh1
ifmx_auf_prep_soc g=aufcluster_prep
/etc/services
ifmx_auf_prep_soc 1690/tcp online3 # ibm informix
auf prep external
ifmx_auf_prep_soc 1642/tcp online3 # ibm informix
auf prep external
ifmx_auf_prep_odb 1643/tcp online3 # ibm informix
auf prep external
ifmx_hdr_prep_odb 1692/tcp online3 # ibm informix
auf prep external
ifmx_clu_prep_odb 50120/tcp online3 # ibm informix
auf prep external
Connection Manager CONFIG (cmconfig):
-------------------------------------------------------------------------------
# Connection Manager name
NAME cm_auf_prep
# re-route Informix clients to the primary for transaction processing
SLA auf_clu_prep=auf_prep_odb dbserveraliases=off
# Failover Configuration
FOC hdr_prep_odb,10
# worker threads for each SLA listener, default is 8
SLA_WORKERS 8
DEBUG 1
# Connection Manager message file
LOGFILE /tmp/cm.log
------------------------------------------------------------------------------
Connection Manager LOGFILE:
-------------------------------------------------------------------------------------------------------------------------
12:08:44 IBM Informix Connection Manager
12:08:44 Connection Manager name is cm_auf_prep
12:08:44 Starting Connection Manager...
12:08:44 stat(/opt/informix-11.50.fc6/etc/passwd_file) failed, errno =
2 [cmsm_main.c:1391]
12:08:44 Warning: Password Manager failed; working in trusted node
mode
12:08:44 set the maximum number of file descriptors 32767 failed
12:08:44 setrlimit(RLIMIT_NOFILE, 32767) = -1, errno = 1 [cmsm_main.c:
2566]
12:08:44 the current maximum number of file descriptors is 1024
12:08:44 fcntl(/opt/informix-11.50.fc6/tmp/cmsm.pid.cm_auf_prep)
success errno = 0 [cmsm_main.c:1686]
12:08:44 dbservername = auf_prep_odb
12:08:44 nettype = onsoctcp
12:08:44 hostname = csux-dbwh3
12:08:44 servicename = ifmx_auf_prep_odb
12:08:44 options = g=aufcluster_prep
12:08:44 switch to daemon mode
12:08:44 new daemon pid is 26791 [cmsm_main.c:2492]
12:08:44 create new thread 1080043840 for auf_prep_odb [cmsm_sla.c:
651]
12:08:44 listener auf_clu_prep initializing
12:08:44 Listener auf_clu_prep=auf_prep_odb dbserveraliases=off is
active with 8 worker threads
12:08:44 CONNECT to sysmaster@auf_prep_odb|onsoctcp|csux-dbwh3|
ifmx_auf_prep_odb AS auf_prep_odb0 SQLCODE = (0,0,) [cmsm_server.ec:
156]
12:08:44 auf_prep_odb protocols = 1 [cmsm_server.ec:1340]
12:08:44 adding auf_prep_odb alias auf_prep_soc with protocol onsoctcp
1 [cmsm_server.ec:1446]
12:08:44 SQL fetch sysconfig_cursor sqlcode = (100,0,) [cmsm_server.ec:
1393]
12:08:44 Connection Manager successfully connected to auf_prep_odb
12:08:44 Arbitrator FOC string = hdr_prep_odb,10
12:08:44 Arbitrator setting primary name = auf_prep_soc [cmsm_arb.c:
521]
12:08:44 FOC[0] = hdr_prep_odb
12:08:44 FOC timeout = 10
12:08:45 create new thread 1098955072 for hdr_prep_odb [cmsm_sla.c:
651]
12:08:45 CONNECT to sysmaster@hdr_prep_odb|onsoctcp|csux-dbwh1|
ifmx_hdr_prep_odb AS hdr_prep_odb0 SQLCODE = (0,0,) [cmsm_server.ec:
156]
12:08:45 hdr_prep_odb protocols = 1 [cmsm_server.ec:1340]
12:08:45 adding hdr_prep_odb alias auf_prep_soc with protocol onsoctcp
1 [cmsm_server.ec:1446]
12:08:45 SQL fetch sysconfig_cursor sqlcode = (100,0,) [cmsm_server.ec:
1393]
12:08:45 Connection Manager successfully connected to hdr_prep_odb
12:08:45 Arbitrator FOC string = hdr_prep_odb,10
12:08:45 Arbitrator setting primary name = auf_prep_odb [cmsm_arb.c:
521]
12:08:45 FOC[0] = hdr_prep_odb
12:08:45 FOC timeout = 10
12:08:45 Connection Manager started successfully
12:08:58 Arbitrator reinitialized CM names [cmsm_arb.c:482]
12:08:58 Arbitrator added CM name = cm_auf_prep [cmsm_arb.c:421]
12:08:58 Arbitrator is active on CM = cm_auf_prep
13:29:45 SLA auf_clu_prep redirect SQLI client from 10.0.1.100 to
auf_prep_soc 10.0.250.111.1690
14:01:07 SLA auf_clu_prep redirect SQLI client from 10.0.1.100 to
auf_prep_odb 10.0.250.113.1643
14:16:03 SLA auf_clu_prep redirect SQLI client from 10.0.1.100 to
auf_prep_soc 10.0.250.111.1690
----------------------------------------------------------------------------------------------------------------------------
Primary Node (csux-dbwh3):
OS:
Linux csux-dbwh3.australianunity.net.au 2.6.9-42.ELsmp #1 SMP Wed Jul
12 23:32:02 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux
IDS Version: IDS 11.50.fc6
ONCONFIG:
-----------------------------
DBSERVERNAME auf_prep_soc
DBSERVERALIASES auf_prep_odb
DRAUTO 3
DRINTERVAL 30
DRTIMEOUT 30
-----------------------------
INFORMIXSQLHOSTS
----------------------------------------------------------------------------------
auf_prep_odb onsoctcp csux-dbwh3 i