- - PR -
JOTMを使ってロールバックできない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-05-19 20:52
TOMCAT 5.0.25
MYSQL 4.0.24 JOTM 2.0.10 以上の構成で、DBの分散トランザクションの管理をしようとしていますが、トランザクションをロールバックしても、ロールバックされずコミットされてしまいます。正常にロールバックさせるにはどうしたらよいのでしょうか。 設定、ソースは以下のサイト通りにやりました。(サイトではPostgreSqlで説明していますが) http://www.stackasterisk.jp/tech/java/jta01_02.jsp ここで「ut.rollback()」をすれば、INSERTは行われずロールバックされるとありますが、コミットされてしまいます。 オートコミットをオフにして、Connectionのロールバックをした場合は正常にロールバックされます。 Mysqlの設定はほぼデフォルトのままです。 JOTM本家のサイトどおりにもやってみましたが、だめでした。 http://jotm.objectweb.org/doc/index.html 何か思い当たるところがありましたら、なにとぞご教授のほどよろしくお願いいたします。 |
|
投稿日時: 2005-05-19 21:14
MySQLをデフォルト、ということはMyISAM型のテーブルになっていると思います。MyISAMでは
トランザクションをサポートできないので、InnoDBもしくはBDB型にしましょう。 http://dev.mysql.com/doc/mysql/ja/table-types.html |
|
投稿日時: 2005-05-20 10:54
テーブルタイプはInnoDB型になっています。
JOTMのトランザクションマネージャを使わないロールバックは正常に動作しておりますので、Mysql側は問題ないかと思っているのですが。 他に何か思い当たるところがあればよろしくお願いします。 |
|
投稿日時: 2005-05-20 14:00
自己解決しました。
DBの接続リソースの設定で <parameter> <name>factory</name> <value>org.objectweb.jndi.DataSourceFactory</value> </parameter> の部分を追加していませんでした。 さらに、JOTM 2.0.10では 「javax.naming.NamingException: Could not create resource factory instance, null」というエラーが出るようになったので、JOTM 1.5.3に落としたところ、正常に動作するようになりました。 |
1