查找

Comentarios
· 11 nov, 2024

Which is the "right" installation directory for IRIS on Linux?

The IRIS Installation Guide for Linux, Installation Directory section, says "Do not choose the /home directory, any of its subdirectories, or the /usr/local/etc/irissys directory." but there are no suggestions or any default.

What are your opinions on this? For example, I see that IRIS in a Docker container is installed in /usr/irissys. I'm wondering why that directory was chosen.

The official Linux filesystem docs say:

  • /usr is the second major section of the filesystem. /usr is shareable, read-only data. That means that /usr should be shareable between various FHS-compliant hosts and must not be written to. Any information that is host-specific or varies with time is stored elsewhere. Large software packages must not use a direct subdirectory under the /usr hierarchy.
  • The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated. It may be used for programs and data that are shareable amongst a group of hosts, but not found in /usr.
  • /opt is reserved for the installation of add-on application software packages. A package to be installed in /opt must locate its static files in a separate /opt/<package> or /opt/<provider> directory tree, where <package> is a name that describes the software package and <provider> is the provider's LANANA registered name.

From that, it seems like /usr/local/InterSystems/<instance> or /opt/InterSystems/<instance> would be "right." To me that seems better than /usr/irissys, /usr/irissys1, /usr/irissys2, etc.

4 comentarios
Comentarios (4)1
Inicie sesión o regístrese para continuar
Anuncio
· 11 nov, 2024

Recapitulação do InterSystems Developer Community, Outubro 2024

Olá e bem-vindo ao Recapitulação da comunidade de desenvolvedores Outubro 2024.
Estatísticas gerais
28 novas postages publicadas em Outubro:
 22 novos artigos
 6 novos anúncios
3 novos membros ingressaram em Outubro
1,199 postagens publicadas ao todo
595 membros ingressaram ao todo
Principais publicações
Principais autores do mês
Artigos
#InterSystems IRIS
eBPF: Rastreando eventos de Kernel para IRIS Workloads
Por Heloisa Paiva
eBPF: Parca - Criação de perfil contínua para IRIS Workloads
Por Heloisa Paiva
Desenvolvendo Intergrações com o InterSystems IRIS - SOAP Inbound Adapter
Por Julio Esquerdo
Script de Freeze em servidores espelhados
Por Heloisa Paiva
Desenvolvendo Integrações com o InterSystems IRIS - File Inbound Adapter
Por Julio Esquerdo
eBPF: Segurança Tetragon para cargas de trabalho IRIS
Por Heloisa Paiva
Funções do lado esquerdo em ObjectScript
Por Heloisa Paiva
Desenvolvendo Integrações com o InterSystems IRIS - Aplicação REST
Por Julio Esquerdo
Desenvolvendo Integrações com o InterSystems IRIS - SQL Inbound Adapter
Por Julio Esquerdo
Desenvolvendo Integrações com InterSystems IRIS - SOAP OutboundAdapter
Por Julio Esquerdo
Introdução ao suporte WSGI
Por Heloisa Paiva
A minha abordagem pessoal aos Vectores
Por Robert Cemper
Rodando aplicações Flask no IRIS
Por Heloisa Paiva
Rodando aplicações Django no IRIS
Por Heloisa Paiva
Desenvolvendo Integrações com InterSystems IRIS - Chamada Assíncrona no BP
Por Julio Esquerdo
Desenvolvendo Integrações com InterSystems IRIS - CALL no Business Process
Por Julio Esquerdo
Rodando aplicações FastAPI no IRIS
Por Heloisa Paiva
Desenvolvendo Integrações com InterSystems IRIS - SQL Outbound Adapter
Por Julio Esquerdo
Modelos LLM e Aplicações RAG Passo a Passo - Parte I
Por Heloisa Paiva
 
#InterSystems IRIS for Health
 
Anúncios
Outubro, 2024Month at a GlanceInterSystems Developer Community
Comentarios (0)1
Inicie sesión o regístrese para continuar
Pregunta
· 11 nov, 2024

Help navigate and extract data in Cache 2017

Hi,

I have a archive backup of a Cache database. I was able to restore the database but having trouble navigating through the globals, classes, namespaces .??? I am not a Cache user and/or developer so I am a bit lost. I am used to relational database such Microsoft SQL but not Cache which to my understand is a different breed of database. If you are looking for some extra money to help me extract some of the data I need i would be greatly appreciated.

Please email me at tamthnguyen@gmail.com or what's app phone +14168985565 I am in Toronto, Canada Eastern Standard Time Zone.

Thanks very much in advance..

Regards,

Tam,

1 Comentario
Comentarios (1)1
Inicie sesión o regístrese para continuar
Pregunta
· 11 nov, 2024

LOCK on Global vars, is it necessary in this case?

I have a business process that adds data to a global variable on receipt of an HL7 message, and a scheduled task that executes a class method defined within the same business process that removes data from the same global variable. With this in mind it makes sense to consider concurrency and therefore make use of the LOCK command.

My first question is whether this is actually necessary?

My second question is what happens to locks when an error/exception is encountered after a lock but before the code to release the lock, is this managed automatically or should try-catch be used to release the lock given an error?

1 Comentario
Comentarios (1)1
Inicie sesión o regístrese para continuar
Artículo
· 11 nov, 2024 Lectura de 3 min

Passerelle externe vers le langage Java

Si vous aimez Java et que vous avez un écosystème Java florissant au travail dans lequel vous devez incorporer IRIS, ce n'est pas un problème. La passerelle Java External Language Gateway le fera de manière transparente, ou presque. Cette passerelle sert de pont entre Java et Object Script dans IRIS. Vous pouvez créer des objets de classes Java dans IRIS et appeler leurs méthodes. Pour ce faire, il vous suffit de disposer d'un fichier jar.

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

La première chose à faire est de configurer l'environnement. Pour commencer à utiliser la passerelle Java, assurez-vous que vous disposez des éléments suivants :

  1. InterSystems IRIS: Installé et lancé
  2. Java Development Kit (JDK): Installé et configuré.

La deuxième exigence peut sembler simple, puisque vous utilisez déjà Java dans votre travail, mais ce n'est pas le cas. Merci à cette question, il s'est avéré que vous devez utiliser la version 11 du JDK au maximum. Cela signifie que vous devez changer la version dans votre IDE, ce qui peut poser quelques problèmes.

L'étape suivante consiste à vérifier que tout fonctionne et à essayer d'instancier l'objet d'une classe système Java. Pour ce faire, il faut démarrer une connexion, créer un objet proxy et appeler une méthode. Cela semble être beaucoup de code, mais en réalité, il s'agit juste d'une déclaration :

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

Cela permet d'imprimer la date et l'heure actuelles à l'écran.

Pour aller plus loin, nous pouvons créer notre propre classe 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!";
	}
}

et appeler ses méthodes à partir d'Object Script :

 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()

En conséquence, nous obtiendrons une chaîne de caractères contenant la description du plat créé :

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

Quite neat, don't you think?

Quoi qu'il en soit, pour en savoir plus sur l'utilisation des passerelles, consultez la Documentation et bonne chance pour mettre en œuvre ces connaissances dans vos projets !

1 Comentario
Comentarios (1)2
Inicie sesión o regístrese para continuar