Closed tedconway closed 6 months ago
@tedconway , trying to understand exactly what is being asked for. Are you asking for supporting capturing ODS HTML5 listing output when
And am I correct in saying that the SAS Grid server itself is defined in SAS Metadata Server?
Hi @tedconway, it was nice chatting with you at SAS Innovate! Thanks for entering this request. I looked more into your question about whether the SAS Extension for VS Code supports Grid or not. In fact, today I setup a test Grid deployment and tried it out myself. This also helped me recall how EG integrates with Grid, which also largely applies to the VS Code extension (when using the IOM connection type in VS Code, since EG also uses IOM). So, at this point I'm pretty confident the answer is... yes and no.
When workspace servers in your environment are configured as Grid launched/balanced, then yes, it (your Grid environment) should work fine with the SAS Extension for VS Code. In fact, it should work identical to a regular, non-Grid workspace session, since the client has no clue that the workspace session was load-balanced by Grid. The client just knows it got back a workspace session from the object spawner to use. It doesn't realize the object spawner consulted the Grid manager to pick a good host. Here is documentation on converting your workspace servers to use Grid balancing if something you want to consider: https://go.documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/gridref/n1q6n62da5w2j1n0zl407vg9pg6a.htm#n1xrsxzyijk7c9n1svnew5pphtw2
When your workspace servers are configured in the more "traditional" (non-Grid launched/balanced) Grid configuration, it will not work with the SAS Extension for VS Code. In this scenario, there are two separate SAS sessions... one on your workspace server host and one on your Grid node. Code is actually submitted on the Grid node, thus log, ODS results, and other state has to be funneled back to the workspace session for the client to discover it. EG added a lot of logic to handle syncing in this more complex scenario. We do not currently have plans to add similar support for traditional Grid to the SAS Extension for VS Code, but will leave this open for future consideration. Our recommendation is to configure your Grid environment to use Grid-launched/balanced workspace servers instead, which is supported, and simplifies things overall.
I'm checking with a couple other colleagues to confirm, but I'm pretty confident in my answers above at this point. I'll report back if any changes.
@clangsmith , once your research is finalized we should add your findings to the doc. Would be great to include a diagram that visualizes the difference between the two main scenarios you list.
I met with a colleague and Grid expert this morning that confirmed the SAS Extension for VS Code fully supports V9 Grid. (Even my comment above about it not supporting a "traditional" Grid environment was incorrect. See details below.)
I demonstrated (with the environment configured for Grid-launched/balanced workspace servers as recommended) how when I attempt to connect directly to any of the workspace/grid host nodes (port 8591 by default) using the extension, the workspace session I get back may have actually been spawned on one of the other node hosts. I confirmed by submitting the code, "%put &syshostname &sysuserid &sysvlong;", which prints the actual host the session/code is running on. I also confirmed by looking at the object spawner logs for each node, which clearly show the creation of grid jobs and peer being redirected to a different host:
2096 2024-05-09T10:02:38,847 INFO [00522510] :smcguest - Created grid job 147 using credentials smcguest (child id 1). 2097 2024-05-09T10:02:41,099 INFO [00522529] :cfgsas1 - New out call client connection (34988) for launched server (child 1). Peer IP address and port ar e [::ffff:10.21.xx.xx]:44698. 2098 2024-05-09T10:02:41,102 INFO [00522538] :cfgsas1 - Launched process 147 (child id 1) is now running as process 29602. 2099 2024-05-09T10:02:41,104 INFO [00522510] :smcguest - Redirecting peer [::ffff:10.40.xx.xxx]:16566 to host rdcesx02xxx.race.sas.com, port 8811.
And even though the "traditional" Grid configuration is no longer recommended (Grid-launched workspace servers is now the strong recommendation), it too works with the SAS Extension for VS Code. Granted, in this scenario, user is responsible for running the code in a specific way to leverage Grid. Specifically, for calling the grdsvc_enable function, signing on to grid, then rsubmitting to grid. For example:
%put &syshostname &sysuserid &sysvlong;'
%let grid_rc = %sysfunc(grdsvc_enable(_ALL_, server='SASApp'));
signon gridconn;
rsubmit gridconn;
%put Grid Connect using: &syshostname;
*proc options option=work; run;
endrsubmit;
signoff;
When you run the code above you'll see that the first host printed is different from the second host printed, confirming it was routed to a Grid node. (Enterprise Guide handled this under the covers automatically, but it was still difficult to sync the two separate sessions, which is why when Grid-launched/balanced workspace support was added, it greatly simplified things and became the recommendation.)
So, at this point, I can confidently say that the SAS Extension for VS Code does support V9 Grid (when using the "SAS 9.4 (remote - IOM)" connection type). Thus, I will close this ticket. If you are having problems getting it to work with your V9 Grid environment, please open another Issue with details and we'll help you debug.
Is your feature request related to a problem? Please describe. As a SAS GRID user, I cannot use the VS Code extension for IOM SAS 9.4 connections. See See https://github.com/sassoftware/vscode-sas-extension/issues/898
From FAQs: SAS Grid does not support IOM or SSH based SAS session creation.
Describe the solution you'd like Support for SAS GRID.
Describe alternatives you've considered None seems to be available.
Additional context Extension looks great - hope a SAS GRID solution/workaround can be found soon!
Environment SAS GRID 9.4M6