データソースを使用してOracleデータベースに接続し、データを挿入しています。以下は私の休止状態の設定エントリです:
<hibernate-configuration>
<session-factory>
<property name="connection.datasource">jdbc/LOCAL_ORACLE</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
</session-factory>
</hibernate-configuration>
以下は、データを保存するコードスニペットです。
final Configuration cfg = new Configuration().addResource("SampleTable.hbm.xml").configure();
final ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
sessionFactory = cfg.buildSessionFactory(serviceRegistry);
session = sessionFactory.openSession();
txn = session.beginTransaction();
session.save(cs90spTransDetails);
txn.commit();
私が直面している問題は、txn.commit()が休止状態と呼ばれるときに以下のエラーをスローすることです。
[4/24/12 19:25:13:675 IST] 0000001a SystemErr R Caused by: org.hibernate.TransactionException: unable to commit against JDBC connection
[4/24/12 19:25:13:675 IST] 0000001a SystemErr R at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doCommit(JdbcTransaction.java:116)
[4/24/12 19:25:13:675 IST] 0000001a SystemErr R at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:178)
[4/24/12 19:25:13:675 IST] 0000001a SystemErr R ... 13 more
[4/24/12 19:25:13:675 IST] 0000001a SystemErr R Caused by: java.sql.SQLException: DSRA9350E: Operation Connection.commit is not allowed during a global transaction.
[4/24/12 19:25:13:675 IST] 0000001a SystemErr R at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.commit(WSJdbcConnection.java:1064)
[4/24/12 19:25:13:675 IST] 0000001a SystemErr R at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doCommit(JdbcTransaction.java:112)
注:上記のコードは、hibernate.connection.driver_classとhibernate.connection.urlを使用してデータベースに接続する場合に正常に機能します。データは問題なくデータベースに保存されます。
私は何か間違ったことをしていると確信していますが、それは理解できません。誰かが私が欠けているものを教えてもらえますか?
ありがとうございました。ジェイチャンドラン。