Problem starting Template Rendering Listener and fetching documents

Hi team,

I have detected a problem starting Nuxeo. With a 100M documents instance, the deployment is very slow, and looking for the problem, I found this source code into

It runs after listening for aboutToCreate event.

public void run() {
   StringBuilder sb = new StringBuilder("select * from Document where ");
   sb.append(" <> 'none'");
   DocumentModelList docs = session.query(sb.toString());
   for (DocumentModel doc : docs) {
      TemplateSourceDocument tmpl = doc.getAdapter(TemplateSourceDocument.class);
      if (tmpl != null) {
         for (String type : tmpl.getForcedTypes()) {
             if (mapping.containsKey(type)) {

This NXQL against MongoDB has a serious problem, even having indexes:

select * from Document where tmpl:forcedTypes/* <> 'none'

Regards, VS!

0 votes

2 answers



Hi Gregory,

thanks for your answer, but it is not the problem. Still MongoDB is tuned, the query:

select * from Document where tmpl:forcedTypes/* <> 'none'

return all documents because it is not transformed fine by MongoDBQueryBuilder. After query execution, you can find the "bucle" for all returned docs. This is the problem. The best solution for that is change the query to:

select * from Document where tmpl:forcedTypes is not null and tmpl:forcedTypes/* <> 'none'

Regards, VS!

0 votes


Performances are really related to the architecture you've set up. I encourage you to watch to check your Nuxeo infrastructure, and in particuly:

  • Tune your MongoDB DB
  • Dedicate some workers and/or Nuxeo Stream to handle bulk rendering


-1 votes