- PR -

connectionがUserTransactionに結びつかない。

投稿者投稿内容
せぶん
会議室デビュー日: 2005/01/25
投稿数: 9
投稿日時: 2005-02-03 22:56
instjdbc.sqlの配置場所を変えたらコマンドは正常に動作しました。
ですが、現象は変わりありません。

まだほかに作業が必要なのでしょうか?
pascal
常連さん
会議室デビュー日: 2004/04/29
投稿数: 29
お住まい・勤務地: 神奈川県
投稿日時: 2005-02-03 23:53
こんにちは。

http://edocs.beasys.co.jp/e-docs/wls/docs81/jdbc_drivers/mssqlserver.html#1056938
にこんなことが書いてありましたが、実行しましたか?

# Microsoft SQL Server データベースの DTC (distributed transaction coordinator) サービスを開始します。
# Microsoft SQL Server Enterprise Manager を使用して、データベース サーバで SQL Server ログインを作成します。次のロールを使用して、新しいログインにサーバ上のデータベースへのアクセス権を付与します。

* public
* db_owner
* db_accessadmin
* db_securityadmin
* db_ddladmin
* db_datareader
* db_datawriter

新しいユーザーを作るかどうかは別にして、JavaからアクセスするためのSQLサーバーのユーザーに、上記のロールを与える、という意味だと思いますが。
せぶん
会議室デビュー日: 2005/01/25
投稿数: 9
投稿日時: 2005-02-04 13:33
こんにちは。
レスありがとうございます。
instjdbc.sqlを実行しロールも追加しました。

tomcatでは現象は変化がなかったのですが(JTA使用でcommitもrollbackもできない)、

jbossでは、userTransactionを作成後に
connectionのsetAutoCommit()を呼び出すとのエラーが発生し以下のメッセージを出力しました。
「You cannot set autocommit during a managed transaction!」
トランザクションが管理されているので、autoCommit()を設定できないと言われているので、JTAが正常に動作している事が確認できた様な気がします。

ただ、userTransactionのstatusを見ると
STATUS_NOTRANSACTION:6 とSTATUS_ACTIOVE:0 にしか変化していなく、
コミットやロールバックのstatus値にならない事が気になります。

普通、コミットやロールバックしたらstatusは変化しますよね?
今まで確認した事がなかったのですが、実際はどうなのでしょうか?
確認された方居ましたら、レス頂けるとありがたいです。

スキルアップ/キャリアアップ(JOB@IT)