Listener Not Started
Posted in 2014
A new Informix 11.70 install on CentOS 7 worked locally via dbaccess, but Windows ODBC clients couldn't connect and nothing appeared to be listening on the expected port. Advice covered checking DBSERVERNAME/DBSERVERALIASES, SetNet32 entries, lsof/netstat, online.log and firewall, plus using IFX_DISABLE_IPV6=1 to force IPv4. The real fault was the user's sqlhosts entry: the service field named an alias with no /etc/services entry. Changing it to the real service name (sqlexec, port 9088) made the listener bind to the host IP and ODBC connections succeeded.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Installation, Setup & Upgrades, Connectivity: ODBC / JDBC / .NET, Server Administration, Networking & sqlhosts Configuration, Migration, Import/Export & Data Conversion, Platform-Specific Issues
I just installed Informix 11.70 on a Linux (Centos 7) system. Dbimported an
existing database okay and dbaccess works fine. I cannot get into the system
from any Windows system we have using ODBC. During DSN setup on the Apply and
Test Connection section, I get a message that says "Test was not successful.
[Informix][Informix ODBC Driver][Informix] Attempt to connect to database
server (ol_informix1170) failed."
This Windows machine (and others) connects fine to an existing Informix 10.0
server (on Windows 2000). In checking on the server side, I cannot find that
Informix is listening on the 9088 port (or any other port). The command
netstat -na | grep 9088 doesn't return any lines...neither does a grep of
1526, the old "turbo" service.
Ping works both ways between the hosts and I installed the Telnet server on
the Centos machine and I can log onto telnet from the Windows PC. I have tried
various combinations of protocols and services on the ODBC client side with no
luck...always the same message. Double-checked my sqlhosts file on server and
the sqlhost registry entry on the client. I also shutdown the firewalld
program on the server (for testing).
I can't seem to find much information in the IBM/Informix docs about the
listener...I guess they figure if the db server starts, it will, too...but I
don't think it did.
If it matters, both the client and server systems are running under VirtualBox
(as is the Windows Informix 10.0 server that can be contacted). And, (as if
this matters when you're stuck), I've been working with Informix as a
application developer for 15 years. Just never had a listener problem before.
So, what am I missing? Thanks everyone.
15 years without a listener issue... Lucky guy :)
Check the instance DBSERVERNAME and DBSERVERALIAS parameters.
They contain possible INFORMIXSERVERs your instance will listen too.
Then check the SetNet32 entries.
Check the entries that start with the values you gather from DBSERVERALIAS
and DBSERVERNAME. The "service" item will be the port number or service
name.
If you have numbers use that for netstat. If you have names use that for
netstat without the "-n". Then you'll find the information to see if it's
in LISTEN or not....
If using name you can decode them from your system "services" file
(c:\\\\windows\\\\system32\\\\...?)
Naturally you can shortcut the above.... by doing an equivalent of lsof -p
ONINIT_PID and see the "files/sockets" opened. Sysinternals tools should
allow similar functionality on Windows.
Then check firewalls etc.
You should also check the online.log (onstat -m will show the file name).
If there was a problem starting the listener it should be printed there.
Regards
On Sat, Oct 11, 2014 at 5:53 PM, WAYNE SHEARER <wshearer@teledat.com> wrote:
> I just installed Informix 11.70 on a Linux (Centos 7) system. Dbimported an
> existing database okay and dbaccess works fine. I cannot get into the
> system
> from any Windows system we have using ODBC. During DSN setup on the Apply
> and
> Test Connection section, I get a message that says "Test was not
> successful.
> [Informix][Informix ODBC Driver][Informix] Attempt to connect to database
> server (ol_informix1170) failed."
>
> This Windows machine (and others) connects fine to an existing Informix
> 10.0
> server (on Windows 2000). In checking on the server side, I cannot find
> that
> Informix is listening on the 9088 port (or any other port). The command
> netstat -na | grep 9088 doesn't return any lines...neither does a grep of
> 1526, the old "turbo" service.
>
> Ping works both ways between the hosts and I installed the Telnet server on
> the Centos machine and I can log onto telnet from the Windows PC. I have
> tried
> various combinations of protocols and services on the ODBC client side
> with no
> luck...always the same message. Double-checked my sqlhosts file on server
> and
> the sqlhost registry entry on the client. I also shutdown the firewalld
> program on the server (for testing).
>
> I can't seem to find much information in the IBM/Informix docs about the
> listener...I guess they figure if the db server starts, it will, too...but
> I
> don't think it did.
>
> If it matters, both the client and server systems are running under
> VirtualBox
> (as is the Windows Informix 10.0 server that can be contacted). And, (as if
> this matters when you're stuck), I've been working with Informix as a
> application developer for 15 years. Just never had a listener problem
> before.
> So, what am I missing? Thanks everyone.
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--
Fernando Nunes
Portugal
http://informix-technology.blogspot.com
My email works... but I don't check it frequently...
--089e01227f369e5593050529bd98
Fernando...you helped, but so far, no cigar.
First thing I found is that there were two listener threads, but there were
two reasons they didn't help me...First, they were IPV6 threads. From an older
post on this forum (which, btw, YOU wrote..lol) I found that I could force
Informix to use IPV4 with the env. variable export IFX_DISABLE_IPV6=1.
Got that done and at least the two listeners were now IPV4. But they were both
still attached to the localhost, which I assume means the "lo" network
interface.
My Centos system has a network interface named "enp0s3" and while this works
for other functions (telnet, ping, etc.) I'm not sure how to get Informix to
start a listener on it. In the /etc/hosts file I have an entry:
"192.158.15.6 teledat-centos"
In the Informix system's onconfig file I have two lines that say:
DBSERVERNAME ol_informix1170
DBSERVERALIASES dr_informix1170,ol_centos1
The ol_centos1 alias is mine, the other two names are Informix's.
And in onconfig, I also have two lines:
NETTYPE ipcshm 1,50,CPU
NETTYPE soctcp 1,4,NET
The first NETTYPE entry was put in by Informix, the second by me.
In the system's sqlhost file I have:
ol_informix1170 onsoctcp localhost.localdomain ol_informix1170
dr_informix1170 drsoctcp localhost.localdomain dr_informix1170
ol_centos1 onsoctcp teledat-centos ol_centos1
The ol_centos1 entry is mine, the other two lines were installed by Informix.
I have also tried my sqlhosts line as:
ol_centos1 onsoctcp 192.159.15.6 ol_centos1
And, finally, using lsof -i, I have 4 threads listening (now all IPV4) from
informix, but there are two from localhost:ol_informix1170 and two from
localhost:dr_informix1170. None are from my teledat-centos1 alias and all are
listed as "localhost".
No matter what I do, I can't seem to get this to listen on the network...btw,
just to be clear, I do restart the Informix server between all of these
changes.
Again, I'd appreciate any help you can give.
Thanks,
Wayne
On Oct 11, 2014 9:43 PM, "WAYNE SHEARER" <wshearer@teledat.com> wrote:
>
> Fernando...you helped, but so far, no cigar.
>
> First thing I found is that there were two listener threads, but there
were
> two reasons they didn't help me...First, they were IPV6 threads. From an
older
> post on this forum (which, btw, YOU wrote..lol) I found that I could force
> Informix to use IPV4 with the env. variable export IFX_DISABLE_IPV6=1.
>
> Got that done and at least the two listeners were now IPV4. But they were
both
> still attached to the localhost, which I assume means the "lo" network
> interface.
>
> My Centos system has a network interface named "enp0s3" and while this
works
> for other functions (telnet, ping, etc.) I'm not sure how to get Informix
to
> start a listener on it. In the /etc/hosts file I have an entry:
>
> "192.158.15.6 teledat-centos"
>
> In the Informix system's onconfig file I have two lines that say:
>
> DBSERVERNAME ol_informix1170
> DBSERVERALIASES dr_informix1170,ol_centos1>
> The ol_centos1 alias is mine, the other two names are Informix's.
> And in onconfig, I also have two lines:
>
> NETTYPE ipcshm 1,50,CPU
> NETTYPE soctcp 1,4,NET>
> The first NETTYPE entry was put in by Informix, the second by me.
>
> In the system's sqlhost file I have:
>
> ol_informix1170 onsoctcp localhost.localdomain ol_informix1170
> dr_informix1170 drsoctcp localhost.localdomain dr_informix1170
> ol_centos1 onsoctcp teledat-centos ol_centos1>
> The ol_centos1 entry is mine, the other two lines were installed by
Informix.
> I have also tried my sqlhosts line as:
>
> ol_centos1 onsoctcp 192.159.15.6 ol_centos1>
> And, finally, using lsof -i, I have 4 threads listening (now all IPV4)
from
> informix, but there are two from localhost:ol_informix1170 and two from
> localhost:dr_informix1170. None are from my teledat-centos1 alias and all
are
> listed as "localhost".
>
> No matter what I do, I can't seem to get this to listen on the
network...btw,
> just to be clear, I do restart the Informix server between all of these
> changes.
>
> Again, I'd appreciate any help you can give.
>
> Thanks,
>
> Wayne
You should check the online.log (MSGPATH parameter) file for errors.
Also check that your /etc/services file contain an entry for 'ol_centos1'
If it doesn't change that for a port number in the sqlhosts file.
Regards
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
--089e0112cedca16dea05052cd9a2
Have you tried
Telnet hostname informix_port ?
Connection refused is normally not listening or firewall - if you hit return
it should disconnect and leave you with a 401 error in the online log
Cheers
Paul
Paul Watson
Oninit www.oninit.com
+1 913 387 7529
> On Oct 11, 2014, at 15:42, "WAYNE SHEARER" <wshearer@teledat.com> wrote:
>
> Fernando...you helped, but so far, no cigar.
>
> First thing I found is that there were two listener threads, but there were
> two reasons they didn't help me...First, they were IPV6 threads. From an
older
> post on this forum (which, btw, YOU wrote..lol) I found that I could force
> Informix to use IPV4 with the env. variable export IFX_DISABLE_IPV6=1.
>
> Got that done and at least the two listeners were now IPV4. But they were
both
> still attached to the localhost, which I assume means the "lo" network
> interface.
>
> My Centos system has a network interface named "enp0s3" and while this works
> for other functions (telnet, ping, etc.) I'm not sure how to get Informix to
> start a listener on it. In the /etc/hosts file I have an entry:
>
> "192.158.15.6 teledat-centos"
>
> In the Informix system's onconfig file I have two lines that say:
>
> DBSERVERNAME ol_informix1170
> DBSERVERALIASES dr_informix1170,ol_centos1>
> The ol_centos1 alias is mine, the other two names are Informix's.
> And in onconfig, I also have two lines:
>
> NETTYPE ipcshm 1,50,CPU
> NETTYPE soctcp 1,4,NET>
> The first NETTYPE entry was put in by Informix, the second by me.
>
> In the system's sqlhost file I have:
>
> ol_informix1170 onsoctcp localhost.localdomain ol_informix1170
> dr_informix1170 drsoctcp localhost.localdomain dr_informix1170
> ol_centos1 onsoctcp teledat-centos ol_centos1>
> The ol_centos1 entry is mine, the other two lines were installed by Informix.
> I have also tried my sqlhosts line as:
>
> ol_centos1 onsoctcp 192.159.15.6 ol_centos1>
> And, finally, using lsof -i, I have 4 threads listening (now all IPV4) from
> informix, but there are two from localhost:ol_informix1170 and two from
> localhost:dr_informix1170. None are from my teledat-centos1 alias and all are
> listed as "localhost".
>
> No matter what I do, I can't seem to get this to listen on the network...btw,
> just to be clear, I do restart the Informix server between all of these
> changes.
>
> Again, I'd appreciate any help you can give.
>
> Thanks,
>
> Wayne
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
Thank you...Thank you...Thank you... Fernando, you did it again. I guess I still don't really understand the format of the sqlhosts file (after 15 years...unbelievable). I changed the 4th column to read "sqlexec" which is the service name from the /etc/services file that was assigned by Informix for this server's TCP service (port 9088). That immediately changed the lsof info and provided me a listener with the IP address of my host...and that allowed my Test Connection in the ODBC manager to work...and my app on the PC now connects to the Informix server. Tomorrow, I'll figure out how to get the firewalld to allow that port, so I can start the firewall again, and I should be in business. Thanks again...here's another one you can chalk up to "SOLVED". I owe you, Wayne PS. I did check the online.log (failed to mention that to you), but there were no errors logged (since the error was ME...) :-) W.