ilanazbel
-Interested User-
Posts: 24
Joined: Jun 19, 2006
|
Posted: Nov 3, 2008 09:02 AM
Msg. 1 of 6
Writing a JAVA app to use the iqfeed. When I call RegisterClientApp (as per the examples) I see the login window come up and it seems to successfully connect, but the function call to RegisterClientApp never returns. That is, the program just hangs waiting for that function to complete.
Any ideas?
|
DTN_Steve_S
-DTN Guru-
Posts: 2093
Joined: Nov 21, 2005
|
Posted: Nov 3, 2008 09:07 AM
Msg. 2 of 6
Is this a new app or is it one that previously worked and just stopped working recently? What version of IQFeed are you using? What version(s) of Java do you have installed? Do you get the same results with the java example apps included with the feed?
|
ilanazbel
-Interested User-
Posts: 24
Joined: Jun 19, 2006
|
Posted: Nov 3, 2008 02:50 PM
Msg. 3 of 6
new app. latest version: 4.4 java 1.6
This is the funny bit: when I compile and run the streamer.java I get the error. But when I run the streamer.class file I get from you it all works fine!!!!
|
ilanazbel
-Interested User-
Posts: 24
Joined: Jun 19, 2006
|
Posted: Nov 3, 2008 03:06 PM
Msg. 4 of 6
Another useful observation: As I said before, if I run the streamer.bat file from the installation directory it works fine.
Now, if I copy the streamer.bat file and the "Java Examples" directory to my source directory, then running the streamer.bat file results in the same error (the client terminal connects and authenticates, but never returns).
Ilan
|
ilanazbel
-Interested User-
Posts: 24
Joined: Jun 19, 2006
|
Posted: Nov 3, 2008 03:19 PM
Msg. 5 of 6
I *think* I have found the issue: after installation I copied all the DLLs into my source directory, when I remove all the DLL files everything works just fine!
|
DTN_Steve_S
-DTN Guru-
Posts: 2093
Joined: Nov 21, 2005
|
Posted: Nov 3, 2008 04:26 PM
Msg. 6 of 6
That certainly makes sense.
During startup, IQ32.dll and IQConnect.exe do come communications. As you probably already know, Windows will first look in the applications local directory before looking elsewhere for dependencies.
Since IQ32.dll is being called both by your app and by IQConnect, having 2 copies of IQ32.dll on your system can cause 2 separate copies of the dll loaded into memory and prevent the communications from occuring (and causing the lockup).
Of course, as you have already discovered, making sure there is only one copy of IQ32.dll on your system (and that it is in the IQFeed installation directory) is the resolution for this problem. It also ensures that your app should run without conflict of other apps on your system that use IQFeed (other 3rd party trading apps).
|