Publicado el :

Actualización de contextos de servidor para bibliotecas SAS

Este código también está disponible en: Deutsch English Français
Attention : Este código requiere privilegios de administrador.
Este script se conecta a un servidor de metadatos SAS© 9. Primero, identifica la URI de un contexto de servidor de aplicaciones específico (aquí, 'SASSTP'). Luego, busca todas las bibliotecas SAS© que coinciden con una consulta de metadatos. Para cada biblioteca encontrada, añade el contexto de servidor a su lista de 'DeployedComponents'. El script incluye verificaciones para asegurar que el contexto y las bibliotecas existan antes de proceder con la actualización. Importante: este script utiliza las funciones de metadatos de SAS© 9 y no es compatible con SAS© Viya 4. La consulta para encontrar las bibliotecas (`libobj`) parece contener un error de sintaxis (` @code_sas©_json/RFValid.json contains '.'`) y probablemente debería apuntar a un atributo como ` @Name`.
Análisis de datos

Type : MIXTE


El script no utiliza datos en el sentido tradicional (tablas SAS). Lee y modifica objetos (metadatos) directamente en el servidor de metadatos SAS. Los 'datos' fuente son las definiciones de los contextos de servidor y las bibliotecas SAS almacenadas en los metadatos.

1 Bloque de código
OPTIONS
Explicación :
Este bloque configura los parámetros de conexión al servidor de metadatos SAS 9 (host, puerto, credenciales, repositorio). Estas opciones son necesarias para que las funciones de metadatos puedan interactuar con el servidor. Este tipo de conexión está obsoleto en SAS Viya 4.
¡Copiado!
1options
2 metaserver="meta.demo.sas.com"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="password"
6 metarepository=Foundation
7 metaprotocol=Bridge;
2 Bloque de código
DATA STEP
Explicación :
Este DATA STEP _NULL_ (no crea una tabla) es el corazón del programa. Utiliza funciones de metadatos de SAS 9. Primero, usa `metadata_resolve` para encontrar la URI de un contexto de servidor de aplicaciones ('SASSTP'). Si se encuentra el contexto, ejecuta una segunda consulta para encontrar bibliotecas SAS. Para cada biblioteca encontrada, usa `metadata_setassn` para asociarle el contexto del servidor. Se emiten mensajes de error y el programa se detiene si no se encuentran el contexto o las bibliotecas.
¡Copiado!
1DATA _null_;
2 
3/* Initialize variables. */
4 
5 LENGTH type id app_uri lib_uri $ 50;
6 call missing(of _character_);
7 
8/* Define query for the Application Server Context */
9/* to add to the libraries and search for it. */
10 
11 appobj="omsobj:ServerContext? @Name='SASSTP'";
12 app_count=metadata_resolve(appobj,type,id);
13 
14/* If no context matches this query, stop the program with an error. */
15 
16 IF app_count <= 0 THEN DO;
17 put "ERROR: No application server context found matching query " appobj;
18 stop;
19 END;
20 ELSE DO;
21 
22/* Extract the URI of the context if it exists. */
23 
24 rc=metadata_getnobj(appobj,1,app_uri);
25 
26/* Define the query for the libraries to be updated and search for them. */
27 
28 libobj="omsobj:SASLibrary? @code_sas_json/RFValid.json contains '.'";
29 lib_count=metadata_resolve(libobj,type,id);
30 
31/* If no libraries match the query, stop the program with an error. */
32 IF lib_count <= 0 THEN DO;
33 put "ERROR: No libraries found matching query " libobj;
34 stop;
35 END;
36 
37/* If libraries are found, for each one append */
38/* the context to its list of associated contexts. */
39 
40 ELSE DO n=1 to lib_count;
41 rc=metadata_getnobj(libobj,1,lib_uri);
42 rc=metadata_setassn(lib_uri,"DeployedComponents","Append",app_uri);
43 END;
44 END;
45RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Copyright © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0


Banner
Consejo del Experto
Expert
Michael
Responsable de l'infrastructure Viya.
« En la administración de SAS 9.4, la relación entre una biblioteca (SASLibrary) y su servidor de aplicaciones (como SASApp o SASSTP) se gestiona mediante la asociación de metadatos DeployedComponents. Este script es una herramienta administrativa potente para asignar bibliotecas de forma masiva, algo esencial durante migraciones de servidor o al escalar entornos con nuevos contextos de ejecución. »