我々はRESTHEARTを実装して、MongoDBから集約されたデータを取得しました。シングルリクエストの場合、データは正常に受信され、要件を満たしています。 MongoDBへの負荷を追加してJMeterリクエストでこれをチェックし始めたとき、バックエンドで例外が発生しました。 これらの例外をMongoDBエンジニアと共有しました。彼らは、心配しているAPIの問題が原因である可能性があることを示しています。 誰も以前にこれらの問題に直面しましたか?RESTHEART例外をスローする
@Andrea Di Cesare、これに関するお手伝いをさせていただきます。
以下は、詳細 "Out of memory"でエラーになる例です。 REST APIは http://ftc-lbeapoc202:8080/statdata/InsStatData/_aggrs/getStatDataByIssuerIdSectionName?avars= { 'issuerId':66915 'セクション名': 'SCDPT1'} CALLS http://ftc-lbeapoc202:8080/statdata/InsStatData/_aggrs/getStatDataByIssuerIdSectionName?avars= { 'issuerId':66915 'セクション名': 'SCDPT1'、 '年':2014}
エラーにサーバーログ:
[[1;31mERROR^[[0;39m org.restheart.handlers.ErrorHandler - Error handling
the request
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3554)
at java.util.Arrays.copyOf(Arrays.java:3525)
at java.util.ArrayList.grow(ArrayList.java:272)
at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:246)
at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:238)
at java.util.ArrayList.add(ArrayList.java:469)
at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:84)
at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:41)
at com.mongodb.operation.CommandResultArrayCodec.decode(CommandResultArrayCodec.java:52)
at com.mongodb.operation.CommandResultDocumentCodec.readValue(CommandResultDocumentCodec.java:53)
at org.bson.codecs
Error in response:
{
· _exceptions:
[
o {
§ exception: "java.lang.OutOfMemoryError",
§ exception message: "Java heap space"
}
],
· http status code: 500,
· http status description: "Internal Server Error",
· message: "Error handling the request, see log for more
information"
}
Thanks!
あなたはここでそれについて何をすると思いますか?この問題は、「APIの内部動作」で示唆されているように見えます。したがって、論理的な行動は、保守担当者に直接問題を提起することです。これが「単一通話」のエラーではなく、むしろ「時間の経過」に起こった場合、https://github.com/softinstigate/restheart/issuesがより良い場所になるでしょう。 –
取得しているデータの量はどれくらいですか?あなたはあなたのJavaアプリケーションの仮想メモリの上限を増やす必要があります。 – Serge
@ Serge私たちが得ているデータはそれほど大きくありません。ときに仮想メモリの増加を増やしています。あなたはJMeterについて話していますか?なぜなら私はJMeterからこれらの呼び出しを直接トリガーしているからです(間にカスタムAPIはありません) – Abhinav1singhal