OI 10 and OI 9 java (recreated) (OEngine Server)
At 09 SEP 2019 06:29:00AM cmeyer wrote:
I believe since installing a copy of OI10.07 the socket server is not starting correctly using OI9.4.
Is it possible to have the 64 bit socket server installed on the same laptop as the 9.4 socket server.
Do I have to uninstall the 64 bit version?
I get the following message when executing the OeSocket Sever.bat from the OI9.4:
C:\Revsoft\Oinsight2015>rem cmd
C:\Revsoft\Oinsight2015>CD C:\REVSOFT\OINSIGHT2018
C:\Revsoft\Oinsight2018>rem pause
C:\Revsoft\Oinsight2018>java -jar oesocketserver.jar -d 3
Version: 3.0.0.411 - Licensed for use to CN=Revelation Software
Started at 2019-09-09 20:19:56
2019-09-09 20:19:56:748 - EngineServer started on port 8088
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Revsoft\Oinsight2018\revjapi.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)at java.lang.ClassLoader.loadLibrary0(Unknown Source)at java.lang.ClassLoader.loadLibrary(Unknown Source)at java.lang.Runtime.loadLibrary0(Unknown Source)at java.lang.System.loadLibrary(Unknown Source)at com.revelation.oesocketserver.OEngine.<clinit>(OEngine.java:1642)at com.revelation.oesocketserver.SocketServer.serverLoop(SocketServer.java:262)at com.revelation.oesocketserver.SocketServer.<init>(SocketServer.java:88)at com.revelation.oesocketserver.Main.main(Main.java:17)Any advice would be grateful.
Chris
At 09 SEP 2019 08:14AM bshumsky wrote:
Hi, Chris. Yes, OI 10 and OI 9.4 can both have their engine servers running on the same machine. BUT (and you knew there was a but…)
OI 10, as a 64bit product, requires 64bit java; OI 9.4 requires 32bit java. Whenever you install a copy of Java, it normally updates the system PATH variable to reflect its location (so that just saying "java …" will find the proper binaries). If you have both 32 and 64 bit versions installed on your system (as it seems you do), then the last java installed would have the path variable updated to point to _it_. And that's why the java command works ok for OI 10 (because "java -jar …" finds the 64bit binaries for java.exe), but it fails for OI 9.4 (because the "java -jar …" finds the 64bit binaries for the java.exe, but we WANT the 32bit version in this case).
So, your options include:
- specifying the full path to both javas whenever you run them (ie, putting the full path before the "java -jar" for both OI 10 and OI 9.4 invocations); OR
- specifying the full path for the 9.4 java invocations, and leaving the path variable as it now is (pointing to the 64bit java exe); OR
- updating the PATH variable so that it points to the 32bit folder, and then specifying the full path for the 10.0 java invocations
Which option you take depends on which version of OI you're going to be running more often, I think. And if you're normally running the java from the DOS command prompt (for debugging/testing purposes), you could create a batch file that includes the path to the java binary folder so that you don't have to type it every time.
Note that if you want to run the engine server as a SERVICE, and the java binaries aren't pointing to the right one for the version you need, you will have to also update the appropriate configuration file (I can tell you what to fix, if that's something you need to do).
Hope that helps clear things up…
- Bryan Shumsky