2014-11-07 2 views
0

У меня проблема с логикой меток. Я использую XCC/J api. У меня транзакция с несколькими статутами, и я делаю что-то вроде ниже.Marklogic XCC не может совершать транзакции без активной транзакции

Session sess = ContentSource.newSession(); 
sess.setTransactionMode(TransactionMode.UPDATE) 
....Perform some queries..... 
session.commit(); 

Но я получаю IllegalStateException не может совершить без активной транзакции

+0

Отредактируйте образец кода, чтобы он стал тестовым примером, который воспроизводит проблему. Как и он не будет анализировать: переменная 'sess' изменяется на' session'. – mblakele

ответ

0

От Java Application Developer's Guide:

Чтобы начать транзакцию и получить объект транзакции, вызовите openTransaction() метод на объект DatabaseClient (поскольку транзакция контролирует, если сделаны изменения базы данных). Чтобы вызвать openTransaction(), приложение должно пройти аутентификацию как rest-writer или rest-admin.

Transaction transaction = client.openTransaction(); 

Похоже, вы не имеете, что в примере кода, так что я думаю, вы просто пропустили шаг запуска транзакции.

+0

Дох, извините. Просто перечитайте и увидите, что вы используете XCC. Что я написал выше для API клиента Java. –

0

Возможно, у вас есть другой фиксатор или откат в другом месте вашего кода, который вызывается перед этим фиксацией.

Возможно, у вас открыто несколько сеансов, и тот, который вы пытаетесь совершить, не является транзакцией с несколькими операциями.

Также стоит проверить наличие обновлений для баннеров XCC и сервера.

Смежные вопросы