IPV6 May Cause Problem for PSQL 11 Relational Query

Release Date: 01/20/19

IPV6 (Internet Protocol Version 6) is designed to eventually replace IPV4.  IPV4 has an IP address like  Each segment can have a value from 0 - 255, so the theoretical maximum number of IPV4 addresses is a little over 4 billion. The world is running out of static IPV4 addresses; hence the creation of IPV6, which can accommodate much longer IP addresses so that you can assign a unique address for each household appliance and directly communicate with it from anywhere on the Internet.

Microsoft started providing IPV6 in Vista OS and Windows 2008.  At the moment, all Microsoft-supportable Windows operating systems come with IPV6 and IPV4 protocols enabled. Generally speaking, IPV6 takes priority over IPV4.  That is to say, if IPV6 communication is available, the system will use IPV6 first. Some IT groups have chosen to disable IPV6 to avoid potential problems.  Microsoft advises against that practice and explains that IPV6 can co-exist with IPV4 without causing any problems.  But is that so? The following is an article that explains why sometimes IPV6 can cause problems:
In this article, it explains that when an application software tries to look up a DNS server for an IP address, the OS will first attempt to look up the IPV6 address, but the DNS server will choose to ignore it because it does not support the IPV6 address.  So the OS will make five attempts before giving up and looking for an IPV4 address, which get a valid response.  But this results in a 15-second startup time delay. By disabling the IPV6, the application starts up immediately and thus solves the problem.

PSQL 11 Partially Supports IPV6

In one recent support incident at Netcellent, we also noticed that IPV6 can sometime cause problems. Here is the scenario:
  • The user recently purchased a new Windows 10 workstation.
  • The user installed the PSQL 11 client on this machine.  They were using a PSQL 11 server.
  • They can run Elliott fine. They can bring up PSQL 11 Control Center and everything seems to work.
  • But when they used Excel Query, it failed.
Our support engineers investigated the problem by pinging the PSQL 11 server. The server IP address that responded was in the IPV6 format. So he chose to disable the IPV6 protocol and that fixed the problem. The reason this fixed the problem is because PSQL 11 only partially supports IPV6. See the following article in PSQL 11 release notes:
In this article, it explains that PSQL 11 supports IPV6 for a Btrieve (transactional engine) and DTI. But it does not support IPV6 with a relational engine. So the question is why does PCC work in the above incident? We believe that is because PCC knows that IPV6 is not supported with a PSQL 11 relational engine, so it chooses to communicate using IPV4. On the other hand, Excel Query may not know that and chooses to communicate in IPV6, which fails. 

Solution 1 - Disable IPV6

To disable IPV6, you need to go to Control Center and find the network adapter under the Network area.  Right click on the network adapter and choose "Properties."  The following window will show up:

To disable the IPV6 protocol, un-check the "INternet Protocol VErsion 6 (TPC/IPv6)."

Soluton 2 - Upgrade to PSQL 12

Users may want to consider upgrading to PSQL 12 because its relational engine does support IPV6. See the following article in PSQL 12 release notes:

Are There Any Other Solutions?

Since Microsoft does not recommend disabling IPV6, the question is are there other solutions that can solve this particular issue?  Based on our research, you may try the following solutions.  But we don't have an environment to confirm these -- they are just theories that you can try:

Possible Soltuion 3 - Use IP Address to Set Up DNS

Most of the time, when you try to set up a client side DNS, in the Server Name/IP box, you will enter the sever name.  That server name will later on translate to the IP address through DNS server lookup. 

Since we believe the IPV6 may interfere with the DNS server lookup, you should set up the Server Name/IP with an IP address like the following:

Our theory is that this will force the communication to use IPV4 and thus eliminate the IPV6 interference.

Possible Solution 4 - Make IPV4 Take Priority Over IPV6

Through our research, we found that you could make IPV4 take priority over IPV6 by creating or editing a registry value in te following article:
Keep in mind that editing a registry can be dangerous.  Making a mistake when using regedit can have devasting results.


Pervasive PSQL

  1. Btrieve Error Codes 001 - 199
  2. Btrieve Error Codes 3000 - 3099
  3. Btrieve Error Codes 3100 - 3199
  4. PSQL Version Required by Each Elliott Version
  5. Do I Need to Change PSQL Server Engine Default Parameters After Installing It?
  6. New Elliott PSQL Server Processor and RAM Suggestions
  7. Can I Dynamically Adjust Elliott / PSQL 11 Server Memory?
  8. Received "Your Computer Does Not Have PSQL 10 or 11 Client " Even though PSQL Client Is Just Installed
  9. Btrieve Error 161 on Password File When Starting Up Elliott
  10. Problems with Using Pervasive Rebuild Utility on APOPNFIL and AROPNFIL Tables
  11. Security Issue with Installing PSQL Client Remotely on User's Workstation
  12. PSQL and Distributed File System (DFS)
  13. How Do I Turn on PSQL Relational Engine Security?
  14. An Example of Debugging NOTE_ORD_VIEW PSQL Expression Evaluation Error
  15. Btrieve Error 025 on COP Open Order by Salesman Report
  16. What Is the *.^01 File for My PSQL Btrieve Table?
  17. Suggested Files to be Monitored by Audit Master
  18. Pervasive Backup Agent Is Not Compatible with Creating Work Files
  19. Hardware Recommendations for Your PSQL Database Server
  20. How to Optimize SQL SELECT Statement When Retrieving Data from Invoice History
  21. New User-Defined Functions in Elliott DDF
  22. How to Improve Query Performance When Retrieving Data from Notes & Invoice History
  23. How to Retrieve Tracking Number for an Order from Notes
  24. Actian PSQL Not Started Automatically After Server Reboot
  25. Create a New Database in the PCC for Relational Engine Access
  26. Slow PSQL Relational Engine Performance
  27. IPV6 May Cause Problem for PSQL 11 Relational Query
  28. DDF Files in DATA Folder May Confuse PSQL
  29. What to Do When PSQL 11 License Is Disabled
  30. Quick Installation Guide for Audit Master
  31. Quick User Guide for Audit Master
  32. PSQL 13, Micrsoft SQL Integration Service & Pervasive PSQL OLE DB Provider
  33. Your Firewall Needs to Allow Outbound Traffic to the Netherlands for PSQL Licensing Server Purposes
  34. A Case of Btrieve Error 046 on ARCRCLOG A/R Credit Card Log File
  35. A Support Case of Migrating to Different Version of DDF
  36. How to Clear the Message "Unable to Read your Users record (9/068)"
  37. Setup of the PSQL 13 Report Engine
  38. How to Create CPHSTTRX_VIEW with Left Join to CPINVHDR Due to Invoice Database Archive
  39. How to Access Elliott's Data by Using Query in Microsoft Office Excel 2019
  40. Elliott Database Naming Convention
  41. What Does Btrieve Error 080 Mean?

Feedback and Knowledge Base