0

I've got a legacy project which runs some queries every minute to an Access database. All the queries work fine but after a certain amount of time (multiple weeks) and then all of a sudden Internal OLE Automation errors start appearing left and right. It first starts with one query giving an error and then slowly but surely all the queries will generate the error.

My gut feeling says this is a timeout issue but I don't have any clue where to start.

In advance: I know Access databases are horrible and that I shouldn't be using the JDBC-ODBC bridge in production environments but as I said this is a legacy project which we're still supporting.

Please do let me know if you need any additional information or code snippets.

Edited to add: The error is always java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Internal OLE Automation error For this specific server we use Java 6, Tomcat 6, Windows Server 2012 and the ms access driver native in Windows on version 6.03.9600.17415. They are all the 32 bit versions.

Rodin10
  • 327
  • 3
  • 15
  • 1
    What error message(s) is/are you getting? Is it the same error for all queries, once the errors start? What are the versions of Java, Windows, Access ODBC driver, Access engine? Are you able to change any of the code of this "legacy project"? Can you tell it to use a different JDBC driver classname and JDBC URL (so as to use a different Bridge, such as [this enterprise-grade, suitable-for-production-use offering from my employer](https://uda.openlinksw.com/jdbc-odbc-st/))? – TallTed Jan 11 '19 at 18:12
  • The error is always `java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Internal OLE Automation error` For this specific server we use Java 6, Tomcat 6, Windows Server 2012 and the ms access driver native in Windows on version 6.03.9600.17415 I can try to use a different brigde yes. – Rodin10 Jan 14 '19 at 08:33
  • 1
    Please edit the additional details into your question. Please also include which components (if any) are 64-bit, and which (if any) are 32-bit. It does not look like a timeout to me. Possibly all resources are not being properly freed after a connection (should be) closed -- and/or the connection isn't even being closed. Many tools do not work properly if kept "on" all the time, and just need a periodic restart. – TallTed Jan 14 '19 at 14:27
  • Edited it in. Thanks for your help thus far! – Rodin10 Jan 15 '19 at 09:06
  • 1
    Are you using MS Access as such with the file(s) targeted by the JDBC-to-ODBC connection? What version of Access? It might be worth upgrading this whole kit to use the [Access 2016 engine](https://www.microsoft.com/en-us/download/details.aspx?id=54920). (Obviously, this should be tested on a backup environment before production deployment...) – TallTed Jan 15 '19 at 17:11
  • Sorry I'm not following you. What do you mean with "Are you using MS Access as such with the file(s) targeted by the JDBC-to-ODBC connection"? I know it's an .mdb file so it's pre access 2007. What would the Access 2016 engine do exactly? – Rodin10 Jan 16 '19 at 12:44
  • 1
    My question was really whether there were *other* tools opening this file, such as the Microsoft Access Windows GUI application. Follow [the link](https://www.microsoft.com/en-us/download/details.aspx?id=54920). The installers there deliver the latest 32-bit and/or 64-bit ODBC Driver for Access data files (`*.mdb`, `*.accdb`), among other things. If this driver is the only thing opening the `*.mdb` file, you will certainly benefit by this update, and it may well resolve the "Internal OLE Automation error" errors you've been hitting. – TallTed Jan 16 '19 at 14:18

0 Answers0