GroupSession
3.2.1から3.5のバージョンアップをbackupデータを用いて、http://www.gs.sjts.co.jp/v3/support/update/update_3.5.0.html#manualConvert記載の手順で下記2種類の環境で実施しましたが、WEB-INF\convert\log\convert.logに「ファイルの破損を検出」「リカバリツールを使用してください」と表示され失敗しました。過去のスレッドを見て、リカバリツールを適用して再度手動データコンバートを行いましたが、結果は変わりませんでした。cd WEB-INF\db\gs2dbjava -cp ..\..\lib\h2_1.3.jar org.h2.tools.Recover -trace -db gs2db3.2.1に戻すと同じデータで普通に動作しています。<以下、環境などの情報です>GroupSession:3.2.1から3.5のバージョンアップOS:WinXP Pro SP2, SceintificLinux6 両方で同じ現象Javaバージョン:[win] JRE1.6.0_26 [linux] openJDK1.6.0_20WEBサーバ:連携せずTomcat単体での動作:3.2.1/3.5ともに動作するファイアウォール:port 8080 を開けているログのエラー出力:
ログのエラー出力(2000文字超えるので一部です):2011-07-25 15:52:59,597 INFO jp.groupsession.v2.cmn.GSH2Util:202 - H2 Databaseの設定 終了2011-07-25 15:52:59,597 INFO jp.groupsession.v2.convert.ConvertGsListenerImpl:907 - DB起動処理を実行2011-07-25 15:52:59,659 INFO jp.groupsession.v2.cmn.jdbc.GsDataSourceFactory:168 - gsdata.conf==>null2011-07-25 15:52:59,659 INFO jp.groupsession.v2.cmn.jdbc.GsDataSourceFactory:180 - .\..\..\..\WEB-INF\db2011-07-25 15:52:59,675 INFO jp.groupsession.v2.cmn.dao.MlCountMtController:143 - INumberingController is jp.groupsession.v2.cmn.dao.NumberingControllerForH22011-07-25 15:52:59,690 INFO jp.groupsession.v2.cmn.jdbc.GsDataSourceFactory:168 - gsdata.conf==>null2011-07-25 15:52:59,690 INFO jp.groupsession.v2.cmn.jdbc.GsDataSourceFactory:180 - .\..\..\..\WEB-INF\db2011-07-25 15:52:59,690 INFO jp.co.sjts.util.jdbc.JDBCUtil:424 - 現在のコネクション状況: ACTIVE=0 IDLE=02011-07-25 15:53:00,144 ERROR jp.co.sjts.util.jdbc.JDBCUtil:439 - コネクションの取得に失敗(1回目)org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (レコード "-1 of 15279" を読み込み中にファイルの破損を検出しました。可能な解決策: リカバリツールを使用してくださいFile corrupted while reading record: "-1 of 15279". Possible solution: use the recovery tool; SQL statement:CREATE CACHED TABLE IF NOT EXISTS INFORMATION_SCHEMA.LOB_MAP( LOB BIGINT NOT NULL, SEQ INT NOT NULL, HASH INT, BLOCK BIGINT)HIDDEN [90030-157]) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) at jp.co.sjts.util.jdbc.JDBCUtil.getConnection(JDBCUtil.java:431) at jp.co.sjts.util.jdbc.JDBCUtil.getConnection(JDBCUtil.java:401)
一部間違いがありましたので訂正します。> Tomcat単体での動作:3.2.1/3.5ともに動作するは、「WEBサーバを使用していない 」ので記述は不要でした。すみません。(データをコピーしない状態で動作するか、と勘違いしました)
3.2.1から3.5のバージョンアップをしていますが、TKYさん同様に「ファイルが破損している」で失敗します。データは多くないので手動データ変換ではないのですが、TKYさんと同じエラーが出力されてうまく動作しません。GroupSession:3.2.1から3.5のバージョンアップOS:WinXP Pro SP2http://www.gs.sjts.co.jp/v3/support/update/update_3.5.0.htmlの流れでバージョンアップしていますが、GroupSession3.5.0を配置後、tomcatを起動しGroupSessionにアクセスするところまでは正常でしたが、「GroupSessionデータベースファイルの移行」を行った後に同様にアクセスしましたが、「HTTPステータス 500」が出て動作しません。その際、「Tomcat 6.0」のログに以下が記録されます。なお、同様の作業をして3.2.1に戻したら、同じデータで正常に動作します。C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\localhost.日付.logには、以下のエラー出力があります。--------------------------------2011/07/29 11:44:37 org.apache.catalina.core.StandardWrapperValve invoke致命的: サーブレット action のServlet.service()が例外を投げましたorg.h2.jdbc.JdbcSQLException: レコード "-1 of 5278" を読み込み中にファイルの破損を検出しました。可能な解決策: リカバリツールを使用してくださいFile corrupted while reading record: "-1 of 5278". Possible solution: use the recovery tool; SQL statement:CREATE CACHED TABLE IF NOT EXISTS INFORMATION_SCHEMA.LOB_MAP( LOB BIGINT NOT NULL, SEQ INT NOT NULL, HASH INT, BLOCK BIGINT)HIDDEN [90030-157] at org.h2.message.DbException.getJdbcSQLException(DbException.java:327) at org.h2.message.DbException.get(DbException.java:167) at org.h2.message.DbException.get(DbException.java:144) at org.h2.store.PageStore.readPage(PageStore.java:1244) at org.h2.store.PageStore.getPage(PageStore.java:701)(以下略)--------------------------------「手動データ変換」ではないですが、状況が同じようでしたので、投稿させていただきました。
同様の現象を確認しました。3.2.1の手動バックアップを解凍したものを利用しても同様のエラーが出ます。HTTPステータス 500 - --------------------------------------------------------------------------------type 例外レポートメッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request.例外 javax.servlet.ServletException: org.h2.jdbc.JdbcSQLException: レコード "-1 of 58194" を読み込み中にファイルの破損を検出しました。可能な解決策: リカバリツールを使用してくださいFile corrupted while reading record: "-1 of 58194". Possible solution: use the recovery tool; SQL statement:CREATE CACHED TABLE IF NOT EXISTS INFORMATION_SCHEMA.LOB_MAP( LOB BIGINT NOT NULL, SEQ INT NOT NULL, HASH INT, BLOCK BIGINT)HIDDEN [90030-157] org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) jp.co.sjts.util.http.filter.FilterEncoding.doFilter(FilterEncoding.java:96)原因 org.h2.jdbc.JdbcSQLException: レコード "-1 of 58194" を読み込み中にファイルの破損を検出しました。可能な解決策: リカバリツールを使用してくださいFile corrupted while reading record: "-1 of 58194". Possible solution: use the recovery tool; SQL statement:CREATE CACHED TABLE IF NOT EXISTS INFORMATION_SCHEMA.LOB_MAP( LOB BIGINT NOT NULL, SEQ INT NOT NULL, HASH INT, BLOCK BIGINT)----Apache Tomcat/6.0.26
私も同じ状態で3.2.1から3.5へのバージョンアップが出来なかったので、下記の方法にて gs2db.h2.dbのリカバリーを行いました。OS ubuntu server 10.04 LTSApache Tomcat/6.0.24Java 1.6.0_26 Sun Microsystems Inc.以下の作業は rootにて行っています。最初にgsession3のアップデートを http://www.gs.sjts.co.jp/v3/support/update/update_3.5.0.htmlに従い行います。tomcat6を停止したまま、カレントディレクトリを /var/lib/tomcat6/webapps/gsession3/WEB-INF/db/gs2db へ java -cp ../../lib/h2_1.3.jar org.h2.tools.Recover -db gs2db を実行同ディレクトリに gs2db.h2.sql が作成されます。次に gs2db.h2.db を削除 、gs2db.h2.sqlファイルの所有者を変更し実行 rm gs2db.h2.db chown tomcat6:tomcat6 gs2db.h2.sql java -cp ../../lib/h2_1.3.jar org.h2.tools.RunScript -url jdbc:h2:gs2db -script gs2db.h2.sqlこれで新しい gs2db.h2.dbファイルが作成されます。作成直後のgs2db.h2.dbファイルは、削除した元のファイルの2倍ほどの大きさとなっていますがtomcat6の起動後 徐々に元ファイルのサイズに近づいていきます。続いてgs2db.h2.dbの手動コンバートを行います。カレントディレクトリを/var/lib/tomcat6/webapps/gsession3/WEB-INF/convert/bin へconvert.shのパーミッションを変更し実行。 chmod +x convert.sh ./convert.shカレントディレクトリを /var/lib/tomcat6/webapps/gsession3/WEB-INF/db/gs2db へgs2db.h2.dbの所有者をtomcat6に変更しtomcat6をスタート。 chown tomcat6:tomcat6 gs2db.h2.db service tomcat6 start
YKさんの手順で解決しました。返信ありがとうございました。正常に手動データ変換が完了し、3.5.1にデータを移行できたこと確認できました。私の失敗の原因は下記の手順が抜けていたためだったようです。> 次に gs2db.h2.db を削除 、gs2db.h2.sqlファイルの所有者を変更し実行> rm gs2db.h2.db> chown tomcat6:tomcat6 gs2db.h2.sql> java -cp ../../lib/h2_1.3.jar org.h2.tools.RunScript -url jdbc:h2:gs2db -script gs2db.h2.sql> これで新しい gs2db.h2.dbファイルが作成されます。以上です。
version3.21⇒3.51へのUPで私も失敗しました。YKさんのスレッドにてWindowsサーバーでも無事アップ出来ました。ありがとうございました
version 3.5.1 (2011/08/23更新)の 「既知の問題」http://www.gs.sjts.co.jp/v3/seihin/bug_info.htmlに2011/8/23 共通 - V3.5.0以降のバージョンアップに失敗する場合がある。 が追加されました。次期バージョンでの修正に期待です。
TOP