Après avoir installé le SDK Ultipa Java et mis en place une instance Ultipa fonctionnelle, vous devriez être en mesure de connecter votre application à la base de données de graph Ultipa.
La connexion à Ultipa peut être établie en créant un driver avec des configurations spécifiées en utilisant l'une ou les deux méthodes suivantes :
- Connexion par Configuration de Code : via la classe
UltipaConfiguration
- Connexion par Configuration de Fichier : via le fichier
ultipa.properties
Les valeurs des éléments de configuration sont déterminées de manière préférentielle par UltipaConfiguration
, suivies par ultipa.properties
. Si un élément n'est pas trouvé dans l'une ou l'autre configuration, la valeur par défaut est utilisée.
Connexion par Configuration de Code
package com.ultipa.www.sdk.api;
import com.ultipa.sdk.connect.Connection;
import com.ultipa.sdk.connect.conf.UltipaConfiguration;
import com.ultipa.sdk.connect.driver.UltipaClientDriver;
public class Main {
public static void main(String[] args) {
UltipaConfiguration myConfig = UltipaConfiguration.config()
// Exemple d'URI : .hosts("mqj4zouys.us-east-1.cloud.ultipa.com:60010")
.hosts("192.168.1.85:60061,192.168.1.86:60061,192.168.1.87:60061")
.username("<username>")
.password("<password>")
.defaultGraph("default");
UltipaClientDriver driver = null;
try {
driver = new UltipaClientDriver(myConfig);
Connection client = driver.getConnection("amz");
String reply = client.sayHello("Hi");
System.out.println(reply);
} finally {
if (driver != null) {
driver.close();
}
}
}
}
Hi Welcome To Ultipa!
Un driver est créé avec les configurations spécifiées en utilisant UltipaConfiguration
. Veuillez vous référer aux Éléments de Configuration pour tous les éléments disponibles pour configurer les détails de connexion avec UltipaConfiguration
.
La méthode getConnection()
obtient une connexion à Ultipa, vous permettant de spécifier, de façon facultative, un graphset comme le graphset actuel (dans ce cas, amz
). Si aucun graph n'est spécifié, le graphset identifié par l'élément de configuration defaultGraph
sera utilisé.
Connexion par Configuration de Fichier
package com.ultipa.www.sdk.api;
import com.ultipa.sdk.connect.Connection;
import com.ultipa.sdk.connect.conf.UltipaConfiguration;
import com.ultipa.sdk.connect.driver.UltipaClientDriver;
public class Main {
public static void main(String[] args) {
UltipaClientDriver driver = null;
try {
driver = new UltipaClientDriver();
Connection client = driver.getConnection();
String reply = client.sayHello("Hi");
System.out.println(reply);
} finally {
if (driver != null) {
driver.close();
}
}
}
}
Un driver est créé avec les configurations spécifiées en utilisant le fichier ultipa.properties
. Le fichier ultipa.properties
doit être placé sous le classpath
du projet Java, qui est par défaut ./src/main/resources
.
Exemple du fichier ultipa.properties
:
ultipa.hosts=192.168.1.85:60061,192.168.1.86:60061,192.168.1.87:60061
#ultipa.hosts=mqj4zouys.us-east-1.cloud.ultipa.com:60010
ultipa.username=<username>
ultipa.password=<password>
ultipa.passwordEncrypt=NOTHING
ultipa.defaultGraph=amz
# ultipa.crt=F:\\ultipa.crt
# ultipa.overrideAuthority=ultipa
# ultipa.crt=https
# ultipa.crt=
ultipa.keepAlive=180
ultipa.keepAliveWithoutCalls=true
ultipa.pool.maxIdle=50
ultipa.pool.minIdle=20
ultipa.pool.maxTotal=200
ultipa.pool.timeBetweenEvictionRunsMillis=3600000
ultipa.pool.testOnBorrow=true
Veuillez vous référer aux Éléments de Configuration pour tous les éléments disponibles pour configurer les détails de connexion avec le fichier ultipa.properties
.
Éléments de Configuration
Voici tous les éléments de configuration disponibles pour UltipaConfiguration
et ultipa.properties
:
Éléments |
Type |
Par défaut |
Description |
---|---|---|---|
hosts |
String | Adresses hôte de la base de données ou URI (excluant https:// ou http:// ). Pour les clusters, plusieurs adresses sont séparées par des virgules. Requis. |
|
username |
String | Nom d'utilisateur pour l'authentification hôte. Requis. | |
password |
String | Mot de passe pour l'authentification hôte. Requis. | |
passwordEncrypt |
String | MD5 | Méthode de chiffrement du mot de passe du driver. Prend en charge MD5 , LDAP et NOTHING . NOTHING est utilisé lorsque le contenu est vide. |
timeout |
Integer | 15 | Seuil de temps d'attente de la requête en secondes. |
connectTimeout |
Integer | 2000 | Seuil de temps d'attente de connexion en millisecondes. Par défaut, chaque hôte est essayé trois fois. |
consistency |
Boolean | false | Indique si le node leader est utilisé pour garantir une lecture cohérente. |
crt |
String | Définit le chemin du fichier de certificat local. SSL sera utilisé pour la connexion, overrideAuthority doit être configuré correctement. Alternativement, défini sur https pour l'hôte du protocole HTTPS. Une connexion non-SSL est utilisée lorsqu'elle est ignorée. |
|
keepAlive |
Integer | 120 | Période maximale en secondes d'inactivité avant d'envoyer une sonde de maintien de connexion à l'hôte pour maintenir la réactivité de la connexion (peut augmenter la charge du service). |
keepAliveWithoutCalls |
Boolean | false | Active le mécanisme de maintien de connexion même pendant l'inactivité de la connexion. |
overrideAuthority |
String | Remplace hostname par ultipa pour correspondre à l'autorité du certificat du serveur. |
|
maxRecvSize |
Integer | 4 | Taille maximale en mégaoctets lors de la réception de données. |
defaultGraph |
String | default | Nom du graph dans la base de données à utiliser par défaut. |
heartBeat |
Integer | 10000 | Intervalle de battement du cœur en millisecondes pour toutes les instances, défini sur 0 pour désactiver le battement. |
poolConfig |
PoolConfig |
Configure le pool de connexion. |
Pool de Connexion
PoolConfig
contient les paramètres de configuration pour utiliser la bibliothèque Apache Commons Pool. Ces réglages sont nécessaires lors de la connexion à une base de données pour gérer et réutiliser efficacement les connexions.
package com.ultipa.www.sdk.api;
import com.ultipa.sdk.connect.Connection;
import com.ultipa.sdk.connect.conf.UltipaConfiguration;
import com.ultipa.sdk.connect.driver.UltipaClientDriver;
public class Main {
public static void main(String[] args) {
UltipaConfiguration myConfig = UltipaConfiguration.config()
// Exemple d'URI : .hosts("mqj4zouys.us-east-1.cloud.ultipa.com:60010")
.hosts("192.168.1.85:60061,192.168.1.86:60061,192.168.1.87:60061")
.username("<username>")
.password("<password>");
PoolConfig poolConfig = myConfig.getPoolConfig();
poolConfig.setMaxIdle(50);
poolConfig.setMinIdle(2);
poolConfig.setMaxTotal(200);
UltipaClientDriver driver = null;
try {
driver = new UltipaClientDriver(myConfig);
Connection client = driver.getConnection();
String reply = client.sayHello("Hi");
System.out.println(reply);
} finally {
if (driver != null) {
driver.close();
}
}
}
}
PoolConfig
a les champs suivants :
Élément |
Type |
Par défaut |
Description |
---|---|---|---|
maxIdle |
Integer | 8 | Nombre maximal de connexions inactives. |
minIdle |
Integer | 0 | Nombre minimal de connexions inactives. |
maxTotal |
Integer | 8 | Nombre maximal de connexions totales. |
minEvictableIdleTimeMillis |
Long | 1800000 | Temps d'inactivité minimum en millisecondes avant qu'une connexion ne soit évictée. |
timeBetweenEvictionRunsMillis |
Long | -1 | Intervalle en millisecondes entre les tests d'éviction pour les connexions inactives. Définir à une valeur négative pour désactiver le balayage. |
maxWaitMillis |
Long | -1 | Temps d'attente maximum en millisecondes pour une connexion. Définir à une valeur négative pour attendre indéfiniment. |
testOnBorrow |
Boolean | false | Doit-on tester les connexions lors du prêt. |
testOnReturn |
Boolean | true | Doit-on tester les connexions lors du retour. |
testWhileIdle |
Boolean | true | Doit-on tester les connexions lorsqu'elles sont inactives. |
lifo |
Boolean | true | Doit-on utiliser l'ordre dernier entré, premier sorti (LIFO). |
blockWhenExhausted |
Boolean | true | Bloquer les nouvelles requêtes jusqu'à qu'une connexion soit disponible lorsque les connexions sont épuisées. Si défini sur false, une erreur est renvoyée. |
numTestsPerEvictionRun |
Integer | 3 | Nombre maximum de connexions à tester par exécution d'éviction. |
Source de Données
En définissant les configurations et le graph cible dans un DataSource
, vous pouvez facilement transmettre toutes les informations de connexion nécessaires au UltipaClientDriver
lors de la création d'une connexion.
Lorsque
UltipaClientDriver
est instancié à l'aide deDataSource
, le fichierultipa.properties
est ignoré.
package com.ultipa.www.sdk.api;
import com.ultipa.sdk.connect.Connection;
import com.ultipa.sdk.connect.conf.UltipaConfiguration;
import com.ultipa.sdk.connect.driver.UltipaClientDriver;
public class Main {
public static void main(String[] args) {
UltipaConfiguration myConfig = UltipaConfiguration.config()
// Exemple d'URI : .hosts("mqj4zouys.us-east-1.cloud.ultipa.com:60010")
.hosts("192.168.1.85:60061,192.168.1.86:60061,192.168.1.87:60061")
.username("<username>")
.password("<password>");
PoolConfig poolConfig = myConfig.getPoolConfig();
poolConfig.setMaxIdle(50);
poolConfig.setMinIdle(2);
poolConfig.setMaxTotal(200);
DataSource dataSource = new DataSource();
dataSource.setUltipaConfiguration(myConfig);
dataSource.setDefaultGraph("amz");
UltipaClientDriver driver = null;
try {
driver = new UltipaClientDriver(dataSource);
Connection client = driver.getConnection();
String reply = client.sayHello("Hi");
System.out.println(reply);
} finally {
if (driver != null) {
driver.close();
}
}
}
}
Fermer la Connexion
L'objet driver peut être réutilisé à travers plusieurs threads, et la connexion peut être fermée correctement en appelant la méthode driver.close()
.