cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
Open JMP Scatterplot 3D from a copy of JMP opened within a remote desktop session
ih
Super User (Alumni) ih
Super User (Alumni)

The Problem

Restart a windows 10 computer and log on via remote desktop.  The RDP session will not have hardware acceleration, thus it cannot use direct3d or opengl.   Open the Iris sample dataset and run the saved script to create a 3D scatterplot.  An error similar to 'LoadLibrary failed with error 126' is displayed and JMP crashes, without giving an option to restore files or submit a crash report. For sure this happens with nvidia graphics cards, it might happen with others.

 

Solution

Run a script to send the current session to the console, then open JMP, and run something invoking opengl (like a scatterplot 3d) and then log back in via remote desktop.  Now you can open any other Scatterplot in that session of JMP without an error.

 

I did this with two files, one is 'C:/bat/Close RDP and start JMP.bat' which sends the session to the console, opens JMP, and runs the second file detailed below.  This first bat file must be run as an administrator in order to send the session to the console:

 

 

 off

REM - ask the user which program(s) to start
set /p j16="Copies of JMP 16 to start: "
set /p j15="Copies of JMP 15 to start: "
set /p j14="Copies of JMP 14 to start: "
set /p j13="Copies of JMP 13 to start: "
set /p j12="Copies of JMP 12 to start: "

REM - Send all sessions to the console (anyone in front of the computer will see whatever is on the screen), all will error except the current session:
tscon 1 /dest:console
tscon 2 /dest:console
tscon 3 /dest:console
tscon 4 /dest:console
tscon 5 /dest:console
tscon 6 /dest:console
tscon 7 /dest:console
tscon 8 /dest:console
tscon 9 /dest:console
tscon 10 /dest:console

REM - Start each program
IF %j16% geq 1 ( FOR /L %%x IN (1,1,%j16%) DO ( start "" "C:\Program Files\SAS\JMPPRO\16\jmp.exe" "C:\bat\JMP start OpenGL.jsl" ) )
IF %j15% geq 1 ( FOR /L %%x IN (1,1,%j15%) DO ( start "" "C:\Program Files\SAS\JMPPRO\15\jmp.exe" "C:\bat\JMP start OpenGL.jsl" ) )
IF %j14% geq 1 ( FOR /L %%x IN (1,1,%j14%) DO ( start "" "C:\Program Files\SAS\JMPPRO\14\jmp.exe" "C:\bat\JMP start OpenGL.jsl" ) )
IF %j13% geq 1 ( FOR /L %%x IN (1,1,%j13%) DO ( start "" "C:\Program Files\SAS\JMPPRO\13\jmp.exe" "C:\bat\JMP start OpenGL.jsl" ) )
IF %j12% geq 1 ( FOR /L %%x IN (1,1,%j12%) DO ( start "" "C:\Program Files\SAS\JMPPRO\12\jmp.exe" "C:\bat\JMP start OpenGL.jsl" ) )

REM - lock the workstation in case you don't log back in right away (not 100% sure this works)
%windir%\System32\rundll32.exe user32.dll, LockWorkStation

 

 

And the second is 'C:/bat/JMP start openGL.jsl', which opens the scatterplot 3d:

 

names default to here(1);

dt = Open("$Sample_Data/iris.jmp");

dt << Scatterplot 3D(
	Y( :Sepal length, :Sepal width, :Petal length, :Petal width ),
	Frame3D(
		Set Rotation( -37.7763571468042, -20.0181349932962, 0.755666043084993 )
	)
);

 

Recommended Articles