Драйвер Informix XA в игре!Рамочное приложение - PullRequest
1 голос
/ 04 января 2011

Я пытаюсь использовать базу данных Informix с Play!Рамочное приложение.Я новичок в Informix.

На моем компьютере с Windows установлено Informix 11.70, и я запускаю Play 1.1.

В игре!Вы можете указать свои соединения с БД следующим образом:

db.url=jdbc:informix-sqli://localhost:9088/mydatabase:INFORMIXSERVER=ol_informix1170
db.driver=com.informix.jdbc.IfxDriver
db.user=informix
db.pass=password

Я получаю исключение при запуске Play!app:

An unexpected error occured caused by exception PersistenceException: org.hibernate.TransactionException: JDBC begin failed:

play.exceptions.UnexpectedException: Unexpected Error
        at play.Invoker$Invocation.onException(Invoker.java:153)
        at play.Invoker$Invocation.run(Invoker.java:195)
        at Invocation.HTTP Request(Play!)
Caused by: javax.persistence.PersistenceException: org.hibernate.TransactionException: JDBC begin failed:
        at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1235)
        at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1168)
        at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:1245)
        at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:63)
        at play.db.jpa.JPAPlugin.startTx(JPAPlugin.java:321)
        at play.db.jpa.JPAPlugin.beforeInvocation(JPAPlugin.java:289)
        at play.Invoker$Invocation.before(Invoker.java:116)
        at play.Invoker$Invocation.run(Invoker.java:186)
        ... 1 more
Caused by: org.hibernate.TransactionException: JDBC begin failed:
        at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:96)
        at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1463)
        at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:60)
        ... 5 more
Caused by: java.sql.SQLException: Transactions not supported
        at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:413)
        at com.informix.jdbc.IfxSqliConnect.setAutoCommit(IfxSqliConnect.java:2189)
        at com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:881)
        at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:91)
        ... 7 more

Я думаю, потому что я пытаюсь выполнить свой запрос в транзакции, но я не указал драйвер XA.Только com.informix.jdbc.IfxDriver.Однако я не могу найти драйвер XA для Informix.

Как мне настроить Play!приложение для использования Informix?

спасибо

1 Ответ

3 голосов
/ 04 января 2011

Проблема в том, что вы неправильно настроили Informix.Ваша база данных не настроена на ведение журнала транзакций, поэтому она не поддерживает транзакции.На самом деле не Hibernate или Play!проблема.Итак, воссоздайте свой стол с чем-то вроде:

CREATE DATABASE mydatabase WITH LOG;

http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.ddi.doc/ddi73.htm

...