2010-08-16 16 views
0

Inventaire Application intégrée dans un modèle à quatre couches comprenant: une interface utilisateur graphique basée sur des applets; couche intermédiaire propriétaire (application Web Tomcat); La logique métier dans Oracle 10g procédures stockées. Données stockées dans Oracle 10g. Problème: La couche intermédiaire est conçue pour la communication transactionnelle et non pour déplacer de grands ensembles de données (plus de 10 000 lignes) vers l'interface utilisateur ou les rapports. L'application ne délimite pas la taille des résultats de recherche, ce qui signifie que les utilisateurs peuvent effectuer des recherches qui renvoient des ensembles de données très volumineux au serveur frontal. De telles demandes amènent la couche intermédiaire à répondre lentement à cette requête ainsi qu'à toute autre requête simultanée, atteignant les limites de mémoire de segment supérieur de la machine virtuelle Java et, dans le pire des cas, entraînant le plantage de la couche intermédiaire.Comment puis-je surmonter la lenteur de la réponse ou la limite de mémoire avec de grands ensembles de données sur l'application Web Tomcat?

Toute suggestion/aide/information sur la meilleure solution serait grandement appréciée. Merci beaucoup.

Répondre

1

Vous devez limiter la quantité de données qui reviennent du serveur. La vérité est qu'il n'y a aucune valeur à présenter 10 000 lignes à un utilisateur à la fois (personne ne peut le digérer). Divisez-le en plus petits ensembles de disons 100 et fournissez des mécanismes de filtrage pour que l'utilisateur puisse trouver des données pertinentes.
Pour les rapports, vous devrez effectuer des requêtes complexes qui génèrent les rapports ad hoc les plus courants. Vous pouvez générer des rapports quotidiens (ou d'autres rapports périodiques) hors ligne via un mécanisme de traitement par lots afin que l'utilisateur puisse les télécharger une fois qu'ils sont prêts, et de cette façon vous n'affectez pas votre traitement transactionnel. Ceux-ci seraient générés par un autre mécanisme (en dehors de votre serveur d'application) et écrits dans un format de fichier Excel, PDF ou autre pour l'utilisateur à télécharger via un lien