05-31-2012 12:15 PM
06-01-2012 07:21 AM
06-01-2012 08:00 AM
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown.
at sun.reflect.GeneratedConstructorAccessor447.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.Util.getInstance(Util.java:384)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)
at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1663)
at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)
at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:211)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:139)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)
at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:472)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:410)
at org.alfresco.repo.node.index.AbstractReindexComponent$ReindexWorkerRunnable.run(AbstractReindexComponent.java:1008)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)06-04-2012 01:56 PM
06-05-2012 05:09 AM
06-05-2012 12:23 PM
public class ForceReindexNodes extends ActionExecuterAbstractBase {
public static final Logger LOG = Logger.getLogger(ForceReindexNodes.class);
public static final String NAME = "reindex-node";
private ServiceRegistry serviceRegistry;
private BehaviourFilter behaviourFilter;
private int totalBatchNodes = 50;
private boolean removeAspect = true;
public void setServiceRegistry(ServiceRegistry serviceRegistry) {
this.serviceRegistry = serviceRegistry;
}
public void setBehaviourFilter(BehaviourFilter behaviourFilter) {
this.behaviourFilter = behaviourFilter;
}
public void setTotalBatchNodes(int totalBatchNodes) {
this.totalBatchNodes = totalBatchNodes;
}
public void setRemoveAspect(boolean removeAspect) {
this.removeAspect = removeAspect;
}
@Override
protected void executeImpl(Action action, NodeRef actionedUponNodeRef) {
iterateChildren(actionedUponNodeRef);
}
protected void iterateChildren(NodeRef nodeRef){
NodeService nodeService = serviceRegistry.getNodeService();
DictionaryService dictionaryService = serviceRegistry.getDictionaryService();
//We launch transactions not bigger than X
List<ChildAssociationRef> childAssoc = nodeService.getChildAssocs(nodeRef);
List<NodeRef> batch = new ArrayList<NodeRef>();
NodeRef node = null;
QName type = null;
int count = 0;
Iterator<ChildAssociationRef> iter = childAssoc.iterator();
while(iter.hasNext()){
count ++;
if(count == totalBatchNodes){
addAspect(batch);
batch = new ArrayList<NodeRef>();
count = 0;
}
node = iter.next().getChildRef();
type = nodeService.getType(node);
if(dictionaryService.isSubClass(type, ContentModel.TYPE_FOLDER)){
iterateChildren(node);
}
try{
batch.add(node);
}catch (Throwable e) {
LOG.debug("Problem while trying to assign aspects to the nodes", e);
continue;
}
}
try{
batch.add(node);
}catch (Throwable e) {
LOG.debug("Problem assigning aspect", e);
}
}
private void addAspect(final List<NodeRef> list){
RetryingTransactionCallback<Void> txnFile = new RetryingTransactionCallback<Void>() {
@Override
public Void execute() throws Throwable {
behaviourFilter.disableBehaviour(ContentModel.ASPECT_AUDITABLE);
NodeService nodeService = serviceRegistry.getNodeService();
Iterator<NodeRef> iter = list.iterator();
NodeRef nodeRef = null;
LOG.info("Ejecutando el proceso a " + list.size() + " nodos");
while(iter.hasNext()){
nodeRef = iter.next();
nodeService.addAspect(nodeRef, MyModel.ASPECT_REINDEX_NODE, null);
if(removeAspect) nodeService.removeAspect(nodeRef, MyModel.ASPECT_REINDEX_NODE);
}
return null;
}
};
TransactionService transactionService = serviceRegistry.getTransactionService();
transactionService.getRetryingTransactionHelper().doInTransaction(txnFile, false, true);
}
@Override
protected void addParameterDefinitions(List<ParameterDefinition> paramList) {
// No parameters needed.
}
}
06-06-2012 08:58 AM
06-06-2012 09:26 AM
06-21-2012 05:19 AM
06-21-2012 07:39 AM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.