A Bit of Troubleshooting for VDS and the end of the current SCN era
Crusher: So much for the Enterprise E.
Picard: We barely knew her.
Crusher: You think they’ll build another one?
Picard: Plenty of letters left in the alphabet.
— Star Trek: First Contact
I wanted to get one more blog in before the current Jive oriented SCN platform is retired. I had planned on it being a VDS related blog on how to virtualize some IDM related data as I had previously promised from Transforming SAP IDM Data. However, when I went to Load VDS, I was presented with an error message that simply said: “Windows error 2 occurred while loading the Java VM” Not very helpful. After some searching however, I was able to find some answers… to a point.
It seems this error is present when updating to the most recent versions of Oracle Java. I have no idea if this occurs when using SAP Java, but should you receive a similar message, I assume the troubleshooting steps would be the same.
Basically, you need to know two important things…
- Where is Java installed?
- Where is VDS installed?
After that, it’s fairly straightforward. You can check for where Java is installed through Control Panel / Java (again, stressing Oracle Java at this point) You can then go in to the Java tab and take a look at what you find. Copy this value, it’s a good place to start.
Now, locate where VDS is installed, usually, this will be something along the lines of \usr\sap\IDM\Virtual Directory Server. You’ll then be looking for the file Virtual Directory Server.lax (lax files associated with Java applications, and if you are so inclined you can learn a small bit more by reading — LAX File Extension – Open .LAX File (AnetHelpTool JavaHelp viewer file).
The file can easily be opened in your favorite text editor, but as always, make sure you make a backup first! 🙂 Locate the LAX.ML.CURRENT.VM line. It may be blank as you see here or populated with some other value.
Compare this value with what you found from the Java Control Panel. Update the file with this value. As Java will be processing the file make sure that you are double backslashing the path (e.g. F:\\usr\\sap\\idm\\virtual directory server)
Now I mentioned earlier that this was all helpful to a point. Here’s the point… My Java Control Panel pointed to the 64 bit Java and when I pasted in the URL and made my adjustments VDS still would not load. It did work fine however when I pointed to the 32 bit version of Java.
So there you go. If your environment has a late version of Java and VDS throws the Windows Error 2, this is how you fix it.
By the time the community has migrated to the 1DX platform and I can post new IDM blogs, I’ll post the blog I originally wanted to write. 🙂
See everyone in the new SCN!
II just noticed. Looks like this is also the 200th IDM blog! 🙂
Hello Matt,
Â
Thanks for this post because, as a matter of fact, it took me 2 full hours to install a VDS on a W2012R2 server  and your hint regarding the missing parameter in the lax file help me a lot.
Â
 To resume my issue because it's under-documented everywhere I sought answers.
Components :
IDM 8.0.4 with RT, VDS...
W2012 R2 & MSSQL 2012
jvm 6 SP101 AND jvm 6 SP70 (this is clearly the most important thing to have both)
Â
 First thing to know :
 - RT and VDS installer are not compatible with W2012 (even 2008 might cause trouble). You have first to activate the compatibility to Windows7 for both of them (using right clic on Windows explorer).
 - Then, as both do not support jvm 6 above SP72, you have to have the SPS collection65 (SP70) available (see OSS note 2047906)
 - Both must be launched on a cmd/PS shell as administrator
 - Both can only run with LAX_VM [path to jvm6 SP70] parameter
 - The VDS installer do not answer to common (and documented in the mastereguide) parameters
Â
The trick with VDS installer is to run it without parameters, just to let it create in the "usr/sap/[SID]/tmp/Iyyyyyyyyy/Windows/install.lax" file (where yyyyy are numbers)
Copy the install.lax file to the installer directory ([path]\NoVM)
Edit the file and the parameter "lax.nl.current.vm = " to point on the "[jvm6 SP70 path]\java.exe"
Rename the file as install.properties
Rerun the install.exe in the shell with LAX_VM option and you're done for those components
Â
 Perhaps this method can also be used for the RT install issue. For me, the LAX_VM parameter solved it all.
Edit : corrected typos
Hi Benoit,
In general I've never had issues installing IDM or VDS on 2008 (it has been my base image for years when I set up new environments for test / prototype. Â There are known issues with IDM on 2012. I don't remember anything for VDS.
As I recall the issue is usually caused by another Java based application install.
Glad it helped, though!
Regards,
Matt
Hi Matt,
Â
I can assure you that on 2012, installing the mandatory RT Engine is a mess.
You can check the following Notes : 2402501, 2237907, 2047906 and 1888623
From all that I determine that RT and VDS installer cannot run with a jvm6 SP above 72. So, the only SPS Collection available is the 65 (SP70) and the only viable parameter is LAX_VM for both.
Worst, it’s only useful to launch the .exe… Afterwards, it runs smoothly on a greater SP.
Also, even if VDS is not mandatory on IDM8, the SAP install guide is utterly wrong on the parameters for the installation.
It costs me many hours to get throught this, that’s why I share this as it is related to your post.
Â
 Regards,
Benoît
Hi again Matt,
Â
So… I updated my IDM from 8.0.4 to SPS5 (for Password_Hook) and I can tell you that installing RT Engine  didn’t improve at all on W2012.
You still have to activate the compatibility for w7 and use the jvm6 under SP72 on LAX_VM to get the install.exe work.
Afterwards, It’s pretty straightforward and you can use the sapjvm8 as clearly stated in the release notes.
Btw, I’m not able to import the forms.default package (mandatory to use PH). Ticket opened to SAP development team…
Thanks for the update.  Not sure what's going on with 2012, and I haven't had time to play with 2016 yet.  Who knows what adventures that will bring 🙂
Really weird things btw.
I managed to import forms.default by manually creating the MX_PASSWORD_HOOK attribute, but, during import, it didn't get set up. So still more manual steps to do.
Benoît