spring - Hibernate Search..Access a Sealed WorkQueue which has not been sealed -


i trying use hibernate search new project. have hibernate , spring without jpa. m getting following exception when hibernate search tries update index file thru event listeners. have read around on issue nothing seems work me. appreciate help.

environment: spring 3.0.5 hibernate 3.5.4 hibernate search 3.2.1

exception:

transactionsy e org.springframework.transaction.support.transactionsynchronizationutils invokeaftercompletion transactionsynchronization.aftercompletion threw exception                                  org.hibernate.assertionfailure: exception releasing cache locks  @ org.hibernate.engine.actionqueue$aftertransactioncompletionprocessqueue.aftertransactioncompletion(actionqueue.java:584)  @ org.hibernate.engine.actionqueue.aftertransactioncompletion(actionqueue.java:204)  @ org.hibernate.impl.sessionimpl.aftertransactioncompletion(sessionimpl.java:594)  @ org.springframework.orm.hibernate3.springsessionsynchronization.aftercompletion(springsessionsynchronization.java:229)  @ org.springframework.transaction.support.transactionsynchronizationutils.invokeaftercompletion(transactionsynchronizationutils.java:168)  @ org.springframework.transaction.jta.jtaaftercompletionsynchronization.aftercompletion(jtaaftercompletionsynchronization.java:62)  @ com.ibm.ws.uow.componentcontextsynchronizationwrapper.aftercompletion(componentcontextsynchronizationwrapper.java:83)  @ com.ibm.tx.jta.registeredsyncs.coredistributeafter(registeredsyncs.java:357)  @ com.ibm.ws.tx.jta.registeredsyncs.distributeafter(registeredsyncs.java:317)  @ com.ibm.tx.jta.transactionimpl.distributeafter(transactionimpl.java:2933)  @ com.ibm.tx.jta.transactionimpl.postcompletion(transactionimpl.java:2892)  @ com.ibm.tx.jta.transactionimpl.postcompletion(transactionimpl.java:2805)  @ com.ibm.tx.jta.transactionimpl.commitxaresources(transactionimpl.java:1775)  @ com.ibm.ws.tx.jta.transactionimpl.stage1commitprocessing(transactionimpl.java:497)  @ com.ibm.tx.jta.transactionimpl.processcommit(transactionimpl.java:978)  @ com.ibm.tx.jta.transactionimpl.commit(transactionimpl.java:913)  @ com.ibm.ws.tx.jta.tranmanagerimpl.commit(tranmanagerimpl.java:369)  @ com.ibm.tx.jta.tranmanagerset.commit(tranmanagerset.java:161)  @ com.ibm.ws.uow.uowmanagerimpl.uowcommit(uowmanagerimpl.java:1172)  @ com.ibm.ws.uow.uowmanagerimpl.uowend(uowmanagerimpl.java:1142)  @ com.ibm.ws.uow.uowmanagerimpl.runundernewuow(uowmanagerimpl.java:1092)  @ com.ibm.ws.uow.uowmanagerimpl.rununderuow(uowmanagerimpl.java:626)  @ org.springframework.transaction.jta.websphereuowtransactionmanager.execute(websphereuowtransactionmanager.java:281)  @ org.springframework.transaction.interceptor.transactioninterceptor.invoke(transactioninterceptor.java:127)  @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:172)  @ org.springframework.aop.framework.cglib2aopproxy$dynamicadvisedinterceptor.intercept(cglib2aopproxy.java:621)  @ com.test.service.inventory.inventoryserviceimpl$$enhancerbycglib$$847cc0d8.updateinventoy(<generated>)  @ com.test.web.servlet.searchservlet.dopost(searchservlet.java:51)  @ com.test.web.servlet.searchservlet.doget(searchservlet.java:75)  @ javax.servlet.http.httpservlet.service(httpservlet.java:718)  @ javax.servlet.http.httpservlet.service(httpservlet.java:831)  @ com.ibm.ws.webcontainer.servlet.servletwrapper.service(servletwrapper.java:1449)  @ com.ibm.ws.webcontainer.servlet.servletwrapper.handlerequest(servletwrapper.java:790)  @ com.ibm.ws.webcontainer.servlet.servletwrapper.handlerequest(servletwrapper.java:443)  @ com.ibm.ws.webcontainer.servlet.servletwrapperimpl.handlerequest(servletwrapperimpl.java:175)  @ com.ibm.ws.webcontainer.servlet.cacheservletwrapper.handlerequest(cacheservletwrapper.java:91)  @ com.ibm.ws.webcontainer.webcontainer.handlerequest(webcontainer.java:859)  @ com.ibm.ws.webcontainer.wswebcontainer.handlerequest(wswebcontainer.java:1557)  @ com.ibm.ws.webcontainer.channel.wcchannellink.ready(wcchannellink.java:173)  @ com.ibm.ws.http.channel.inbound.impl.httpinboundlink.handlediscrimination(httpinboundlink.java:455)  @ com.ibm.ws.http.channel.inbound.impl.httpinboundlink.handlenewinformation(httpinboundlink.java:384)  @ com.ibm.ws.http.channel.inbound.impl.httpinboundlink.ready(httpinboundlink.java:272)  @ com.ibm.ws.tcp.channel.impl.newconnectioninitialreadcallback.sendtodiscriminators(newconnectioninitialreadcallback.java:214)  @ com.ibm.ws.tcp.channel.impl.newconnectioninitialreadcallback.complete(newconnectioninitialreadcallback.java:113)  @ com.ibm.ws.tcp.channel.impl.aioreadcompletionlistener.futurecompleted(aioreadcompletionlistener.java:165)  @ com.ibm.io.async.abstractasyncfuture.invokecallback(abstractasyncfuture.java:217)  @ com.ibm.io.async.asyncchannelfuture.firecompletionactions(asyncchannelfuture.java:161)  @ com.ibm.io.async.asyncfuture.completed(asyncfuture.java:138)  @ com.ibm.io.async.resulthandler.complete(resulthandler.java:202)  @ com.ibm.io.async.resulthandler.runeventprocessingloop(resulthandler.java:766)  @ com.ibm.io.async.resulthandler$2.run(resulthandler.java:896)  @ com.ibm.ws.util.threadpool$worker.run(threadpool.java:1527) caused by: org.hibernate.hibernateexception: error while indexing in hibernate search (ater transaction completion)  @ org.hibernate.search.backend.impl.eventsourcetransactioncontext$delegatetosynchronizationonaftertx.doaftertransactioncompletion(eventsourcetransactioncontext.java:179)  @ org.hibernate.engine.actionqueue$aftertransactioncompletionprocessqueue.aftertransactioncompletion(actionqueue.java:577)  ... 51 more caused by: org.hibernate.annotations.common.assertionfailure: access sealed workqueue has not been sealed  @ org.hibernate.search.backend.workqueue.getsealedqueue(workqueue.java:87)  @ org.hibernate.search.backend.impl.batchedqueueingprocessor.performworks(batchedqueueingprocessor.java:280)  @ org.hibernate.search.backend.impl.posttransactionworkqueuesynchronization.aftercompletion(posttransactionworkqueuesynchronization.java:96)  @ org.hibernate.search.backend.impl.eventsourcetransactioncontext$delegatetosynchronizationonaftertx.doaftertransactioncompletion(eventsourcetransactioncontext.java:176)  ... 52 more 

i know there fix similar problem [#hsearch-540] not seem working me.

here spring context:

<bean id="sessionfactory"     class="org.springframework.orm.hibernate3.annotation.annotationsessionfactorybean">     <property name="datasource" ref="datasource" />     <property name="packagestoscan" value="com.test.entity.inventory" />     <property name="hibernateproperties">         <props>             <prop key="hibernate.dialect">org.hibernate.dialect.oracle10gdialect</prop>             <prop key="hibernate.show_sql">true</prop>             <prop key="hibernate.format_sql">true</prop>             <prop key="hibernate.jdbc.batch_size">40</prop>             <!-- hibernate search properties -->             <prop key="hibernate.search.default.indexbase">/poc/index</prop>             <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.fsdirectoryprovider</prop>          </props>     </property> </bean>  <bean id="transactionmanager"     class="org.springframework.transaction.jta.websphereuowtransactionmanager" />  <tx:annotation-driven />  <bean id="inventorydao"     class="com.test.dao.inventory.inventorydao">     <property name="sessionfactory" ref="sessionfactory" /> </bean> 

here inventorydao method throwing exception.

       @transactional        public inventory updateinventoy(long id) {   inventory inv = null;                 session session = sessionfactory.getcurrentsession();   inv = (inventory) session.load(inventory.class, id);   inv.setprice(100000);   inv.setmodel("testing123");        return inv; } 

the database updated fine index not getting updated.

please help. in advance..

to keep index in sync database have wrap hibernate session in full-text session, so:

fulltextsession session = search.getfulltextsession(sessionfactory.getcurrentsession()); 

then use full-text session in place of wrapped session.


Comments

Popular posts from this blog

Add email recipient to all new Trac tickets -

400 Bad Request on Apache/PHP AddHandler wrapper -

php - Change action and image src url's with jQuery -