In short, after Windows Updates rolled-out on Patch Tuesday (1/8/2019), if you have a network of computers where they connect to folder shares, printer shares, etc., they were no longer able to connect.
For those running consignment software, this impacted stores either completely, or partially — e.g. ConsignPro uses a file-based database (MS Access .MDB file) which a share is setup on the server, then workstations are pointed to that share via UNC path. For other consignment programs that utilize a SQL Server-based database management system (e.g. Peeps’ Consignment Software, Liberty Consignment Software, etc.) this didn’t impact the software’s ability to run, but any file-based features — e.g. images, report files, etc. — could be impacted.
The fix — roll-back (uninstall) the two, offending Windows Updates.
Below is a detailed outline of the screens/steps. Hope this helps!
Head to Control Panel > Windows Updates:
Click View Update History:
Click Installed Updates:
Uninstall KB4480960 (reboot) then uninstall KB4480970 (reboot):
Be patient. On systems without SSDs (Solid State Drives), this can take a long time to process. On systems with SSDs, this can still take a bit, but it processes much quicker. You might see ‘Preparing to configure…’ during this process and then ‘Configuring Windows Updates 100%’ for quite some time:
For ConsignPro consignment software users, you’ve been told for years, “Make sure you do your end-of-year backup!” Stores would call us, ask us how to do this, and every year it would be an ordeal as stores tried to accomplish this task.
I figured, why not just write our own software that does this for ConsignPro software users. 🙂 So every year, Peeps’ Automatic Backup Software for ConsignPro, automatically creates your end-of-year backup if you’re on Peeps’ Support:
Now, the reason ConsignPro wants this, is because ConsignPro deletes/purges data every day when you close it. As you roll into the new year, your consignor account history, is deleted. To be able to ‘prove’ to a consignor that they used store credit last year, you’d have to have a backup to restore.
For those on Peeps’ Consignment Software or Liberty consignment software, we also do an an end-of-year, but not for the same reason. Over the years I’ve learned that having an end-of-year backup, has come in handy when a store is audited, or if the storeowner decides to sell.
So if you’re on Peeps’ Support, we do an automatic end-of-year database backup for you, regardless of consignment software. 🙂
Liberty Consignment unable to connect to database is a common issue with Liberty.
Sometimes, simply rebooting can fix this. That might not always work — sometimes you might have to reboot twice. Reboot twice!? Yes, reboot twice. Microsoft SQL Server is a Microsoft product, so Windows Updates can impact it. If updates have impacted it, rebooting doesn’t mean everything’s done — that’s when updates actually install. Then, there’s post-update processing when you first log-in. Once this has finished, reboot again, and you’re back to *normal*.
There can also be times when rebooting isn’t going to help:
You have three computers, but the main/server computer, is powered-off, has become disconnected from the network, etc.
A new change to your systems — e.g. installing firewall/security software — is blocking incoming connections to MS SQL Server.
For Peeps’ customers and the systems we monitor, knowing if our stores’ systems can connect to MS SQL Server and if Liberty will be up and running for them when they open, is critical.
Peeps’ Liberty Connection Checker
For customers on Peeps’ Support, we’ve learned over the years, that you can check all you want @ making sure MS SQL Server is up and running — that does NOT mean Liberty (or anything) is actually able to connect to the database.
So after having stores call-in and report they’re unable to open Liberty — even though we monitor to see if MS SQL Server is running — we wrote our own, redundant monitoring software that actually tries to connect to the database — Peeps’ Liberty Connection Checker:
This guarantees us that our stores on Liberty, will be able to run Liberty when they get in. If it can’t connect, we’re alerted, as is the store:
Liberty isn’t perfect and Liberty doesn’t check these things for you. Two simple things Liberty could do to minimize your support costs:
At the very least, suggest you reboot the computer.
Automatically try to Stop/Start the MS SQL Server service for you.
Walk around your store with a pen and paper and make note of each computer and where its network cable plugs-in at.
Make note of each network ‘box’ — e.g. you modem, router, and any little hubs/switches.
At its base-level, a network is a really simple thing — just a wire from each computer, plugged-in to a box. Sort of like plumbing and pipes that carry water from one place to another — just a series of tubes. 🙂
For a consignment store, this can mean anything from not being able to get on the Internet, to your consignment software crashing, to just one or two computers getting ‘unable to connect to database’ errors.
So I’ve found it really helps to have a clear picture — literally — of your network setup. Let’s take a look at a few setups and how these relate to a consignment or resale store…
In a smaller store, you might only have one computer. It’s also not uncommon to have an ‘all-in-one’ router/modem combo — i.e. a single box that both connects you to the Internet, as well as providing firewall, network sharing, and WiFi functionality.
So here’s what a smaller store’s setup might look like — one computer, plugged-in to the router/all-in-one (even if it’s WiFi, it’s a ‘virtual’ wire), and then to the cloud!
For you, your issues could range from not being able to get online, to experiencing *slow* Internet, or even ‘connection failures’ in Liberty. Possible sources of your issues and steps to troubleshoot:
Slow Internet or No Internet Connection — Power-off your router/modem by disconnecting its power cable, then reconnecting its power cable.
Connection Failures in Liberty — Even if you’re hard-wired to your router, check to see if your computer has a WiFi connection and if it’s on. If so, completely disable the WiFi adapter.
Next, let’s move on to a store that has two computers. Contrary to popular belief, the two computers do not *plug-in to each other*. Instead, both of the computers plug-in to a box (your router) and that’s how they share your consignment software’s database, as well as share an Internet connection.
One of the most common issues in this kind of setup, is computer #2 cannot open the consignment software/gets database errors. This is because it relies on getting through the network, over to the database that resides on computer #1. If it can’t connect at all, but could *yesterday*, check the network cable — it’s amazing how common a bad/broken network cable is used, which means it slips out of the network jack. Always use network cables that properly clip-in to place — if your network cables can be pulled out without having to press that little, plastic tab, throw them away and replace them.
There are other issues that can arise in this setup as well:
Someone setup your consignment software to point to an IP address, not the server computer’s name. We recommend essentially never using IP addresses — only use the computers’ names. By using an IP address, you’re making a ‘brittle’ setup that can break out of the blue, or if you replace your router. There are only a few circumstances one would ever ‘point’ the workstation to the server’s IP address.
The all-in-one has been updated/altered/changed by the ISP, without your knowledge. This happens quite a lot. When you lease an all-in-one from your ISP, they own it, not you. They have access to said device and can (and will) push updates/changes to it. This can lead to your consignment software on the workstation running slowly, or not working at all.
Extended Network Setup
For larger stores, or stores with “computers up front” for point of sale, the network layout starts to get a bit more ‘complex’. Basically, instead of all of the computers plugging-in directly to the router, they use an ‘extension’ of sorts — i.e. a network switch.
In the setup below, notice how computer #3 and #4 connect to a little box (network switch) and then that box connects to the router. This creates a point of failure — e.g. if that network switch breaks, loses power, or becomes disconnected, then only those two computers won’t be able to get online or open your consignment software.
So this is how you can run into issues such as, “Only the computers on this side of the store can’t connect, but all of the other ones can!”
In a setup like this, it’s important to know where that little network switch is, to ensure all of the network cables are new and ‘clip’ in to place, and I’d even recommend putting that network switch on a battery backup.
Extended Network Setup w/ Modem
And lastly, some stores have a dedicated modem with their own router — this is the setup we recommend (See:Why You Should Not Utilize Your ISP’s Router). Some — even techs — use the terms ‘modem’ and ‘router’ interchangeably. These are two different *things* with different functions. ISPs have taken to putting both in one box — i.e. an ‘all-in-one’. This can seem to be convenient, but using an all-in-one comes with a variety of issues:
They tend to be lesser devices, which leads to network (and consignment software) slowness.
They tend to be unpredictable — i.e. where you’d never see certain issues with your own router, you’ll experience everything from slowness, to internal routing issues.
They tend to fail prematurely.
They tend to need to be ‘rebooted’ often.
By having your own, dedicated modem, it helps alleviate the issues outlined above, but you can also run into issues if the modem loses power — e.g. you won’t be able to get online, but you will still be able to use your consignment software throughout the store.
That last one, is really important, because even though most of the consignment programs do not require an Internet connection, Internet-connectivity issues with an all-in-one can prevent your consignment software from running.
If there’s one takeaway from all of the gibberish above, it’s this — just make sure you (and your employees) have a basic understanding of how all of the computers plug-in to the network. This alone, can help prevent down-time and minimize the amount of stress that comes from not knowing what the heck the issue could be. 🙂
We’re proud to announce Peeps’ Database Compressor for Liberty. Liberty4 Consignment will start to run slower and slower over the years. Its database is managed by Microsoft SQL Server, which is a good thing. Just like books have indexes, so do databases. If you have a large amount of data and have been running Liberty for multiple years, you’re likely ready to re-index your database.
Since Liberty doesn’t have this built-in, nor does it let users know this maintenance should be performed, you’re left to discover this on your own — finding out when things get slower and slower.
Resaleworld charges $100-$150 to compress your database. The ability to re-index your database is built-in to Microsoft SQL Server:
So you could do this yourself, as could any tech.
It took Dean @ Computer Peeps about 2 hours to put this simple database maintenance routine, into a free program that Liberty4 Consignment users can run by themselves.
We feel this functionality should be built-in to Liberty, should be free, and should happen automatically, but Resaleworld feels differently. If Dean can do this by himself in a matter of hours, then a company with a ‘team of developers’ and a ‘support team’ should be able to do so as well.
If you’d like Dean @ Computer Peeps to do this for you, there is no charge for this service. It takes anywhere between 5-20 minutes to run this database maintenance, depending on the size of your database and the speed of your computer.
If you run Liberty, you’ve likely seen Connection Failures more than once. More-so, you’ve likely been hit with this either in the middle of the day, or come in to the store in the morning to hear the dong, dong, dong, dong and see the cascading errors covering your screen:
What Does A Liberty Connection Failure Mean?
Liberty utilizes MS SQL Server to store and retrieve your data — this is a good thing. MS SQL Server is its own, stand-alone program which Liberty communicates with. Just like you make a phone call to someone, Liberty makes a ‘call’ to MS SQL Server when it needs to put new stuff in to or get stuff out of the database. If it can’t get through to MS SQL Server — e.g. MS SQL Server isn’t running, your server computer is offline, your WiFi connection drops, you have both a wired + WiFi connection on your PC, etc. — it will pop-up a Connection Failure error.
Why Do These Errors Pop-up Over and Over Again?
The Connection Failure in and of itself isn’t a *bad* thing. Liberty actually properly ‘handled’ the fact that it couldn’t connect to MS SQL Server. The reason it pops-up over and over and over again, is because Liberty is using a Timer component to try and connect to the database every second. That timer is set to Tick every second, which is why when it can’t connect, you’ll see the error and hear the dong, dong, dong, dong every second. The problem at this point, is you’ve lost control of Liberty and you can’t close it. This is the first and primary issue with how Liberty handles the Connection Failure. Instead of letting the Timer Tick event tick over and over again, every 1,000 ms, it should recognize it cannot connect to the database, set the Timer to Disabled, and then provide you, the user, with a more-intuitive message and response — e.g. “Uh oh! It looks like Liberty cannot connect to your main computer running MS SQL Server. Please check your connection and make sure MS SQL Server is running. Try again?”
This issue is so prolific and creates such a delay for our clients, we’ve made our own Kill Liberty button so they can safely kill the running process:
What The Heck Is a Timer?
In software, sometimes you want to *do stuff* every X seconds/minutes — e.g. every 15 minutes, check for new updates. To do this, you can use a specific component available in most programming languages, called a Timer.
A Timer is a component you can add to your program and then set it to ‘tick’ on a regular interval. The default interval is typically 100ms, so to make it tick every second, you’d set it to 1,000 ms (one thousand milliseconds = one second).
Great, now it’s ‘ticking’, but what is it actually going to do when it ticks? In Liberty’s case, it tries to connect to the database every second. When it can’t connect, it pops-up an error letting you it can’t connect, then it ticks again, then it pops-up, then it ticks again, and so on.
That it knew it couldn’t connect to the database, means it properly handled (responded-to) the exception (unexpected event/situation) it encountered. When an exception is handled, the programmer has a choice of what to do. At the very least, it’s typically best to inform the user of the issue with a pop-up message. You can take this one step further though and add additional things to do when an exception is handled. One of those things, in this situation, would be to stop the Timer.
This way, it doesn’t keep ticking over and over again, thus, preventing the non-stop pop-ups and providing you with a way to either ‘try again’ or close the program altogether.
This is an old, old issue in Liberty and I shouldn’t have to point this out to the vendor in order to improve Liberty users’ experiences. My goal though, is to make my clients’ lives easier and this single issue, is one of the most common and difficult to handle issues for our clients. If The Computer Peeps have to be the ones to bring attention to issues and get them fixed, then so be it.
This issue has been reported to the vendor on multiple occasions and there’s no way they’re not fully aware of this issue. Which raises the questions — Why has Liberty been allowed to do this for over a decade? Why hasn’t this been fixed? Why does it take The Computer Peeps to shed light on these issues? Why isn’t the support staff and developers @ RSW finding and fixing issues like this without prompting?