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

瀧下浩 takishita @ 4dd.co.jp
2006年 8月 30日 (水) 09:44:00 JST


wataka 様

瀧下です

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

ありがとうございます。

1点だけ気になるのですが、
現在 TECHSCORE にて公開している Tuigwaa の資料は、0.8ベースのもので、
Tomcat + Tuigwaa0.8 の環境が構築されているのではないかと思います。
従って、再現手順 1. で利用されているサンプルアーカイブも 0.8 用を
ご利用いただく必要があるかと思います。

うまくいけば明日、TECHSCOREの資料も Tuigwaa0.9 に対応できると思います
ので、今後はそちらをご利用いただければと思います。

以上よろしくお願いします。

> 
> 手元で再現する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 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 メーリングリストの案内