Application freezing on Windows 7 - WeOnlyDo Discussion board

Application freezing on Windows 7 (wodSSH / wodSSH.NET)

by coollupo, Thursday, July 23, 2009, 15:42 (5603 days ago)

I am using wodTunnel.ocx (version 1.6.1.63) together with the MySqlSSHDatabase component (part of the Direct Access Components for MySQL) from MicroOLAP (version 2.7.2) and compile my application under Delphi 2007.

Starting the application is no problem. But on two of three workstations with the lates Windows 7 RC (build 7100) the application freezes immideatly when the connect to a database on the internet-server should by done via the ssh-tunnel.

Yes, on some machines it runs without a problem, but most of them are simply freezing. It also doesn't matter if it is a 32 oder 64-bit version of Win7RC, the average is two of three are freezing.

I used depends.exe find out, if a component for wodTunnel.ocx is missing under Windows 7. But only one interface is missing in ieframe.dll and shlwapi.dll - and the file-versions of these files on the computers that works are NOT different to the ones that doesn't work.

Running the application with a local database never freezes the computer.


Can you help me?

Dieter

Re: Application freezing on Windows 7

by woddrazen, Thursday, July 23, 2009, 16:20 (5603 days ago) @ coollupo

Hi Dieter,


We receive similar reports in paste when using DB and wodSSHTunnel.

Problem happens because wodSSHTunnel and your DB connection runs in the same thread. Since your DB blocks the thread while trying to connect, wodSSHTunnel cannot process windows messages (and socket-related messages) and everything hangs.

You could solve this problem by:

1. Trying to use wodSSHTunnel.EXE instead wodSSHTunnel.ocx
2. Setting Threading = True
3. Moving any of these 2 components in separate thread (DB if possible)
4. Setting DB to work in non-blocking (async) mode

You could try any of above.

Let me know how it goes.


Regards,
Drazen

Re: Application freezing on Windows 7

by coollupo, Thursday, July 23, 2009, 17:52 (5603 days ago) @ woddrazen

Hello Drazen,

then you for your fast reply.

1. Trying to use wodSSHTunnel.EXE instead wodSSHTunnel.ocx

The component I use, is written by microOLAP, and they used the wodTunnel.ocx to generate a type library (wodSSHTunnelLib_TLB) (this is done via the component registration tool of Delphi).
So this advice shurely leads to a complete redesign of the microOLAP code - right?


2. Setting Threading = True

As I searched through the microOLAP component (TMySSHDatabase), I found out, that they already set the property TwodTunnel.Threads to TRUE.


3. Moving any of these 2 components in separate thread (DB if possible)
4. Setting DB to work in non-blocking (async) mode

I do not know, what I should have to do, to put one of the last two advices into practice.


Do you have any other microOLAP - component user, that had the same problem?

Regards,
Dieter

Re: Application freezing on Windows 7

by woddrazen, Friday, July 24, 2009, 00:07 (5602 days ago) @ coollupo

Dieter,


Using wodSSHTunnel.exe instead wodSSHTunnel.ocx actually will not require changing wodSSHTunnel code. Code should be same only maybe you will need to change implementation of wodSSHTunnel Events and other in your programming environment.

When wodSSHTunnel and DB code is in separate threads they should work without interfering with each other.

In blocking mode when you send some command to server code is stop doing anything else until the server responds. In non-blocking mode when you send command you just continue doing whatever you need to do. Sooner or later the server will send you a response and an event gets triggered notifying you about the command you have received.


Drazen