【エラー解決方法】JPAを使用して、メモリーリークエラーが発生した場合の解決方法

こんにちは。ぐっさんです。
 
JPAを使用したシステムのサーバー上で、memory leakのエラーログが出力されていました。今回はそのエラーの対処法を紹介します。

エラー内容

サーバーのメモリーリークの調査をしていたところ、JPAを使用したシステムのアプリケーションログに下記のエラーが出力されていました。

Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException

エラー発生時の環境

エラー発生時の開発環境は以下のとおりです。

言語
Java1.7.0_51
O/Rマッパー
JPA 2.0 (インターフェース)Hibernate4.2.1(実装クラス)

原因

Hibernateがデータベースのメタ情報を取得しようとして、Clob型を使用してエラーとなっていました。

解決方法

persistence.xmlに下記のタグを追加することで解消されます。

<property name="hibernate.temp.use_jdbc_metadata_defaults"/>false</property>

まとめ

今回は、JavaのO/Rマッピングフレームワークとして、様々なプロジェクトで使用されているJPAのエラー解消方法を紹介しました。
 
今後もJPAでエラーなど発生しましたら、紹介していきたいと思います。

記事をシェア
MOST VIEWED ARTICLES