[tuigwaa-user:166] Re: テーブル定義変更時の例外エラー

wataka wataka0101 @ yahoo.co.jp
2006年 8月 29日 (火) 19:47:58 JST


瀧下さま。

wataka@早速のご回答ありがとうございます。
なるほど。復旧が難しいのですね...

(私の中で)最短で再現する手順をご報告いたします。
#もっと短い手順があるのかもしれませんがご容赦下さい。

手元で再現するTomcatアーカイブ + 再現手順がお役に立てばと思います。

■Tomcatのダウンロード
※techscoreのTuigwaaページで入手したTomcat+Tuigwaa0.9セットアップ済みのもの。
https://miracle.tripodworks.co.jp:443/cgi-bin/nbox.cgi?page=DiskLinkDown&reginfo=20060819102852924334

■環境
 ・Tomcatは上記環境
 ・JDK1.4.2_12
 ・WindowsXP Pro SP2

■再現手順

Tomcat起動後、http://localhost:8080/tuigwaa/ にアクセス
(tuigwaa/tuigwaa)

1.サンプルアーカイブ『sample09.tgwar.zip』のインポート
入手元:http://tuigwaa.sandbox.seasar.org/sample/sample09.tgwar

2.サイトの作成を行う
サイト名:テストサイト
サイトID:testsite
※セキュリティ⇒制限つきのサイト⇒adminにチェック
 ↑関係があるかは分かりません。

3.テーブルを作成する。
テーブル名:テスト
  ───┬────┬────┬──────
 表示名 │タイプ  │必須    │オプション
  ───┼────┼────┼──────
 文字   │文字列  │        │通常の文字列
 日付   │日付    │        │1 年前 から 1 年後 まで 
[作成]ボタンを押下するとテーブルが出来る。
 
4.作成後、テーブル一覧⇒テスト⇒編集を選択し、以下の項目を末尾に追加。
  ───┬────┬────┬──────
 表示名 │タイプ  │必須    │オプション
  ───┼────┼────┼──────
 整数   │整数    │        │

5.[作成]ボタンを押下したタイミングで例外発生。

少しでも解析のお役に立てばと思います。
#私の環境以外でも再現することをお祈っていますm(_ _)m


瀧下浩 <takishita @ 4dd.co.jp> wrote:

> wakata 様
> 
> 瀧下と申します。
> 
> 実は開発サイドでも同様の現象に出会っており、
> 設定ファイルやDBの定義等で不整合が起きてしまっている
> だろうと考えているのですが、未だ原因が特定できておりません。
> 
> この状態に陥ると、復旧は難しいのが現状でして、
> まことに申し訳ないのですが、手っ取り早い解決策としては、
> サイトの再構築になるかと思います。
> 
> もしサイトを新規に構築して、再現する方法が判明しましたら
> 是非お教えいただければと思います。
> 
> 
> wataka wrote:
> > watakaと申します。
> > 
> > 新規にテーブルを作成した後、テーブルに項目を付け忘れたので、
> > 追加したのですが、[作成]ボタンを押したあとに、エラーになってしまいました。
> > 
> > エラー後は、閲覧もできない(同じエラー画面になる)状態となります。
> > #Tomcatを再起動すると使えるようになりますが、変更は反映されていないようです。
> > 
> > 解決策がありましたらご教授いただけませんでしょうか?
> > 
> > ■環境
> > ・Tomcat5
> > ・JDK1.4.2_12
> > ・WindowsXP Pro
> > 
> > ■作成したテーブル
> > テーブル名:テスト
> > ───┬────┬────┬──────
> > 表示名│タイプ  │必須    │オプション
> > ───┼────┼────┼──────
> > 文字  │文字列  │        │通常の文字列
> > 日付  │日付    │        │1 年前 から 1 年後 まで 
> > 
> > 
> > ■追加したい項目
> > ───┬────┬────┬──────
> > 表示名│タイプ  │必須    │オプション
> > ───┼────┼────┼──────
> > 数値  │数値    │        │
> > 
> > 
> > ■エラー画面
> > -----
> > Tuigwaa 上でアプリケーションエラーが発生しました。
> > Tuigwaa 上でアプリケーションエラーが発生しました。 しばらくたってからアクセスして下さい.....
> > --
> > 
> > ■スタックトレース(Tomcatのログ)
> > ---
> > 2006-08-29 18:20:24 StandardContext[/tuigwaa]Application Error Detected and Forwarded
> > org.seasar.framework.exception.SSQLException: [ESSR0072]SQLで例外(SQL=[alter table testsite.tgw_entity_ add column tgw_attr_1 date], ErrorCode=-58, SQLState=s0021)が発生しました
> > 	at org.seasar.extension.dbcp.impl.ConnectionWrapperImpl$PreparedStatementWrapper.wrapException(ConnectionWrapperImpl.java:555)
> > 	at org.seasar.extension.dbcp.impl.ConnectionWrapperImpl$PreparedStatementWrapper.wrapException(ConnectionWrapperImpl.java:550)
> > 	at org.seasar.extension.dbcp.impl.ConnectionWrapperImpl$PreparedStatementWrapper.executeUpdate(ConnectionWrapperImpl.java:574)
> > 	at org.seasar.tuigwaa.database.DynaDatabaseServiceImpl.executeSQL(DynaDatabaseServiceImpl.java:181)
> > 	at org.seasar.tuigwaa.database.DynaDatabaseServiceImpl.alterTable(DynaDatabaseServiceImpl.java:147)
> > 	at org.seasar.tuigwaa.database.DynaDatabaseServiceImpl$$EnhancedByS2AOP$$12943ac.alterTable$$invokeSuperMethod$$(DynaDatabaseServiceImpl$$EnhancedByS2AOP$$12943ac.java)
> > 	at org.seasar.tuigwaa.database.DynaDatabaseServiceImpl$$EnhancedByS2AOP$$12943ac$$MethodInvocation$$alterTable0.proceed(MethodInvocationClassGenerator.java)
> > 	at org.seasar.extension.tx.RequiredInterceptor.invoke(RequiredInterceptor.java:40)
> > 	at org.seasar.tuigwaa.database.DynaDatabaseServiceImpl$$EnhancedByS2AOP$$12943ac$$MethodInvocation$$alterTable0.proceed(MethodInvocationClassGenerator.java)
> > 	at org.seasar.tuigwaa.database.DynaDatabaseServiceImpl$$EnhancedByS2AOP$$12943ac.alterTable(DynaDatabaseServiceImpl$$EnhancedByS2AOP$$12943ac.java)
> > 	at org.seasar.tuigwaa.model.ModelServiceImpl.alterEntity(ModelServiceImpl.java:185)
> > 	at org.seasar.tuigwaa.controller.EntityAction.doSave(EntityAction.java:127)
> > 	at org.seasar.tuigwaa.util.ajax.AbstractRowSetAction.saveRowSet(AbstractRowSetAction.java:62)
> > 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > 	at java.lang.reflect.Method.invoke(Method.java:585)
> > 	at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
> > 	at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
> > 	at org.apache.struts.actions.MappingDispatchAction.execute(MappingDispatchAction.java:169)
> > 	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
> > 	at org.seasar.struts.processor.S2TilesRequestProcessor.processActionPerform(S2TilesRequestProcessor.java:122)
> > 	at org.seasar.struts.processor.AcceptorImpl.process(AcceptorImpl.java:126)
> > 	at org.seasar.struts.processor.S2TilesRequestProcessor.process(S2TilesRequestProcessor.java:61)
> > 	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
> > 	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
> > 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> > 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> > 	at org.seasar.tuigwaa.util.filter.TgwFilter.doFilter(TgwFilter.java:67)
> > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> > 	at org.seasar.tuigwaa.util.filter.EncodingFilter.doFilter(EncodingFilter.java:65)
> > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> > 	at org.seasar.tuigwaa.util.filter.ForwardFilter.doFilter(ForwardFilter.java:83)
> > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> > 	at org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:45)
> > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> > 	at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:60)
> > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> > 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> > 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> > 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> > 	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> > 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> > 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> > 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
> > 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> > 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> > 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> > 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> > 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
> > 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> > 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> > 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> > 	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> > 	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> > 	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> > 	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> > 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
> > 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
> > 	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
> > 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
> > 	at java.lang.Thread.run(Thread.java:595)
> > Caused by: java.sql.SQLException: Column constraints are not acceptable in statement [alter table testsite.tgw_entity_ add column tgw_attr_1 date]
> > 	at org.hsqldb.jdbc.Util.throwError(Unknown Source)
> > 	at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown Source)
> > 	at org.seasar.extension.dbcp.impl.ConnectionWrapperImpl$PreparedStatementWrapper.executeUpdate(ConnectionWrapperImpl.java:572)
> > 	... 66 more
> > 
> > -- http://d.hatena.ne.jp/wataka/
> > --------------------------------------
> > For All Sports Lovers!
> > http://pr.mail.yahoo.co.jp/yells/
> > _______________________________________________
> > tuigwaa-user mailing list
> > tuigwaa-user @ ml.seasar.org
> > https://www.seasar.org/mailman/listinfo/tuigwaa-user
> > 
> > 
> 
> 
> -- 
> --------------------------------------------------------
> 株式会社四次元データ(Four-Dimensional Data, Inc.)
> 瀧下 浩
>  E-Mail  : takishita @ 4dd.co.jp
>  TEL     : 050-5527-7945
> --------------------------------------------------------
> _______________________________________________
> tuigwaa-user mailing list
> tuigwaa-user @ ml.seasar.org
> https://www.seasar.org/mailman/listinfo/tuigwaa-user


-- http://d.hatena.ne.jp/wataka/
--------------------------------------
For All Sports Lovers!
http://pr.mail.yahoo.co.jp/yells/


tuigwaa-user メーリングリストの案内