We have ClearspaceX v1.10.4 in a clustered (6 app) enviornment. When we have a need to edit the contents of a thread subject or body, it sometimes takes up to 12 hours to see the change on our site.
Why does it take so long for an edit to appear on the site? Can we make this happen more quickly by changing certain settings?
Hi Ryan,
What exactly do you mean by editing a thread? Is this something you're experiencing with every user, or something that happens from an administrative perspective?
Regards,
Karl
We do not allow our users to Edit a thread once it has been created. However, for our moderator/admin role, we do have specific people who can Create a thread and Edit it as well. There are occasional times in which they have to "fix" or "modify" the subject or body of that particular thread. The change that they make, is not displayed on the site for about 12 -24 hours.
So, if we have to "fix" a piece of content in that thread, it is troubling that it takes that long to show the updated content.
Hi Ryan,
I can understand your frustration with this, obviously something is very wrong. A few more questions for you:
Are you editing the posts through the UI?
Are you seeing this behavior with any other content, or when content is created new?
Does this happen 100% of the time a thread is edited, or only sporadically?
Have you tried to clear caches cluster wide to see if that has any affect?
I haven't seen anything like this before, so I'm going to continue to dig around for answers on my end. Please get back to me when you get the chance. Thanks!
Regards,
Karl
This permission is only for our admin/moderators as they have access to edit and delete and move threads.
They use the regular UI to make the edit. So it is the same application interface that all users use.
This delay in seeing the update occurs when editing the Thread only (the one that they originally edited too). It takes 4 hours ( or sometimes the next morning) before we will see the change.
When editing a Reply, the change is effective almost immediately. So editing of a Reply and seeing the change is not an issue.
Obviously, we do not want to clear the entire CS cache when this occurs. (CSX 1.10.4)
Hi Ryan,
I set up a 1.10.4 cluster on my end to see if I could reproduce the behavior you are seeing. Here is what I tried:
1. Create a thread with a user on Node1
2. Log in as Admin on Node2
3. Edit thread subject and body as Admin on Node2
4. Refresh thread of Node1
Is this an accurate case to reproduce the problem? In my case the update was instantaneous, but obviously I can't reproduce your environment on my desktop.
A few more questions for you:
- What database and appserver are you running? Any external caching servers?
- Is Page Caching enabled?
- Is the Short Term Query Cache enabled?
- Do you have any customizations in place that may affect this functionality?
For now I recommend turning off Short Term Query caching, if it is on, and trying again.
Regards,
Karl
What database and appserver are you running? Oracle/Oracle AS.
Any external caching servers?
Yes but we are not caching the clearspace pages.
- Is Page Caching enabled?
It is disabled.
- Is the Short Term Query Cache enabled?
Yes, 5 seconds.
- Do you have any customizations in place that may affect this functionality?
Not for this problem.
Also...
Keep in mind that we have this problem only when editing the main thread. The change take hours to see on the site.
Editing a reply and seeing the change on the site works instantly.
Hi Ryan,
Still looking into your issue. Have you observed anything unusual in your logs that might be related to this behavior?
Regards,
Karl
Hi everybody,
I've been looking through the clearspace logs and noticed the following reoccurring entries.
An excerpt of errors reported from /jive_clearspacex_war_1_2_0/jiveHome/logs/jive.error.log:
2008.11.07 07:59:23 [error] Search failure - lucene error parsing query: enter keyword(s)
2008.11.07 07:59:59 [error] Error while counting subscriptions.
java.sql.SQLException: ORA-00942: table or view does not exist
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:185)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_describe(T4CPreparedStatement.java:503)
at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:965)
at oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:535)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1051)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2984)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3026)
at oracle_jdbc_driver_T4CPreparedStatement_Proxy.executeQuery()
at com.harpo.community.clearspace.util.DbSubscriptionsManager.getSubscriptionsNumber(DbSubscriptionsManager.java:49)
at com.harpo.community.clearspace.actions.SubscriptionsAction.execute(SubscriptionsAction.java:21)
at sun.reflect.GeneratedMethodAccessor1914.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
....
2008.11.07 08:01:11 [error] WARNING: failed to obtain next ID block for type 35805
2008.11.07 08:01:11 [error] WARNING: failed to obtain next ID block for type 35805
2008.11.07 08:01:12 [error] WARNING: failed to obtain next ID block for type 16185
2008.11.07 08:01:12 [error] WARNING: failed to obtain next ID block for type 16185
2008.11.07 08:01:12 [error] WARNING: failed to obtain next ID block for type 37186
2008.11.07 08:01:12 [error] WARNING: failed to obtain next ID block for type 37186
2008.11.07 08:02:40 [error] WARNING: failed to obtain next ID block for type 20234
2008.11.07 08:02:40 [error] WARNING: failed to obtain next ID block for type 20234
2008.11.07 08:02:40 [error] WARNING: failed to obtain next ID block for type 45651
2008.11.07 08:02:40 [error] WARNING: failed to obtain next ID block for type 45651
2008.11.07 08:02:40 [error] WARNING: failed to obtain next ID block for type 15798
2008.11.07 08:02:40 [error] WARNING: failed to obtain next ID block for type 15798
2008.11.07 08:03:03 [error] WARNING: failed to obtain next ID block for type 44337
2008.11.07 08:03:03 [error] WARNING: failed to obtain next ID block for type 44337
2008.11.07 08:03:22 [error]
com.jivesoftware.base.UseNotFoundException
at com.jivesoftware.base.ldap.LdapUser.loadUser(LdapUser.java:159)
at com.jivesoftware.base.ldap.LdapUserManager.getUser(LdapUserManager.java:67)
at com.jivesoftware.community.webservices.server.WSUtil.checkAuthorization(WSUtil.java:999)
at com.jivesoftware.community.webservices.server.xfire.PermissionHandler.invoke(PermissionHandler.java:109)
....
2008.11.07 08:08:09 [error] Plugin resource cannot be read or does not exist
java.io.IOException: Plugin resource cannot be read or does not exist
at com.jivesoftware.community.web.resource.impl.ResourceManagrImpl.loadPluginResource(ResourceManagerImpl.java:186)
at com.jivesoftware.community.web.servlet.ResourceLoaderServlet.getFileBytesStream(ResourceLoaderServlet.java:469)
at com.jivesoftware.community.web.servlet.ResourceLoaderServlet.doGet(ResourceLoaderServlet.java:149)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:189)
at com.jivesoftware.community.web.webwork.JiveFilterDispatcher.doFilter(JiveFilterDispatcher.java:53)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
at com.jivesoftware.community.web.JiveActionContextCleanUp.doFilter(JiveActionContextCleanUp.java:46)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
at org.directwebremoting.servlet.DwrWebContextFilter.doFilter(DwrWebContextFilter.java:91)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
at com.jivesoftware.base.plugin.PluginFilter.doFilter(PluginFilter.java:77)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
at com.jivesoftware.base.database.dao.DAOContextCleanUpFilter.doFilter(DAOContextCleanUpFilter.java:32)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:620)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:369)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:865)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:447)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:302)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:190)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:619)
Hi,
The errors you are seeing do not appear to have any relation to this case. If you are seeing other problems on your site which may be related to these issues, please feel free to open them in another case.
If you are still experiencing the problem described in this thread, please attach your log files for analysis.
Regards,
Karl
At the time we made the update to the thread body, this is the log. So apparently there are no "errors" occuring. But like I said in the original issue, updating a thread body can take many hours to be updated, whereas, if we update a reply...it is instant.
We have a 6 clustered environment v1.10.4 CSX.
Obviously, there must be something that is not triggered correctly or something that runs in the background which does not run often enough.
Hi Ryan,
It would be helpful to me if you could provide your full log files anyway. I suspect that they won't help much, but it is a start.
One thing that could help would be to check the database after editing a message to see that the update has been committed. All messages are stored in the jivemessage table in the database. I would like you to make an edit to a message, and then check the database to see that it is being modified. This should help us determine when the hangup is occurring. My expectation is that the database will be updated immediately but the hangup appears some time later when the message is retrieved from the DB.
Regards,
Karl
Hi Ryan,
Any update here?
Regards,
Karl
Karl
This is still open.
What query should be used to see the thread (edit) function that we want to examine in the database>
We do have the property: Short Term Query Cache, enabled and set to 5 seconds. Should we change this and would it affect this synchonization with the thread?
Is there a specific cache that could be manually reset to force the cache to go back to the database for the new data?
Thanks