

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Neptune Serverless のハートビート設定
<a name="best-practices-gremlin-heartbeat-serverless"></a>

Neptune Serverless で Gremlin WebSocket クライアントを使用する場合は、スケーリングイベント中に安定した接続を維持するために、クライアントの ping 間隔を適切に設定する必要があります。Gremlin クライアントは WebSocket 接続を使用し、定期的な ping を送信して接続がアクティブであることを確認します。クライアントは、ping 間隔の期間内にサーバーからのレスポンスを期待します。サーバーが応答しない場合、クライアントは自動的に接続を閉じます。

Neptune で**プロビジョニングされた**インスタンスの場合、ping 間隔を **5 秒**に設定することをお勧めします。Neptune **Serverless クラスター**の場合、スケーリングオペレーション中の潜在的な遅延に対応するために、ping 間隔を少なくとも **20 秒**に設定することをお勧めします。このパラメータは、クライアントがサーバーへの書き込みから ping を送信して接続がまだアクティブであることを確認するまでの待機時間を制御します。

このパラメータの設定は、クライアントの実装によって異なります。

**Java クライアント設定**

Java TinkerPop Gremlin クライアントの場合は、 `keepAliveInterval`パラメータを設定します。

```
Cluster.Builder builder = Cluster.build()
    .addContactPoint(endpoint)
    .keepAliveInterval(20000); // Configure ping interval in milliseconds
```

Java ドライバー設定の詳細については、[Java TinkerPop ドキュメント](https://tinkerpop.apache.org/docs/current/reference/#gremlin-java-configuration)を参照してください。

**Go クライアント設定**

Gremlin Go クライアントの場合は、 `KeepAliveInterval`パラメータを設定します。

```
rc, err := driver.NewDriverRemoteConnection(endpoint,
    func(settings *driver.DriverRemoteConnectionSettings) {
        settings.TraversalSource = "g"
        settings.AuthInfo = auth
        settings.KeepAliveInterval = 20 * time.Second // Configure ping interval
        ...
    })
```

Go ドライバー設定の詳細については、Go [ TinkerPop ドキュメント](https://tinkerpop.apache.org/docs/current/reference/#gremlin-go-configuration)を参照してください。

**JavaScript/Node.js クライアント設定**

JavaScript/Node.js Gremlin クライアントの場合は、 `pingInterval`パラメータを設定します。

```
const gremlin = require('gremlin');
const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;

const connection = new DriverRemoteConnection(endpoint, {
    traversalSource: 'g',
    pingInterval: 20000  // Configure ping interval in milliseconds
});
```

JavaScript ドライバー設定の詳細については、[JavaScript TinkerPop ドキュメント](https://tinkerpop.apache.org/docs/current/reference/#gremlin-javascript-configuration)を参照してください。

**Python クライアント設定**

Python Gremlin クライアントの場合、ping 間隔は通常トランスポートレイヤーで管理されます。設定オプションについては、特定のトランスポート実装ドキュメントを参照してください。

```
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection

g = traversal().with_remote(
    DriverRemoteConnection('wss://your-neptune-endpoint:your-neptune-port/gremlin','g',
        transport_factory=lambda: AiohttpTransport(read_timeout=60,
                                                    write_timeout=20,
                                                    heartbeat=20, // Configure heartbeat
                                                    call_from_event_loop=True,
                                                    max_content_length=100*1024*1024,
                                                    ssl_options=ssl.create_default_context(Purpose.CLIENT_AUTH))))
```

Python ドライバー設定の詳細については、[Python TinkerPop ドキュメント](https://tinkerpop.apache.org/docs/current/reference/#gremlin-python-configuration)を参照してください。

この設定により、クライアントは Neptune Serverless スケーリングイベント中に接続の安定性を維持し、不要な接続の閉鎖を防ぎ、アプリケーションの信頼性が向上します。