[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®info=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 メーリングリストの案内