[Seasar-user:21271] Re: Oracle のコンテキスト索引をon commitで設定すると コミット済み例外が発生する。

鈴木寛之 [E-MAIL ADDRESS DELETED]
2012年 2月 7日 (火) 18:39:45 JST


小林 様

いつもお世話になっております。
鈴木寛之です。

期間が空いてしまい、すみません。

JDBCのAPIを直接利用しても、同様にトランザクションがコミットできない
例外が発生しました。
※コミット時に例外が発生します。

とりあえず、リリースが近いため、Oracleでのtoken表更新に関しては
on Commitを使用せず、ジョブなどで定期的に更新するように対応します。

ご回答ありがとうございました。

鈴木寛之 <[E-MAIL ADDRESS DELETED]> wrote:

> 小林 様
> 
> いつもお世話になっております。
> 鈴木寛之です。
> 
> ご回答ありがとうございます。
> 下記の件、了解です。
> 
> まだ解決しておりませんので
> JDBCのAPIで試してみます。
> 
> Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:
> 
> > 小林 (koichik) です.
> > 
> > まだ解決していなければ、問題を切り分けるためにひとまず
> > JDBC の API を直接使って Insert〜Commit を試して頂けますか?
> > 
> > 
> > Date: Thu, 08 Dec 2011 13:43:45 +0900
> > From: 鈴木寛之 <[E-MAIL ADDRESS DELETED]>
> > Subject: [Seasar-user:21207] Oracle のコンテキスト索引をon commitで設定すると コミット済み例外が発生する。
> > 
> > > いつもお世話になっております。
> > > 鈴木寛之と申します。
> > > 
> > > ■知りたいこと
> > >  Oracle textのトークン表をon commitのタイミングで更新させたいのですが
> > > どのようにすれば、実現可能でしょうか。どなたかご存知の方が
> > > いらっしゃれば、教えていただければ、幸いです。
> > > ※現在、以下の状況で例外発生しており、うまくトークン表が更新できていません。
> > > 
> > > ■状況
> > > 	以下の作業を行った場合に、ココミット処理で例外が発生する。
> > >     1)コンテキスト索引を作成
> > >     -----------------------------------------------------
> > >     -- 全文検索権限付与
> > >     grant ctxapp to test_user;
> > >     -- レクサーを設定
> > >     execute ctx_ddl.create_preference('test_jvl','JAPANESE_VGRAM_LEXER');
> > >     -- コンテキスト索引を設定
> > >     create index test_idx on TEST_TABLE(FULL_TEXT_WORD) indextype is ctxsys.context parameters ('lexer test_jvl SYNC(ON COMMIT)');
> > >     -----------------------------------------------------
> > > 
> > >     2)アクションで、TEST_TABLEに対しinsert文を発行
> > >     ※FULL_TEXT_WORDカラムは任意の文字('AAA'など)
> > > 
> > > 	3)コミット処理で例外発生
> > > 
> > > ■環境
> > >     WindowsServer2008
> > > 	Oracle 11g
> > >     JDK1.6.0_22-b04
> > >     Apache2.2
> > >     Tomcat6.0
> > >     s2-extention-2.4.41
> > >     s2-framework-2.4.41
> > >     s2-tiger-2.4.41
> > > 	sa-struts-1.0.4
> > > 
> > > ■ログ
> > > org.seasar.framework.exception.InvocationTargetRuntimeException: [ESSR0043]XXXX.action.cmm.cmm03.CMM0306Actionが呼び出した対象が不正です。理由はorg.seasar.framework.exception.SRollbackException: [ESSR0303]トランザクション([FormatId=4360, GlobalId=1323316112333/148, BranchId=])をコミットできませんでした
> > > 	at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:105)
> > > 	at org.seasar.struts.action.ActionWrapper.execute(ActionWrapper.java:139)
> > > 	at XXXX.common.struts.action.XXXXActionWrapper.execute(XXXXActionWrapper.java:83)
> > > 	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
> > > 	at org.seasar.struts.action.S2RequestProcessor.process(S2RequestProcessor.java:132)
> > > 	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:637)
> > > 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > 	at org.seasar.extension.filter.RequestDumpFilter.doFilter(RequestDumpFilter.java:127)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > 	at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > 	at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:71)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > 	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
> > > 	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
> > > 	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
> > > 	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
> > > 	at org.seasar.struts.filter.RoutingFilter.forward(RoutingFilter.java:219)
> > > 	at org.seasar.struts.filter.RoutingFilter.doFilter(RoutingFilter.java:99)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > 	at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > 	at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:71)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > 	at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> > > 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> > > 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
> > > 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> > > 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> > > 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> > > 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> > > 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
> > > 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> > > 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> > > 	at java.lang.Thread.run(Unknown Source)
> > > Caused by: org.seasar.framework.exception.SRollbackException: [ESSR0303]トランザクション([FormatId=4360, GlobalId=1323316112333/148, BranchId=])をコミットできませんでした
> > > 	at org.seasar.extension.jta.TransactionImpl.commit(TransactionImpl.java:222)
> > > 	at org.seasar.extension.jta.AbstractTransactionManagerImpl.commit(AbstractTransactionManagerImpl.java:67)
> > > 	at org.seasar.extension.jta.UserTransactionImpl.commit(UserTransactionImpl.java:55)
> > > 	at org.seasar.extension.tx.adapter.JTATransactionManagerAdapter.end(JTATransactionManagerAdapter.java:173)
> > > 	at org.seasar.extension.tx.adapter.JTATransactionManagerAdapter.required(JTATransactionManagerAdapter.java:68)
> > > 	at org.seasar.extension.tx.RequiredInterceptor.invoke(RequiredInterceptor.java:50)
> > > 	at XXXX.action.cmm.cmm03.CMM0306Action$$EnhancedByS2AOP$$80656c$$MethodInvocation$$entry4.proceed(MethodInvocationClassGenerator.java)
> > > 	at org.seasar.framework.aop.interceptors.ThrowsInterceptor.invoke(ThrowsInterceptor.java:79)
> > > 	at XXXX.action.cmm.cmm03.CMM0306Action$$EnhancedByS2AOP$$80656c$$MethodInvocation$$entry4.proceed(MethodInvocationClassGenerator.java)
> > > 	at org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:73)
> > > 	at XXXX.action.cmm.cmm03.CMM0306Action$$EnhancedByS2AOP$$80656c$$MethodInvocation$$entry4.proceed(MethodInvocationClassGenerator.java)
> > > 	at XXXX.action.cmm.cmm03.CMM0306Action$$EnhancedByS2AOP$$80656c.entry(CMM0306Action$$EnhancedByS2AOP$$80656c.java)
> > > 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > > 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> > > 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> > > 	at java.lang.reflect.Method.invoke(Unknown Source)
> > > 	at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:96)
> > > 
> > > ■例外発生後のデータ、もしくは、調査から分かる推測
> > >  [データからの推測]
> > >  ・INSERT文自体の登録は正常に行われ、コミット済みとなっているようです。
> > >  ・Oracle textのトークン表は更新されていませんでした。
> > > 
> > >  [別作業での推測]
> > >  ・コンテキスト索引のタイミングをon commitではなく、
> > >   時間間隔(一定期間毎にトークン表を更新)に設定すると
> > >   例外は発生しませんでした。
> > >  ・SQL Developerなど別アプリケーションを使用して、INSERT文を発行すると
> > >   コミットを実行したタイミングで、トークン表が更新されました。
> > > 
> > > 以上、宜しくお願い致します。
> > > 
> > > /~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~
> > > name:鈴木寛之
> > > mail:[E-MAIL ADDRESS DELETED]
> > > /~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~
> > > 
> > > _______________________________________________
> > > Seasar-user mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > 
> > --
> > {
> >   name: "Koichi Kobayashi",
> >   mail: "[E-MAIL ADDRESS DELETED]",
> >   blog: "http://d.hatena.ne.jp/koichik/",
> >   twitter: "@koichik"
> >  }
> > 
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> > 
> > 
> > 
> > -----
> > No virus found in this message.
> > Checked by AVG - www.avg.com
> > Version: 2012.0.1890 / Virus Database: 2108/4689 - Release Date: 12/18/11
> 
> 
> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
>  被災地東北復興支援ショッピングサイト 「つながる東北ネットショップ」
>  http://shop-tsunagaru.net/
>  「買うのは復興への思いです」 東北の商品購入で被災地をご支援下さい。
> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
> /~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~
> 株式会社アイソリューションズ
>   第一エスアイ開発部
>     鈴木寛之
>        [E-MAIL ADDRESS DELETED]
> 
> 〒984-0051
> 仙台市若林区新寺1丁目3-45 AI.Premium 4F
> TEL:022-781-9047  FAX:022-292-7661
> 
> ★Felicaで簡単楽々集客 モバイルCRMの決定版
>   Build@Mobile www.isolutions.co.jp/mobilecrm/index.html
> 
> ★店舗へ集客もできるネットショップシステムの決定版
>   Build@WebShop  www.isolutions.co.jp/shouten/index.html
> 
> ★簡単EC ポッキリ価格
>    楽らく商店小売部 www.isolutions.co.jp/service/kouribu.html
> 
> ★IT企業のホスティング・ハウジングサービス
>  つながるNET http://www2.tunagaru.net/
> 
> ★リマインダーメールサービス Infomail.CC
>   www.infomail.cc 無料!!
> 
> *-------------------------------------------------------------------------*
> このメールに心当たりがない方は、誤ってメールが送信された可能性があるため、 
> 
> お手数ですが返信願います。
> また、このメールに弊社機密情報が含まれている場合がございますので、速やかに 
> 
> 削除していただきますよう、よろしくお願いいたします。
> *-------------------------------------------------------------------------*
> /~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 
> 
> 
> -----
> No virus found in this message.
> Checked by AVG - www.avg.com
> Version: 2012.0.1890 / Virus Database: 2108/4689 - Release Date: 12/18/11


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 被災地東北復興支援ショッピングサイト 「つながる東北ネットショップ」
 http://shop-tsunagaru.net/
 「買うのは復興への思いです」 東北の商品購入で被災地をご支援下さい。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~
株式会社アイソリューションズ
  第一エスアイ開発部
    鈴木寛之
       [E-MAIL ADDRESS DELETED]

〒984-0051
仙台市若林区新寺1丁目3-45 AI.Premium 4F
TEL:022-781-9047  FAX:022-292-7661

★Felicaで簡単楽々集客 モバイルCRMの決定版
  Build@Mobile www.isolutions.co.jp/mobilecrm/index.html

★店舗へ集客もできるネットショップシステムの決定版
  Build@WebShop  www.isolutions.co.jp/shouten/index.html

★簡単EC ポッキリ価格
   楽らく商店小売部 www.isolutions.co.jp/service/kouribu.html

★IT企業のホスティング・ハウジングサービス
 つながるNET http://www2.tunagaru.net/

★リマインダーメールサービス Infomail.CC
  www.infomail.cc 無料!!

*-------------------------------------------------------------------------*
このメールに心当たりがない方は、誤ってメールが送信された可能性があるため、 

お手数ですが返信願います。
また、このメールに弊社機密情報が含まれている場合がございますので、速やかに 

削除していただきますよう、よろしくお願いいたします。
*-------------------------------------------------------------------------*
/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~


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