This page includes details on things that cause c9 to stop working and how to avoid them in the first place and how to diagnose and correct for them if they occur. The common pattern in these problems are issues that arise in areas outside of c9's control. The solutions are mostly straight forward to perform.
Origin of common problems
Root cause of problems are typically one of the following:
- Physical network problem. Cable has been kicked out; switch/router has failed and needs to restart
- Logical network problem. IP address change, firewall change. Network designation change
- Antivirus problems : sometimes the remedy is worse than the condition.
- A couple of other miscellaneous problems : java auto update for example
Recommended practices to avoid problems occurring in the first place.
1. Do not use wireless networking.
Many people have the mistaken belief that wireless superceeds cabled networks. It most certainly does not. Wireless involves significant tradeoffs; incurs benefits and penalties. Because of this wireless is an alternative for cabled networks, not a replacement. The penalties make wireless unfit in many business environments. Specifically:
- Wireless is slower. Cabled networks will always outperform wireless. Especially environments with excessive RF shielding and where your shop neighbours also heavily use wireless.
- Wireless is less reliable. Network discontinuities are common on wireless links; which can result in poor networking experience.
- Wireless security model is indeterminate; whereas cabled networks are considered physically secure. From the point of view of computers on a wireless network, you could be in an internet cafe, could be in someones home or could be in a private, secure business. Computers on wireless networks make assumptions about the nature of the network and the trustworthiness of other computers on the same network. Sometimes when a link is dropped and reestablished those assumptions are lost and the computer will assume the worst, you are in an untrusted environment. When this happens the computers security firewalls automatically reconfigure disabling business software such as c9 from using the network.
2. Use appropriate fit for purpose anti virus software.
Some anti virus software is too clever for its own good. They are highly pervasive and invasive, take control of your computer and when things go wrong take your computer down with them.
- On multiple occasions we have witnessed Norton Anti virus damage computers and c9. Specifically when Norton licence runs out it disables certain operations on your computer that all modern networked database systems, including c9's database, rely on. Meaning c9's database cannot start.
- On at least one occasion we have witnessed AVG physically delete files necessary for operation of c9 rendering c9 unusable until it is reinstalled; on the completely incorrect assumption that such items are malicious.
- Avoid 3rd party firewall solutions. Microsoft's default firewall is perfectly fine. If you insist on using a 3rd party solution c9 will not be able to bail you out of trouble if it mis-behaves. Maintaining a 3rd party firewall is the responsibility of whomever installed it, i.e. your local IT support. They need to ensure the firewall on the server computer allows inbound traffic ( on TCP port 5432) so that terminals can access the database.
- C9 recommends Microsoft Security Essentials. It is compact and non invasive and it has never negatively interfered with c9.
3. Use static IP address for your server
If you server keeps changing IP address and you have to keep feeding it in, you can stop this by assigning your server a static IP address. Your local IT support should be able to handle this task without difficulty. Configuring static IP does require consulting your router/modem technical documentation although, so there is no surefire recipe we can share on how to do this. It is requires IT expertise from someone physically close to your computer network.
Static IP for terminals is unnecessary. There is no benefit/disadvantage in terms of c9 itself.
Problems and their solutions
C9 does not start at all. Black screen flashes and then nothing.
Explanation 1 : problem with java update
Java is supposed to automatically update. We have observed in some cases the update silently fails if java is also running at the same time. The failure damages java and c9 can no longer run. The solution is simple: uninstalled and reinstall java.
To uninstall goto control panel, programs, locate java and remove it.
To reinstall, goto http://java.com/ click on free download and follow instructions.
Explanation 2: problem with older versions of c9
On older versions of c9, a network error while version was updating could damage c9. From windows explorer, goto folder \c9\ on main local C: drive. Delete any file that ends with 'tmp' and contains lots of random numbers and letters. Try running c9 again.
C9 reports cannot find database one one terminal only
You get a screen that looks like this:
Explanation 1 : physical network
Often it is because a cable has become dislodged. Seems like such as pithy excuse, but most of the time when we get a support call about this, a loose cable is always the explanation. Check following:
- Make sure both terminal and server can both access the internet. This is a good simple way to verify that the network is okay
- Check physical cables
- Try switching on and off your router and or modem. Routers can fail and require restarting. Some more than others.
Once done, click retry.
Explanation 2 : change in IP address
The client of the server has changed IP address and cannot discover each other on the network. Click on 'show database manager' to take this to the next step to fix. An explanation on how to fix this is described here:
C9 reports cannot find database one any terminal (but is okay on server)
Explanation 1 : physical network
Again likely explanation is physical network. Most likely the link between the server itself and your router/modem. See above.
Explanation 2 : change in IP address
As above the network has reconfigured itself and your networks operates off IP addresses.
Explanation 3 : firewall and/or antivirus
Another possibility is firewall or anti virus is preventing computers from accessing the server. Diagnosing such problems can be difficult and require networking expertise. These problems are typically very rare although.
If you are using windows firewall, you can access if via control panel. The firewall needs to allow port 5432 into the server.
Example screen shot from Windows XP:
And windows 7:
When you install C9 database it will automatically add firewall rule. If you are having problems you can try and uninstall c9 database and reinstall it; this will re-add the rule. Not that uninstalling an reinstalling the c9 database is quite safe. The process only uninstalls and reinstalls the database program. The data itself, saved in folder c:\c9db\8.4\data\ is not modified during uninstall/install.
To unistall: goto control panel, programs. Select 'C9 PostgreSQL x.x.x
To reinstall: download and run database install from c9 website here: http://c8software.com.au/wp/downloads/
Explanation 4 : firewall and wireless network
Running your server over wireless is a terrible idea; and something c9 strenuously discourages. We are always willing to try and help, but insisting on doing this is a disservice to both yourself and us because it wastes our time; and we may refuse to render support in such situations. If you insist on doing this we can at least here point you at a couple of things that may provide temporary relief. The only proper solution is to cable your server.
Most common cause of this problem is configured network location. Right click on network icon and select "Open Network and Sharing center"
Note the highlighted section; it shows the assumed location of your network. Click on it to change it.
Typically, 'Work network' is the location you need to enable firewall to permit c9. If that does not work experiment with other options.
One last option, via advanced firewall is to modify locations firewall rule applies. Select all of them.
C9 reports cannot find database, including the server computer
Typically this means database is not running.
Explanation 1 : database temporarily shutdown for some unknown reason
This is rare and generally shouldn't happen at all. Try rebooting the server first before considering other explanations.
Explanation 2 : anti virus - disabling socket bind operations
A fairly technical problem. An essential service needed by all modern network based databases is not functioning.
Typically caused by one of two things:
- Anti virus needs money. : pay your anti virus fee and problem will disappear. Alternatively, our recommendation is delete your anti virus and use Microsoft Security Essentials : it is free.
- Computer is screwed. Specifically winsock stack is broken; possibly a broken LSP (i.e. anti virus).
The latter is hard to fix, so recommend confirming diagnosis first. Two ways to do this.
Firstly in logs for c9s database you should see some sort of indication of this. Goto following:
Locate the latest file and open it in notepad. If you see something like this, then the problem is indeed this:
LOG: could not receive data from client: An operation was attempted on something that is not a socket.
Another diagnostic tool is netcat (or nc). If you run it like this:
nc - l 5433
And output is this:
local listen fuxored : INVAL
This also confirms the problem.
The problem is likely that you have been victimized by over-zealous yet defective anti virus. The only reliable, simple solution is to do a system restore and then uninstall/reinstall c9 database as described above. Something your local IT support will need to do.
Explanation 3 : anti virus - deleting C9 Database executable files
Anti virus may delete database files. For example we've observed anti virus delete the following critical file.
If this has happened, the option is to uninstall and reinstall the database a described previously.
Explanation 4 : postgres user problems
The database c9 installs is called postgres. Postgres insists on creating a separate user on your computer. As annoying as this is, and many people who use postgres complain about it, it is intrinsic to the product itself and the maintainers of postgres are adamant about retaining this behaviour.
A common problem is people delete the postgres user assuming it has no purpose. This will kill c9. To fix it you just need to uninstall and reinstall the database as described above.
Another less common problem relates to people who insist on using server/professional edition windows or complex domain name networks. One of c9's strengths is that it does not require special hardware or software to run. It does not require a special 'server' edition that can cost thousands of dollars; meaning your shop computer system remains both inexpensive and simple. Though some local IT support staff erroneously insist that you need to buy an expensive server and maintain an overly complex and over-engineered network configuration only they can possibly understand and manage. In terms of c9, it is not the case and infact creates more problems by layering in unnecessary complexity. The following is technical information aimed at such IT support staff. C9 does not provide technical support for such configurations, though we provide pointers, as a courtesy, so that such IT local support staff are able to try and push through their self imposed technical problems and get the system to work.
- postgres user must be allowed to execute as a windows service.
- ideally, do not enable password expiry. Otherwise postgres user will expire at some point and database will stop working
- ideally, permit the server to allow simple passwords. If you don't do this then you'll need to disentangle instructions encoded in c:\c9db\8.4\c9install\postinstall.bat and make necessary changes. This is not something we will provide technical support on
- ideally, do not configure disk quotas. If you insist, give postgres a generous configuration, at least 100GB so that there is no possibility of running into problems with quota limits.