You are viewing limited content. For full access, please sign in.

Question

Question

Forms 10.2 32 bit ODBC connection

asked on March 31, 2017 Show version history

We have a Pervasive SQL ODBC connection in workflow that we only got working by installing the 32 bit version of Workflow. We would like to connect to that with forms, but when we try we get this error in the LFForms Event Log

 

An error occurred while testing the data source connection. See the Windows Event Log for details. [LFF2400-DataSourceConnectionError]

Details:
URL: /Forms/api/datasource/test
Error: DataSourceConnectionError
Date: 3/31/2017 8:33:27 AM (Mountain Standard Time)
HTTP Status Code: 400
Business Process ID: 0
User: AGENT
IP: 192.168.7.112
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Business Process Name: 

Stack Trace:
Caught exception: Laserfiche.Forms.CommonUtils.Exceptions.LFFormsException
Message: An error occurred while testing the data source connection. See the Windows Event Log for details. [LFF2400-DataSourceConnectionError]
   at E_Forms.Controllers.AuthorizationController.TestDatasource(Int32 dbType, String server, String db, String user, String password, Int32 dbId)
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult)

Inner exception: System.Data.Odbc.OdbcException
Message: ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
   at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
   at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
   at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.Odbc.OdbcConnection.Open()
   at Laserfiche.Forms.EntityModels.Data.ODBCDBConnector..ctor(String dataSourceName, String uid, String pwd, String driversWithBrackets, String driversWithDoubleQuotes, String driversWithBackTicksQuotes)
   at Laserfiche.Forms.CommonUtils.OdbcConnector..ctor(DataBaseType dbType, String server, String database, String uid, String pwd)
   at Laserfiche.Forms.CommonUtils.OdbcConnector.GetODBCConnection(WindowsImpersonationContext& ctx, IntPtr& tokenPtr, DataBaseType databaseType, String server, String db, String user, String pw)
   at E_Forms.Models.ViewModels.DataSource.TestDatasource(Int32 dbId, Int32 dbType, String server, String db, String user, String password)
   at E_Forms.Controllers.AuthorizationController.TestDatasource(Int32 dbType, String server, String db, String user, String password, Int32 dbId)

 

We also tried installing the 64 bit driver, but we get another error there.

 

An error occurred while testing the data source connection. See the Windows Event Log for details. [LFF2400-DataSourceConnectionError]

Details:
URL: /Forms/api/datasource/test
Error: DataSourceConnectionError
Date: 3/31/2017 8:53:37 AM (Mountain Standard Time)
HTTP Status Code: 400
Business Process ID: 0
User: AGENT
IP: 192.168.7.112
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Business Process Name: 

Stack Trace:
Caught exception: Laserfiche.Forms.CommonUtils.Exceptions.LFFormsException
Message: An error occurred while testing the data source connection. See the Windows Event Log for details. [LFF2400-DataSourceConnectionError]
   at E_Forms.Controllers.AuthorizationController.TestDatasource(Int32 dbType, String server, String db, String user, String password, Int32 dbId)
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult)

Inner exception: System.Data.Odbc.OdbcException
Message: ERROR [IM003] Specified driver could not be loaded due to system error  1114: A dynamic link library (DLL) initialization routine failed. (Pervasive ODBC Interface, C:\Program Files\Pervasive Software\PSQL\bin\odbcci64.dll).
   at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
   at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
   at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.Odbc.OdbcConnection.Open()
   at Laserfiche.Forms.EntityModels.Data.ODBCDBConnector..ctor(String dataSourceName, String uid, String pwd, String driversWithBrackets, String driversWithDoubleQuotes, String driversWithBackTicksQuotes)
   at Laserfiche.Forms.CommonUtils.OdbcConnector..ctor(DataBaseType dbType, String server, String database, String uid, String pwd)
   at Laserfiche.Forms.CommonUtils.OdbcConnector.GetODBCConnection(WindowsImpersonationContext& ctx, IntPtr& tokenPtr, DataBaseType databaseType, String server, String db, String user, String pw)
   at E_Forms.Models.ViewModels.DataSource.TestDatasource(Int32 dbId, Int32 dbType, String server, String db, String user, String password)
   at E_Forms.Controllers.AuthorizationController.TestDatasource(Int32 dbType, String server, String db, String user, String password, Int32 dbId)

 

Is there any way to connect Forms with a 32 bit ODBC driver?

0 0

Replies

replied on March 31, 2017

Can you create a Pervasive data source in Windows with the x64 driver? The error message indicate a driver issue.

0 0
replied on April 4, 2017

No, our data source only work with the 32 bit ODBC driver.

0 0
replied on April 4, 2017

Hi Miruna,

Can you please tell us if Forms 10.2 will work with a 32-bit ODBC driver?

Thanks,

0 0
replied on April 4, 2017

I apologize, Rui's answer below is incorrect. Forms is 64-bit on 64-bit machines, so it can only access 64-bit data sources. You would need a 32-bit version of Forms to access a 32-bit data source. We have not tested 32-bit Forms on x64 machines.

0 0
replied on June 9, 2017

When we try and install 32-bit Forms on our x64 server we get the error

Error 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.

 

Any ideas?

2 0
replied on June 11, 2017

Hi Jen, I saw the issue was resolved in the support case.

Just a note, in Forms 10.2.1 there is new option for install 32 bit Forms when install from Setup.exe, so there is no need to install with the msi file now.

1 0
replied on June 14, 2017

Hi Rui,

Yes we did exactly that - installed 32 bit Forms and are now able to connect.  Thanks for the udpate.

 

 

1 0
replied on March 31, 2017
0 0
replied on April 3, 2017

Hi Rui,

I work with Dan.  We have set it up as a 32-bit ODBC Data source but when we do, we are not able to access the data source in Forms.   Is it possible to use a 32-bit ODBC source with Forms 10.2?

0 0
replied on April 4, 2017

Hi Rui,

 

As Jen said, we did try to set that up. All of the tests work fine within the ODBC administrator, but when we try and use it with Forms it doesn't work. This is the error we see in the event log.

 

An error occurred while testing the data source connection. See the Windows Event Log for details. [LFF2400-DataSourceConnectionError]

Details:
URL: /Forms/api/datasource/test
Error: DataSourceConnectionError
Date: 3/31/2017 8:33:27 AM (Mountain Standard Time)
HTTP Status Code: 400
Business Process ID: 0
User: AGENT
IP: 192.168.7.112
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Business Process Name: 

Stack Trace:
Caught exception: Laserfiche.Forms.CommonUtils.Exceptions.LFFormsException
Message: An error occurred while testing the data source connection. See the Windows Event Log for details. [LFF2400-DataSourceConnectionError]
   at E_Forms.Controllers.AuthorizationController.TestDatasource(Int32 dbType, String server, String db, String user, String password, Int32 dbId)
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult)

Inner exception: System.Data.Odbc.OdbcException
Message: ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
   at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
   at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
   at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.Odbc.OdbcConnection.Open()
   at Laserfiche.Forms.EntityModels.Data.ODBCDBConnector..ctor(String dataSourceName, String uid, String pwd, String driversWithBrackets, String driversWithDoubleQuotes, String driversWithBackTicksQuotes)
   at Laserfiche.Forms.CommonUtils.OdbcConnector..ctor(DataBaseType dbType, String server, String database, String uid, String pwd)
   at Laserfiche.Forms.CommonUtils.OdbcConnector.GetODBCConnection(WindowsImpersonationContext& ctx, IntPtr& tokenPtr, DataBaseType databaseType, String server, String db, String user, String pw)
   at E_Forms.Models.ViewModels.DataSource.TestDatasource(Int32 dbId, Int32 dbType, String server, String db, String user, String password)
   at E_Forms.Controllers.AuthorizationController.TestDatasource(Int32 dbType, String server, String db, String user, String password, Int32 dbId)

0 0
replied on April 4, 2017

Sorry I wasn't aware 32-bit ODBC could only be accessed by 32-bit applications.

By default the Forms installed on 64-bit machine is 64-bit, you could manually run lfforms_en.msi to install a 32-bit version (make sure all prerequisites have been installed, and place license file to C:\Program Files (x86)\Laserfiche\Laserfiche Forms\Forms\bin)

After that, check the "Enable 32-bit applications" is true for FormsAppPool. Then 32-bit ODBC should work (confirmed it working with Microsoft Text Driver since I don't have a Pervasive SQL)

Sorry for the inconvenience.

4 0
replied on March 25, 2019

Thank you Rui Deng for helpful information 

0 0
You are not allowed to follow up in this post.

Sign in to reply to this post.