フォーラム

GroupSession

フォーラム
GroupSessionについての自由な情報交換の場としてご利用ください

GroupSessionフォーラム:投稿一覧

 
フォーラム:00_インストール・設定
3.2.1から3.5のバージョンアップの手動データ変換で「ファイルが破損している」で失敗する
[ 3972 ] 3.2.1から3.5のバージョンアップの手動データ変換で「ファイルが破損している」で失敗する

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\gs2db
java -cp ..\..\lib\h2_1.3.jar org.h2.tools.Recover -trace -db gs2db

3.2.1に戻すと同じデータで普通に動作しています。

<以下、環境などの情報です>
GroupSession:3.2.1から3.5のバージョンアップ
OS:WinXP Pro SP2, SceintificLinux6 両方で同じ現象
Javaバージョン:[win] JRE1.6.0_26 [linux] openJDK1.6.0_20
WEBサーバ:連携せず
Tomcat単体での動作:3.2.1/3.5ともに動作する
ファイアウォール:port 8080 を開けている
ログのエラー出力:

投稿者TKY
最新書き込み2011/07/25 15:57:54
[ 3973 ] Re: 3.2.1から3.5のバージョンアップの手動データ変換で「ファイルが破損している」で失敗する

ログのエラー出力(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==>null
2011-07-25 15:52:59,659 INFO jp.groupsession.v2.cmn.jdbc.GsDataSourceFactory:180 - .\..\..\..\WEB-INF\db
2011-07-25 15:52:59,675 INFO jp.groupsession.v2.cmn.dao.MlCountMtController:143 - INumberingController is jp.groupsession.v2.cmn.dao.NumberingControllerForH2
2011-07-25 15:52:59,690 INFO jp.groupsession.v2.cmn.jdbc.GsDataSourceFactory:168 - gsdata.conf==>null
2011-07-25 15:52:59,690 INFO jp.groupsession.v2.cmn.jdbc.GsDataSourceFactory:180 - .\..\..\..\WEB-INF\db
2011-07-25 15:52:59,690 INFO jp.co.sjts.util.jdbc.JDBCUtil:424 - 現在のコネクション状況: ACTIVE=0 IDLE=0
2011-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)

投稿者TKY
最新書き込み2011/07/25 16:03:04
[ 3974 ] Re: 3.2.1から3.5のバージョンアップの手動データ変換で「ファイルが破損している」で失敗する

一部間違いがありましたので訂正します。

> Tomcat単体での動作:3.2.1/3.5ともに動作する
は、「WEBサーバを使用していない 」ので記述は不要でした。すみません。
(データをコピーしない状態で動作するか、と勘違いしました)

投稿者TKY
最新書き込み2011/07/25 16:06:56
[ 4003 ] Re: 3.2.1から3.5のバージョンアップの手動データ変換で「ファイルが破損している」で失敗する

3.2.1から3.5のバージョンアップをしていますが、TKYさん同様に「ファイルが破損している」で失敗します。
データは多くないので手動データ変換ではないのですが、TKYさんと同じエラーが出力されてうまく動作しません。

GroupSession:3.2.1から3.5のバージョンアップ
OS:WinXP Pro SP2
http://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)
(以下略)
--------------------------------
「手動データ変換」ではないですが、状況が同じようでしたので、投稿させていただきました。

投稿者JF
最新書き込み2011/07/29 15:30:57
[ 4047 ] Re: 3.2.1から3.5のバージョンアップの手動データ変換で「ファイルが破損している」で失敗する

同様の現象を確認しました。
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

投稿者K
最新書き込み2011/08/18 00:53:31
[ 4054 ] Re: 3.2.1から3.5のバージョンアップの手動データ変換で「ファイルが破損している」で失敗する

私も同じ状態で3.2.1から3.5へのバージョンアップが出来なかったので、下記の方法にて gs2db.h2.dbのリカバリーを行いました。

OS ubuntu server 10.04 LTS
Apache Tomcat/6.0.24
Java 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
最新書き込み2011/08/20 14:59:57
[ 4058 ] Re: Re: 3.2.1から3.5のバージョンアップの手動データ変換で「ファイルが破損している」で失敗する

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ファイルが作成されます。

以上です。

投稿者TKY
最新書き込み2011/08/23 11:25:54
[ 4061 ] Re: 3.2.1から3.5のバージョンアップの手動データ変換で「ファイルが破損している」で失敗する

version3.21⇒3.51へのUPで私も失敗しました。

YKさんのスレッドにてWindowsサーバーでも無事アップ出来ました。
ありがとうございました

投稿者よしまさ
最新書き込み2011/08/23 15:34:37
[ 4062 ] Re: 3.2.1から3.5のバージョンアップの手動データ変換で「ファイルが破損している」で失敗する

version 3.5.1 (2011/08/23更新)
の 「既知の問題」
http://www.gs.sjts.co.jp/v3/seihin/bug_info.html
に2011/8/23 共通 - V3.5.0以降のバージョンアップに失敗する場合がある。 が追加されました。
次期バージョンでの修正に期待です。

投稿者K
最新書き込み2011/08/23 19:14:06
スレッドURLhttps://groupsession.jp/wbs/bulletin/bbs080.do?bbs010forumSid=0&threadSid=1336
 


TOP