GroupSession
質問いたします。ユーザーよりスケジュールの削除ができないとの問い合わせがあり、該当データを確認してみたところ、スケジュール上からは[スケジュール]は他のユーザに編集又は削除されたため[変更]できません。とのメッセージが表示されました。アプリケーションログを当たってみると、バッチジョブ中にエラーが発生していました。(ログはレスにて)元データを修正しようと、DBAプラグインを利用してみたところ、次のような現象となっていました。1.スケジュール(SCD_DATA)のselect文(無指定)では該当するレコードが表示される。2.(1.)にてSCD_SIDがわかったので、where句で指定するとHITしない。3.(2.)の状態があるためか、update文を実行しても0件更新となる。4.insert文(SCD_SID指定)にて作成すると(上書きをイメージ)、select文では1件HITするようになる。5.(4.)の状態でスケジュールをみると、スケジュールが2件登録されている。6.delete文でinsertしたSCD_SIDを指定して削除すると(1.)の状態に戻る以上のような状態で、ゴミデータを削除することはできますでしょうか?宜しくお願いします。GS 2.3.1OS Win XP Pro SP3Java 5.0 update 17tomcat 5.5.23(単体で動作)web連携 無し
ログを貼り付けます。2009-06-29 20:00:15,984 ERROR jp.groupsession.v2.batch.HourJob:53 - org.h2.jdbc.JdbcSQLException: ファイル名を D:\gs2data\db\gs2db\gs2db.lobs.db\57.t33443.lob.db (not found) から D:\gs2data\db\gs2db\gs2db.lobs.db\57.temp.lob.db に変更中にエラーが発生しましたError while renaming file D:\gs2data\db\gs2db\gs2db.lobs.db\57.t33443.lob.db (not found) to D:\gs2data\db\gs2db\gs2db.lobs.db\57.temp.lob.db; SQL statement:COMMIT [90024-114] at org.h2.message.Message.getSQLException(Message.java:105) at org.h2.message.Message.getSQLException(Message.java:116) at org.h2.store.fs.FileSystemDisk.rename(FileSystemDisk.java:74) at org.h2.util.FileUtils.rename(FileUtils.java:252) at org.h2.value.ValueLob.renameFile(ValueLob.java:812) at org.h2.value.ValueLob.unlink(ValueLob.java:478) at org.h2.engine.Session.commit(Session.java:479) at org.h2.command.dml.TransactionCommand.update(TransactionCommand.java:118) at org.h2.command.CommandContainer.update(CommandContainer.java:72) at org.h2.command.Command.executeUpdate(Command.java:208) at org.h2.jdbc.JdbcConnection.commit(JdbcConnection.java:404) at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:238) at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:199) at jp.groupsession.v2.rss.RssBiz.updateFeedData(RssBiz.java:483) at jp.groupsession.v2.rss.RssBatchListenerImpl.doOneHourBatch(RssBatchListenerImpl.java:54) at jp.groupsession.v2.batch.HourJob.execute(HourJob.java:44) at jp.groupsession.v2.cmn.quartz.AbstractJob.execute(AbstractJob.java:101) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
なんとか解決したので自己レスです。1.readcsvを使ってデータの吸い出し2.TRUNCATE TABLEで全データ削除3.writecsvでデータの書き戻し-------------------一旦復旧するも、CheckSumエラーが発生-------------------4.下記URLを参照にデータベースを復旧参照URLhttp://www.gs.sjts.co.jp/wbs/bulletin/bbs080.do?bbs010forumSid=4&threadSid=251お騒がせいたしました。
同様の現象が再発しました。今回はTOMCATを停止後、indexの削除、TOMCATの再起動で復旧しました。最近頻繁にindexが壊れるきがするのですが。。。何かあるのでしょうか。同様の現象が発生する方はいらっしゃいませんか?
私の登録したスケジュールが同じ症状で削除変更できなくなっています。2.4.1へアップデートする前に登録したものですが、以前のもの全てではなく、ある特定のスケジュールにのみ症状が現れています。特に重要なものではなかったので、放置していますが、一応ご報告までに。GS 2.4.1OS Win XP Home SP3Java 5.0tomcat 5.5web連携 無し尚、スケジュールは「共有ユーザーのみに公開」で利用しています。
indexとDB本体に差異があると、このような現象がでるようです。Tomcatを停止した後、「gs2db.index.db」を削除し、Tomcatを起動させるとindexが再生成されるので、不具合が解消するかもしれません。
私もバージョンアップ後、同様の現象に悩まされましたがkon様の言う通りindexを削除するする事で復旧できました。kon様情報提供ありがとう御座います。
11/2(月)GS2に起動不具合が発生したので、TOMCAT停止-index削除-TOMCAT起動を試みましたが、今度はOutofMemoryで全く立ち上がらなくなってしまいました。前日のデータにバックして起動すると、DBテーブルにアクセスできなくなってました。テーブル名: RSS_INFOMSELECT、DELETEともにSQLエラーが返り、アクセス不能のため、仕方なく初期化しました。「truncate table RSS_INFOM」RSS_INFOMを初期化後は、いつも通り稼働しています。ログを見ても何が原因だったのか掴めていない状況です。データ異常が多い気がするのですが、似たような症状はでていないのでしょうか。自分の使い方がまずいのか、信頼性に欠けるのか…。(GS2.5.1/XP SP3/Tomcat5.5.23/JDK1.5.0_17/連携なし)
TOP