11.13.5.6. Resin で PreparedStatement の キャッシュサイズに大きな値を指定している場合にテナント環境セットアップが失敗する¶
- 本事象は利用するデータベースによって事象内容が異なります。
11.13.5.6.1. 弊社での検証済み環境¶
データベース 事象内容 PostgreSQL9.4 テナント環境セットアップ中にExceptionエラーが発生します。 Oracle11g テナント環境セットアップ中に応答がなくなってしまいます。 Exceptionエラー等は確認されず、ブラウザ側では処理中のままとなります。 SQL Server2012 正常に処理ができます。 弊社での検証では本現象は確認されません。
11.13.5.6.2. 原因¶
- PreparedStatementで使用するクエリが参照するテーブル構成が変更されている場合、PreparedStatementのキャッシュにより、テーブル構成が変更する前の古いクエリが発行されてしまうためです。
11.13.5.6.3. 回避方法¶
- テナント環境セットアップ処理中のみ resin-web.xml prepared-statement-cache-size を「0」にします。ただし、PostgreSQLはJDBCドライバのバージョンによって設定が異なります。Version 9.4-1202以降では<init-param>に preparedStatementCacheQueries を設定する必要があります。詳しくは、「設定ファイルリファレンス」の「プリペアドステートメントキャッシュ設定」を参照してください。テナント環境セットアップ後に再度値を変更してResinの再起動を行ってください。