

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Un modo alternativo per connettersi alla console Gremlin
<a name="access-graph-gremlin-console-connect"></a>

**Svantaggi dell'approccio di connessione normale**

Il modo più comune per connettersi alla console Gremlin è quello spiegato sopra, utilizzando comandi come questo al prompt `gremlin>`.

```
gremlin> :remote connect tinkerpop.server conf/(file name).yaml
gremlin> :remote console
```

Funziona bene e consente di inviare query a Neptune. Tuttavia, esclude il motore di script Groovy dal ciclo, quindi Neptune tratta tutte le query come puro Gremlin. Ciò significa che i seguenti moduli di query hanno esito negativo:

```
gremlin> 1 + 1
gremlin> x = g.V().count()
```

La cosa più vicina all'utilizzo di una variabile quando si è connessi in questo modo è utilizzare la variabile `result` gestita dalla console e inviare la query utilizzando `:>`, in questo modo:

```
gremlin> :remote console
==>All scripts will now be evaluated locally - type ':remote console' to return to remote mode for Gremlin Server - [krl-1-cluster.cluster-ro-cm9t6tfwbtsr.us-east-1.neptune.amazonaws.com/172.31.19.217:8182]
gremlin> :> g.V().count()
==>4249

gremlin> println(result)
[result{object=4249 class=java.lang.Long}]

gremlin> println(result['object'])
[4249]
```

 

**Un modo diverso di connettersi**

Puoi anche connetterti alla console Gremlin in un modo diverso, che potresti trovare più comodo, come questo:

```
gremlin> g = traversal().withRemote('conf/neptune.properties')
```

In questo caso il formato di `neptune.properties` è il seguente:

```
gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection
gremlin.remote.driver.clusterFile=conf/my-cluster.yaml
gremlin.remote.driver.sourceName=g
```

Il file `my-cluster.yaml` sarà simile al seguente:

```
hosts: [my-cluster-abcdefghijk.us-east-1.neptune.amazonaws.com]
port: 8182
serializer: { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1,
              config: { serializeResultToString: false } }
connectionPool: { enableSsl: true }
```

**Nota**  
 I serializzatori sono stati spostati dal modulo al nuovo modulo nella versione `gremlin-driver` 3.7.0. `gremlin-util` Il pacchetto è cambiato da org.apache.tinkerpop.gremlin.driver.ser a org.apache.tinkerpop.gremlin.util.ser. 

La configurazione della connessione alla console Gremlin in questo modo consente di effettuare correttamente i seguenti tipi di query:

```
gremlin> 1+1
==>2

gremlin> x=g.V().count().next()
==>4249

gremlin> println("The answer was ${x}")
The answer was 4249
```

Puoi evitare di visualizzare il risultato, in questo modo:

```
gremlin> x=g.V().count().next();[]
gremlin> println(x)
4249
```

Tutti i metodi usuali di esecuzione di query (senza il passaggio terminale) continuano a funzionare. Esempio:

```
gremlin> g.V().count()
==>4249
```

Puoi anche usare il passaggio [https://tinkerpop.apache.org/docs/current/reference/#io-step](https://tinkerpop.apache.org/docs/current/reference/#io-step) per caricare un file con questo tipo di connessione.