ODBC and Xojo from RS2012


I am currently moving one of my applications from RS2012 to the current Xojo. (Mac)

I have run into an issue with performance and ODBC-databases. In this case Oracle using Actualtechs drivers.

The communication with the database is handled by a thread - this works very well in RS2012 but in Xojo it works in slowmotion, sloooooooow.

Before I try to isolate the problem I just want to check with the community if anyone seen this problem already.

I took a sample using the Activity Control and this is what is going on:

  •                 2697 MyODBC.SendSQL%s%o<MyODBC>ss  (in Infomaker AdSolutions Services.debug) + 544  [0x6a999f]
+                       2697 Database.SQLSelect%o<RecordSet>%o<Database>s  (in Infomaker AdSolutions Services.debug) + 69  [0x54333]
+                         2697 databaseSQLSelect  (in XojoFramework) + 64  [0x1609991]
+                           2697 ???  (in ODBCPlugin.xojo_plugin_0.dylib)  load address 0xca7f000 + 0xa626  [0xca89626]
+                             2697 ???  (in ODBCPlugin.xojo_plugin_0.dylib)  load address 0xca7f000 + 0x83c9  [0xca873c9]
+                               2697 ???  (in XojoFramework)  load address 0x152e000 + 0x1b66f5  [0x16e46f5]
+                                 2697 pthread_mutex_lock  (in libsystem_pthread.dylib) + 16  [0x912a10bf]
+                                   2697 _pthread_mutex_lock  (in libsystem_pthread.dylib) + 520  [0x912a12cc]
+                                     2697 __psynch_mutexwait  (in libsystem_kernel.dylib) + 10  [0x9444754e]
2697 Thread_2482432

It seems as if the communication works perfectly well when not done from a thread.



I think it has to do with the 32bit limitation in some mysterious manner.

As long as you are not using prepared statements, why not just move it over to the normal Oracle client or InstantClient? The 32bit versions of InstantClient work well with Xojo, excepting only they don’t seem to like prepared statements.

Or you can try the Openlinksoftware ODBC drivers. They work reasonably well (at the 6.x level) for DB2.

Had such good vacation that I forgot about this problem.

Thanks for the input.
I’ll see how I solve the problem.