2010-02-19 6 views
3

Nous utilisons des virtualiseurs avec JasperReports 3.7.0 pour éviter de manquer de mémoire avec de grosses requêtes. J'ai trouvé un helpful article sur ce sujet, et il y a une brève description des virtualiseurs dans The Ultimate Guide to JasperReports, mais ce n'est qu'un début. J'essaie de déterminer quel virtualiseur est idéal, et en avoir choisi un, comment régler les paramètres de configuration. Quelqu'un a-t-il de la sagesse à offrir sur ce sujet?comment sélectionner et configurer un virtualiseur JasperReports?

Walter Gillett

Répondre

4

Le JRFileVirtualizer est l'original, mais il est surtout une preuve de concept (écrit alors que j'évaluait JR, les développeurs ont JR fixe vers le haut aussi). Il crée un fichier distinct pour chaque page virtualisée, ce qui peut entraîner la création de nombreux fichiers temporaires.

Je recommande d'utiliser JRSwapFileVirtualizer car il crée un seul fichier pour le rapport.

JRSwapFileVirtualizer virtualizer = null; 
try { 
    JRSwapFile swapFile = new JRSwapFile("directory", 1024, 100); 
    virtualizer = new JRSwapFileVirtualizer(50, swapFile, true); 
    params.put(JRParameter.REPORT_VIRTUALIZER, virtualizer); 
    ... 
    JasperPrinter printer = JasperFillManager.fillReport(report, params, dataSource); 
    ... 
} 
finally { 
    if (virtualizer != null) virtualizer.cleanup(); 
} 

Cela rendra le système supprime le fichier d'échange quand il est fait avec le rapport, et il utilisera le virtualizer de tenir des rapports avec plus de 50 pages.

Le JRGzipVirtualizer était un autre p.o.c. virtualiseur destiné aux systèmes sans accès disque. Les objets de la page de rapport se compressent assez bien, de sorte que vous pouvez toujours faire de gros rapports si vous avez une taille de mémoire de tas décente.

Questions connexes