New post

Find

Question
· Nov 13, 2024

Starting Python External language in container generates error

I'm trying to get the python external language server started up in a container I am starting. The container is up and running but I cannot get the python language server to start.

This is the error that is coming back when trying to start the language server. I have tried creating a custom image with that package installed but it still does not work. Is there something specific that needs to be done to to get this working? (FYI, I have the dotnet version working but creating a custom image and installing the dotnet runtimes via a docker file)

Base iris container:containers.intersystems.com/intersystems/irishealth:2024.1 

 "On Debian/Ubuntu systems, you need to install the python3-venv package using the following command. apt install python3.10-venv"

Discussion (0)1
Log in or sign up to continue
Announcement
· Nov 13, 2024

Which implemented ideas would you like to know more about?

Hi, Community!

We've had several new ideas from the Ideas portal implemented and thought that you might be curious to learn more about them in our series of articles dedicated to Implemented ideas 😉

 

So help us choose the ideas you want us to write about in the poll below.

To help you decide, here is a list of recently implemented ideas:

1 Comment
Discussion (1)1
Log in or sign up to continue
Question
· Nov 13, 2024

Problems with url values with Studio / VScode

I'm using a server side fonts control, with the userAction method, i'm using the action 3 (to open a zenPage). passing some info on the URL.



on Studio, the new windows opens fine and blurs the url values:

But doing this with the vs code server side command, the url keeps the values:

i can't have the same behavior on the vsCode and Studio.

The method Link on CSP.Page  doesn't work.

1 Comment
Discussion (1)1
Log in or sign up to continue
Question
· Nov 13, 2024

AutoParallel feature in SQL not working

Hello all,

We have our system with AutoParallel enabled:

USER>w ##class(%SYSTEM.SQL.Util).GetOption("AutoParallel")
1

But whenever I try to run any sql the autoparallel does not work. For example, this simple query:

When I force it with %PARALLEL we can see it will effectively run in parallel:

The total records is bigger than the threshold. So, what can go wrong? Anyone in the same situation?

9 Comments
Discussion (9)3
Log in or sign up to continue
Article
· Nov 13, 2024 3m read

Pasarela de Lenguaje Externo de Java

Si os gusta Java y tenéis un ecosistema Java activo en el trabajo en el que necesitáis incorporar IRIS, no es un problema. La Pasarela de Lenguaje Externo de Java lo hará sin complicaciones, o casi. Esta pasarela sirve como puente entre Java y ObjectScript en IRIS. Podéis crear objetos de clases Java en IRIS y llamar a sus métodos. Solo necesitáis un archivo jar para hacerlo.

Connection diagram: proxy object <-> Gateway object <-> TCP/IP <-> External server <-> target object

Lo primero que debéis hacer es configurar el entorno. Para empezar a usar la Pasarela de Java, aseguraos de tener lo siguiente:

  1. InterSystems IRIS: Instalado y en funcionamiento.  
  2. Java Development Kit (JDK): Instalado y configurado

El segundo requisito puede parecer simple, ya que ya usáis Java en vuestro trabajo, pero no lo es. Gracias a esta cuestión, resultó que necesitáis usar la versión 11 de JDK como máximo. Esto significa que debéis cambiar la versión en vuestro IDE, lo cual puede causar bastantes complicaciones.

El siguiente paso es verificar que todo funcione e intentar instanciar el objeto de una clase del sistema de Java. Para hacer esto, tenéis que iniciar una conexión, crear un objeto proxy y llamar a un método. Suena como mucho código, pero en realidad es solo una línea:

write $system.external.getJavaGateway().new("java.util.Date").toString()

Esto imprimirá la fecha y hora actual en la pantalla.

Para ir más allá, podemos crear nuestra propia clase en Java:


public class Dish {
	private String name;
	private String description;
	private String category;
	private Float price;
	private String currency;
	private Integer calories;
	
	public void setName(String name) {
		this.name = name;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public void setCategory(String category) {
		this.category = category;
	}

	public void setPrice(Float price) {
		this.price = price;
	}

	public void setCurrency(String currency) {
		this.currency = currency;
	}

	public void setCalories(Integer calories) {
		this.calories = calories;
	}
	
	public String describe() {
		return "The dish "+this.name+" costs "+this.price.toString()+
				this.currency+" and contains "+this.calories+" calories!";
	}
}

y llamar a sus métodos desde ObjectScript:

 set javaGate = $SYSTEM.external.getJavaGateway()
 do javaGate.addToPath("D:\Temp\GatewayTest.jar")
 set dish = javaGate.new("Dish")
 do dish.setCalories(1000)
 do dish.setCategory("salad")
 do dish.setCurrency("GBP")
 do dish.setDescription("Very tasty greek salad")
 do dish.setName("Greek salad")
 do dish.setPrice(15.2)
 write dish.describe()

Como resultado, obtendremos una cadena con la descripción del plato creado:

The dish Greek salad costs 15.2GBP and contains 1000 calories!

En Español: El plato Ensalada Griega cuesta 15,2 GBP y contiene 1000 calorías.

De todos modos, aprendéis más sobre el uso de las Pasarelas en la Documentación y ¡buena suerte implementando este conocimiento en vuestros proyectos!

Discussion (0)1
Log in or sign up to continue