I'm having difficulties getting Experience Manager working on Tridion 2013 SP1. I have checked against the quick start documentation for Tridion and Experience manager, ensuring I've met each point.
When I view an editable page in XPM, make a change to an image on a component and save it, it reloads but then continually prompts me to Update Preview. When I check error logs, this is the error I get inside cd_core for the XPM webservice:
2014-07-23 12:59:54,357 ERROR SessionWrapperFactory - Exception while cleaning-up session data
com.tridion.broker.StorageException: javax.persistence.RollbackException: Error while committing the transaction
at com.tridion.storage.persistence.JPABaseDAO.remove(JPABaseDAO.java:157) ~[cd_datalayer.jar:na]
at com.tridion.storage.persistence.JPAItemDAO.remove(JPAItemDAO.java:246) ~[cd_datalayer.jar:na]
at com.tridion.storage.persistence.session.SessionWrapperFactory.deleteItemMeta(SessionWrapperFactory.java:184) ~[cd_session.jar:na]
at com.tridion.storage.persistence.session.SessionWrapperFactory.cleanupSessionData(SessionWrapperFactory.java:160) ~[cd_session.jar:na]
at com.tridion.storage.session.SessionManagerImpl.expireSession(SessionManagerImpl.java:414) [cd_session.jar:na]
at com.tridion.storage.session.SessionManagerImpl.performCleanup(SessionManagerImpl.java:230) [cd_session.jar:na]
at com.tridion.storage.persistence.session.SessionsCleanerMonitor.run(SessionsCleanerMonitor.java:52) [cd_session.jar:na]
at java.lang.Thread.run(Unknown Source) [na:1.7.0_40]
Caused by: javax.persistence.RollbackException: Error while committing the transaction
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:90) ~[hibernate-entitymanager.jar:4.0.1.Final]
at com.tridion.storage.persistence.JPABaseDAO.remove(JPABaseDAO.java:148) ~[cd_datalayer.jar:na]
... 7 common frames omitted
Caused by: javax.persistence.OptimisticLockException: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.tridion.storage.PageMeta#com.tridion.storage.ItemMetaPK@376ae]
at org.hibernate.ejb.AbstractEntityManagerImpl.wrapStaleStateException(AbstractEntityManagerImpl.java:1394) ~[hibernate-entitymanager.jar:4.0.1.Final]
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1308) ~[hibernate-entitymanager.jar:4.0.1.Final]
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1289) ~[hibernate-entitymanager.jar:4.0.1.Final]
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:78) ~[hibernate-entitymanager.jar:4.0.1.Final]
... 8 common frames omitted
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.tridion.storage.PageMeta#com.tridion.storage.ItemMetaPK@376ae]
at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:2359) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3127) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3327) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:91) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:272) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:264) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:191) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1081) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:315) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:73) ~[hibernate-entitymanager.jar:4.0.1.Final]
... 8 common frames omitted
- The cd_storage_conf.xml files for the staging site and preview web service BOTH have the separate session broker defined, enclosed in the wrapper tags
- No changes are ever seen in the session broker DB, e.g. preview_sessions
- No additional files for the edited page are created in the staging site directory
- The user for the session broker DB can create new records, I checked
- No other errors seem to appear, such as common culprits i.e. ADF
Point of interest: Textual changes DO save in XPM, DO publish straight out to staging but DON'T prompt an Update Preview; only (for example) image changes to a component cause the issue to occur. Wouldn't this indicate that it's a database issue, not file based?
I've run through this insightful article with no success: - http://albertromkes.com/2013/01/24/troubleshooting-the-sdl-tridion-experience-manager-with-session-preview/