Tomcat、Apache再起動後、まれに「Now Loading...」のまま止まってしまうことがあります。 【環境】GSession: 2.0.1OS: CentOS 4.4WEBサーバー: Apache2.0.52Tomcat: apache-tomcat-5.5.23Java: jdk1.5.0_12Tomcat、Apacheの再起動は、毎晩の「自動バックアップ設定」によるバックアップの後行っています。リストアを試しましたが、当日のバックアップファイルでは解消せず前日のものであれば解消します。(1日分のデータが消えてしまう)次の過去ログも参考にしましたが、解決できませんでした。http://www.gs.sjts.co.jp/wbs/bulletin/bbs080.do?bbs010forumSid=1&threadSid=5http://www.gs.sjts.co.jp/wbs/bulletin/bbs080.do?bbs010forumSid=1&threadSid=248同じような現象を経験された方、対処法をご存知の方はいらっしゃいますか?
2008-05-11 08:56:47,874 ERROR jp.co.sjts.util.jdbc.JDBCUtil:405 - コネクションの取得に失敗(1回目)org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Unique index or primary key violation: PRIMARY_KEY_47 ON PUBLIC.BBS_THRE_VIEW(BTI_SID, USR_SID) [23001-46]) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540) at jp.co.sjts.util.jdbc.JDBCUtil.getConnection(JDBCUtil.java:402) at jp.co.sjts.util.jdbc.JDBCUtil.getConnection(JDBCUtil.java:384) at jp.groupsession.v2.cmn.GroupSession.getConnection(GroupSession.java:353) at jp.groupsession.v2.struts.AbstractGsAction.__getConnection(AbstractGsAction.java:263) at jp.groupsession.v2.struts.AbstractGsAction.execute(AbstractGsAction.java:75) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
上記ログの後、以下の繰り返し at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085) at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263) at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
私も、GroupSession2.0.3のときに同じ現象が発生しました。ApacheとTomcatを停止したあと、psコマンドでjavaが動いているか確認していただけますか?ApacheとTomcatを停止させてもまだjavaが動いていると、GroupSession2の終了が不完全になってしまい、その状態で再度Tomcatを起動してしまうと、「Now Loading...」のまま止まってしまいます。もし、javaが動いていたら、killコマンドでjavaのプロセスを終了させてください。あと、2.1.0では解消されているみたいですので、アップデートしてみるのもいいかもしれません。
SIN 様情報ありがとうございます。TomcatとApache停止後、javaが動いていたら終了させる処理を追加してみます。GroupSessionのアップデートも試したいと思います。
こんばんはyhoriです。Tomcat、Apache再起動の前にGroupSessionのバックアップが駄目とのことなので、起動時の破損ではなく、あるタイミングでBBS_THRE_VIEWのプライマリキーがおかしく?なってしまったのではないでしょうか...起動しないデータベースのBBS_THRE_VIEWの中って確認できますか?停止する前日の処理でBBS_THRE_VIEWに対して発行したSQLに対してエラーとかログに残っているのではないかなと思います。
yhori様> 停止する前日の処理でBBS_THRE_VIEWに対して発行したSQLに対してエラーとか> ログに残っているのではないかなと思います。以下のエラーがありました。2008-05-10 11:06:01,228 ERROR jp.groupsession.v2.bbs.bbs080.Bbs080Biz:162 - スレッド閲覧情報の更新失敗org.h2.jdbc.JdbcSQLException: General error: java.lang.Error: try to add a record twice i=0 [HY000-46] at org.h2.message.Message.getSQLException(Message.java:65) at org.h2.message.Message.convert(Message.java:370) at org.h2.message.TraceObject.logAndConvert(TraceObject.java:206)また、次の手順でデータが消えること無く復旧できました。1. Tomcat停止2. 壊れたDBをH2Console(ComandLine)で開く3. 「SELECT count(*), bti_sid, usr_sid FROM BBS_THRE_VIEW group by bti_SID, usr_sid order by count(*) desc」 を実行 ※結果、何故かプライマリキーが重複しているデータがあった4. delete文で重複しているデータを1件だけ残し削除5. プライマリキーの再作成 「ALTER TABLE PUBLIC.BBS_THRE_VIEW DROP PRIMARY KEY」 「CREATE PRIMARY KEY ON PUBLIC.BBS_THRE_VIEW(BTI_SID, USR_SID)」6. H2Console(ComandLine)をシャットダウン7. Tomcat起動
vertical_align_top