セッションのタイムアウト

今日はReactとReduxに追いつくため、記事を漁ったりコードを変えたりしていたら進捗が…。加えて、調べたものはチュートリアルレベルなので、情報として再度共有すべきでもありません。なので、先週あたって部分的に解決できた問題を共有します。以下、先週の文章です。

==========

セッションのタイムアウトが起きた際は、managerで表示されているスキーマがデータベースにあることを確認する必要があるようです。

インターン初日に悩んだエラーがセッションのタイムアウトだったのですが(なんで最初と今のアカウントが違うんだろう…)、今日も出てしまいました。ただ、今回のエラーは面白い(出た瞬間は面白くもなんともなかった)エラーでした。セッションのタイムアウトのエラーは基本的にローカルのAipoでタイムアウトエラーの表示が切り替わらない時[ 追記 ]のエントリーで解決すると思うのですが、新しいパターンな気がします。 データベース周りの不具合、という点では既出ネタですが。

まずレビューをするためにアカウントを作ったのですが、 送信されたメールのリンクをクリックすると以下の文が提示されました。

セッションがタイムアウトしました。

ブラウザが切り替わらない場合は、再読み込みをお願いいたします。
timeout

mvn cleanしてもだめで、どうしても以下のエラーがでます(エラーというよりエラーメッセージ?)。 ちなみに、manager にはつながりました。

Aipoへのアクセスが集中し、ページを表示しにくい状態です。

なんかデーターベース関係のエラーなので、ログをデータベースの頭の部分でcat grepしました。

cat aipo.log | grep org000

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'org0000006'
2017-12-20 14:59:34,246 <ERROR> (http-bio-8080-exec-8) [JetspeedLogger.java:146]- [org0000006] 管理者ロールが存在しません。
2017-12-20 14:59:34,248 <ERROR> (http-bio-8080-exec-8) [JetspeedLogger.java:157]- [org0000006] ALEipUtils.isAdmin

ただ、MySQLに接続して確認したのですが、 データベースに存在するのは org0000007 からです。 一方、manager で確認した所、org0000006まではありました。 みてみると、今までエラーが起きてた部分はorg0000006までを生成していて、 存在しないスキーマをチェックしようとしていたそうです。 ということは、次にもう一度登録のプロセスを進めれば org0000007 が作られ、 かつ org0000007 はデータベースに存在するので、問題は起きないはずです。 結果として、問題は起きずに「セッションのタイムアウト」は解消されました。

結論としては、 セッションのタイムアウトが起きた際は、managerで表示されているスキーマがデータベースにあることを確認する必要があるようです。 気になったのは、なぜmanagerで表示されるスキーマと実際にあるスキーマがずれたのか、という点です。 結局わからず終いなので、もし原因がわかれば追記いたします。