"Installation incomplete on required module XERCES-COM.DLL" error after 1 query |
Author |
Message |
|
Posted : 2006-12-01 06:56:38 |
I am using the QODBC driver by means of a Windows webserver using Apache 2.0 and PHP. I routinely receive the following error:
Warning: odbc_connect() [function.odbc-connect]: SQL error: [QODBC] Installation incomplete on required module XERCES-COM.DLL, SQL state S0000 in SQLConnect in C:\Program Files\Apache Group\Apache2\htdocs\qbimport.php on line 58
Line 58 is simply the odbc_connect() system call. The relevant lines are:
$dsn = "DRIVER={QODBC Driver for QuickBooks};" . "DFQ=" . $quickbooks_path . ";"; $qodbc_conn = odbc_connect($dsn,"","");
While I've read the forum posts on this site that suggest limiting transfers to groups of 1500 or rebooting the system daily, I find that in my situation I am able to run one query, but my attempt to run a second or third query generates the above error.
This is horrible performance, especially when the objective is simply to run two consecutive queries on a system that is powered down every night. I was previously receiving this error in the QODBCLOG.TXT file combined with another error regarding the SQLite_MASTER table:
IsAService: False SQLOptimize_OpenOptimizeDBHandle prepare: SELECT "type", "tbl_name" FROM "SQLite_MASTER" database disk image is malformed
I have since upgraded the driver from version 6.00.00.143 to version 7.0.0.200 and followed the instructions to disable the QODBC Optimizer. The "installation incomplete" error persists.
I have recently discovered that stopping Apache.exe and restarting it after every batch of queries has eliminated the error message. This is, however, not what I would consider a solution. Is there any documentation that outlines where this error message is created or what steps I can take to properly release resources from PHP or Apache so that I can get reliable performance from the QODBC driver? |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-12-01 08:26:56 |
Ok, try renaming xerces-c_2_6.dll to xerces-c_2_6.bad and xerces-com.dll to xerces-com.bad and re-running the QODBC installation program which will do:-
File Overwrite: C:\WINDOWS\system32\xerces-c_2_6.dll File Overwrite: C:\WINDOWS\system32\xerces-com.dll Self-Register: C:\WINDOWS\system32\xerces-com.dll
and check the botton of the install log found at: C:\Program Files\QODBC Driver for QuickBooks\INSTALL.LOG that it has taken. |
|
|
|
|
Posted : 2006-12-01 09:06:49 |
Done:
1. I have renamed the two xerces*.dll files to have the .BAD extension in C:\Windows\System32.
2. I've re-installed QODBC version 7.
I've included the relevant portions of the INSTALL.LOG file here:
*** Installation Started 11/30/2006 16:49 *** ... File Copy: C:\WINDOWS\system32\xerces-c_2_6.dll File Copy: C:\WINDOWS\system32\xerces-com.dll ... Self-Register: C:\WINDOWS\system32\xerces-com.dll ...
It makes sense that since I've renamed the .DLL files the install log would perform a copy operation instead of an overwrite, but it seems that the newly-installed .DLL files are the same as they were with the original installation. I can confirm with an MD5 checksum that the .BAD files are identical to the newly installed files:
C:\>fciv -md5 xerces-c_2_6.dll // // File Checksum Integrity Verifier version 2.05. // 5c779580ea42b6904b7bca79888fbe39 xerces-c_2_6.dll
C:\>fciv -md5 xerces-c_2_6.dll.bad // // File Checksum Integrity Verifier version 2.05. // 5c779580ea42b6904b7bca79888fbe39 xerces-c_2_6.dll.bad
C:\>fciv -md5 xerces-com.dll // // File Checksum Integrity Verifier version 2.05. // 760e11c9024153ee34036809e0cf4010 xerces-com.dll
C:\>fciv -md5 xerces-com.dll.bad // // File Checksum Integrity Verifier version 2.05. // 760e11c9024153ee34036809e0cf4010 xerces-com.dll.bad
Having replaced the files in C:\Windows\System32 and confirmed that they are, in fact, the same version as before, what other options exist for solving this problem? |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-12-01 09:29:03 |
Try keeping the connection open and run serveral queires instead of opening and closing the connection for each query. |
|
|
|
|
Posted : 2008-08-08 05:39:34 |
I'm having a similar problem. I don't understand what renaming a DLL or reinstalling has anything to do with this?
For an application that is running in a live environment, how am I explaining to my users what is happening?
Can you please provide more information - ... and when you say keep the connection open, isn't that bad practice, wouldn't performance suffer ?
What is the ** reason ** for this error is my most important question ..... |
|
|
|
|
Posted : 2008-08-08 06:06:44 |
Also I get this error IsAService: False Begin Session Failed. S0000 00000 [QODBC] QB Begin Session Failed. Error = 800706be, Unknown error. Begin Session errors can be caused when running ASP or other system service and not setting the "Advanced" button option of either "Use DCOM Servers" or "Remote Connector" |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2008-08-08 12:44:57 |
|
|
|