Jump to content
We've recently updated our Privacy Statement, available here ×

gdmoreno

Members
  • Posts

    114
  • Joined

  • Last visited

 Content Type 

Profiles

Forum

Events

Featured Visualizations

Knowledge Base

Documentation (PDF Downloads)

Blog

Documentation (Test Area)

Documentation

Dr. Jaspersoft Webinar Series

Downloads

Everything posted by gdmoreno

  1. Hi clshafer - you can find the documentation on setting up an input control in the user guide, which you can download from here - http://jasperforge.org/espdocs/docsbrowse.php?id=87&type=docs&group_id=112&fid=365. It's a PDF, there's some instructions on page 49.
  2. It sounds like you have installed Tomcat as a service, and are trying to modify settings using the GUI - that's the right way. When the GUI shows up, what do you see in the "Java" tab?
  3. Welcome! I see an Out of Memory error, so I would deal with that problem first. Since it's happening at the server level, try adding more memory to Tomcat's JVM - start with 2 or 4 GB. Then re-start your server, and see if you get that "out of memory" error again.
  4. You can set the compatibility mode on iReport to match the version of JasperReports that's running on your server. So in your example, you would set the iReport compabitility to JasperReports 3.0.0, so that it matches your server. To set the compatibility, go to "Tools -> Options -> iReport -> General -> Compatibility" and choose the version you need from the drop-down list.
  5. Hi, vineetkmodi : try setting your appServerDir variable like this (I use the '\' character and escape it as well). appServerDir = C:\\Program Files\\jasperreports-server-4.7\\buildomatic\\apache-tomcat
  6. Your driver class is right, and so is the JDBC URL (the one with the : character - jdbc:mysql://localhost:3306/stat_development) . The next thing I would check is whether or not you have the MySQL driver deployed in the right place. If you're using Tomcat, check the [TOMCAT_HOME]/lib directory, there should be a file called mysql-connector.jar (something like that, it might also contain a version number in the filename). If it's not there, download the thin driver JAR file that works with your version of MySQL, and copy that JAR file to [TOMCAT_HOME]/lib. Then re-start the server, and test again. If you've done this already, then I would suggest looking at the log file and seeing if there's a clue in there. The log file is in /jasperserver/WEB-INF/logs/jasperserver.log
  7. Hi, there could be a few things going on here, so let's do it step-by-step. The first thing I would suggest is to create a datasource straight in the server itself, and then test the connection. If it passes, then you know that there's nothing wrong with the connection from the server to the database. If the datasource you create works, then at that point try changing the datasource for that report to the one you just saved in the repository.
  8. I think you're on the right track. If you have low concurrency, then the sizing you're describing should be fine. I would allocate as much memory as you can to your application server's JVM; I would start by setting your heap size at 8 GB and setting your PermGen space to 256 MB. You'll want to optimize the server startup scripts and configuration files to tune garbage collection settings and the size of your database connection pools.
  9. You should look into using subreports and subdatasets, both of which allow you use result sets from different queries.
  10. Hi, iReport isn't for ad hoc reporting, you can only do that with the commercial version of JasperReports Server. You can't schedule reports in iReport, but you can schedule reports using the server, and that functionality is available in both the commercial and community editions of JRS.
  11. I'm thinking it shouldn't matter, since all you're deploying to the server is a JRXML file. iReport 4.6.0 sets you up with Java 1.6 by default, but you can change the JDK it uses by changing a configuration file. Post Edited by gdmoreno at 07/30/2012 11:47
  12. IntroductionAs you plan your Jaspersoft project, you may wonder what the best way to start is, and how you can lower your overall project risk. You may wonder what kind of experience and training your team will need, and what kind of development tasks are the most high-risk. We take a look at these problems, and ways to solve them. The solutions we present here are based on our customers' experience, and the ways in which they successfully tackled common problems. We hope it will help your project succeed also. We first talk about the great Jaspersoft resources you have access to, and in the second half of the document, we talk about specific items to make your project a success. [toc]The Jaspersoft resources at your disposalAs your project advances, you may need some extra help to get you past normal project roadblocks. Don't forget that you have the Support team, training resources, Customer wiki articles, and a Customer Success team that can help you with your projects. The Support TeamYou file tickets with the Support team when you're having problems with the product in terms of installation, usage, configuration, and diagnosing problems. They are a great resource for getting you through your issues if you have questions or just in need of help. For a complete description of what support covers and doesn't, please see our online resource - http://www.jaspersoft.com/policies-and-procedures. Training ServicesWe have found that our customers gain the most out of their Jaspersoft investment by enrolling in training - they are more self-sufficient, and most of all, get their projects done faster. For most of clients, we recommend the 4-day Technical Training, which covers how to use our entire product suite - JasperReports Server, the Jaspersoft Studio and Jasper ETL. For a full listing of what's available through training, please check http://www.jaspersoft.com/training. Customer SuccessOur team of consultants can help you get through tough technical problems, and can reduce your project risk and overall development costs. By engaging them, you"˜ll have expert technical help as well as someone who can give you general guidance and share their experience with the products. They can do your customizations, report development and security implementation using Jaspersoft best practices, showing you how to do it and how to maintain it. To find out more about Customer Success, please check http://www.jaspersoft.com/professional-services. Online resourcesThere are also online resources that you should know about: The Jaspersoft Community Site and the knowledge search available through the Customer Support Portal. Our Community Site, contains documentation, Wiki articles that deal with specific technical issues, community questions and answers, and an exchange of extensions that may add additional capabilities to your Jaspersoft implementation. The Community Wiki contains how-to articles with step-by-step instructions, performance and troubleshooting tips, as well as solutions to common problems. The knowledge search tool allows you to search through all our documentation, community blogs, and community site articles and questions, and is frequently the fastest way to get the answers to your questions. It's available on your support page as soon as you've logged into the Customer Support portal. You can also access the Dr, Jaspersoft resources on YouTube for video lessons. Making your project a successHere are some items that you'll need to address as you start your project. If you are able to tackle these problems up-front, you'll increase your chances of success. Defining your project scope and timelinesIt's worth remembering the basics here: your project scope and project timelines. Depending on the technical complexity, some items can have a higher level of project risk. Check the table below. If you have a lot of high-complexity items, you might consider engaging our Customer Sucess team, who can put a solution in place for your project. ItemRiskDescriptionUI - developing custom themesLowYou'll need to a UI developer comfortable with CSS files.UI - adding or modifying JSPsLowYou'll need a JSP developer.Developing canned reportsLow/MediumYou'll need someone who can use Studio and knows Java and SQL. JasperSoft provides a 2 days iReports Designer training to make anyone feel comfortable using iReport Designer.Developing domains for ad hocLow/MediumYou'll need someone who knows how to use the server product, who understands databases and the meaning of the data in business terms. Understanding and being able to write SQL queries is not mandatory but would help a lot.Developing security files for domainsMediumYou'll need a Java developer to implement security rules. The process is well-established, but requires technical skill.Develop OLAP cubesMedium/HighRequires someone who knows the database, knows about optimizing database for use with OLAP cubes, and has some familiarity with MDX (the query language for OLAP cubes)Setting up Single Sign On (SSO) - LDAPMediumThis requires using our Authentication Cookbook guide and someone comfortable with application servers and Java development. If they follow the instructions in the cookbook, they should be fine.Setting up SSO - CASMediumSame comment as aboveSetting up SSO - other technologyHighThis will require custom software development including Java coding.Modifying server functionality (NOT using platform API's)HighThis will require custom software development, and be performed by the CS team or by someone who is very familiar with the product and with Java. This type of development is high-risk, since there is no guarantee that it won't break if you upgrade to a later version of JasperReports Server.Modifying server functionality (using platform API's)HighThis will require custom software development, and be performed by the PS team or by someone who is very familiar with the product and with Java. This type of development is less risky than not using platform API's, but still requires someone expert enough to know how to use them.Developing custom datasourcesHighThis will require custom software development, and is for an expert Java developer or can be performed by our CS team.Integration with web servicesMediumRequires someone experienced in developing applications with web services, but not especially hard. We have documentation on using Web Services with JSON data adapter.Integration with IframesLowThis can be done by a developer.Integrating JasperReports Server with non-Java resourcesMedium/HighExamples of this would be integrating JRS with Microsoft's .NET environment, PHP, Ruby on Rails, etc. This will vary in complexity, but if you are willing to use web services with an installed JasperReports Server, you can minimize the risk.ETL JobsMedium/HighA customer's ETL needs will vary depending on how complex the data integration tasks are. The greater the number of datasources you wish to integrate, the higher the complexity. There is also the inherent ramp-up time you will spend in training yourself to use the Jaspersoft ETL tool.Putting together a teamDepending on your project size and complexity you will need to staff your project with: A project manager - this person will manage the timelines, scope and teamA Java developer - this person will become the JRS expert, and we should focus on enabling this person on the technical materialA business analyst - Often the project manager doubles in this role. This person knows the business domain, knows what the reports should look like, and whether or not the data behind the reports make sense.A database administrator - while not fulltime on a project, a Java developer will often need a DBA to help tune SQL queries and to optimize the database. They're very handy when dealing with performance issues and ETL.A system administrator - often the Java developer doubles in this role. This person can do administrative tasks such as restarting servers, deploying JRS, deploying custom classes, modifying scripts for tuning, exporting and importing repositories, among others.Your team should be comfortable with Java technologies, and be able to work with databases. We also highly recommend that your team enroll in one or more of our many product training courses, which will teach or improve your knowledge of our product suite. ContactsFor more details, check the Support portal at http://support.jaspersoft.com The Support team can also be contacted by email: support@jaspersoft.com If you have other questions or concerns please contact your sales representative.
  13. You could package those files up in a JAR file, and then put that JAR file in WEB-INF/lib.
  14. I think you're on the right track. It could be something like your parameter value is incorrect, I don't know. I would try checking your ireport logs for the query that it's trying to execute. Here's ho to enable the logs in iReport: - add the log4j JAR to the iReport classpath (Tools -> Options -> Ireport -> Classpath) - Modify the ireport.conf file and add this bit of text to the default_options variable at the end: "-J-Dlog4j.configuration=file:/C:/TEMP/2012-07-25/log4j.properties". This tells ireport to use the log settings in that file. You'll have to change the directory to something that makes sense for your system. - Create the log4j.properties file, and enable the DEBUG setting for the class that builds the SQL query. Take what you see below, and copy it as-is. You may want to change the location of the iReport.log file. log4j.logger.net.sf.jasperreports.engine.query.JRJdbcQueryExecuter=DEBUG,fileout log4j.appender.fileout=org.apache.log4j.RollingFileAppender log4j.appender.fileout.File=C:\\TEMP\\2012-07-25\\iReport.log log4j.appender.fileout.MaxFileSize=1024KB log4j.appender.fileout.MaxBackupIndex=1 log4j.appender.fileout.layout=org.apache.log4j.PatternLayout log4j.appender.fileout.layout.conversionPattern=%d{ABSOLUTE} %5p %c{1},%t:%L - %m%n - restart your ireport - Run your report - Check the logs in the ireport.log file, where it may give you some clues.
  15. Try the code below instead - the getYear() method unfortunately returns year minus 1900, which is why you're seeing 112 for 2012. So you have to 1900 back to the value that getYear() returns. The other solution would be to put the date in its own text field (instead of mixing it with String values like you're currently doing), and then set the pattern to MM/dd/yyyy, and the pattern would then take hold. Code:"Agreement will commence on <b>"+ $F{EXPECTEDSTARTDATE}.getMonth()+ "/" + $F{EXPECTEDSTARTDATE}.getDay()+ "/" + $F{EXPECTEDSTARTDATE}.getYear()+ "</b> and end on <b>"+ $F{EXPECTEDSTARTDATE}.getMonth()+ "/" + $F{EXPECTEDSTARTDATE}.getDay()+ "/" + String.valueOf(1900 + $F{EXPECTEDSTARTDATE}.getYear())+ "</b>."
  16. IntroductionViewing call traces is an important debugging activity, which allows the developer to see exactly what methods the applications is calling, in what order, and how much time it takes to execute. This is useful for looking analyzing bottlenecks, and for verifying that classes that you expected to run actually did. While there are many tools out in the market that do this, Visual VM stands out because it's part of the JDK itself; no extra expense, and no extra downloads are necessary. Enable JMX in the Tomcat startup scriptTo be able to run Visual VM, you'll need to modify the Tomcat startup scripts, and activate JMX. To activate JMX, open up the setenv.bat or setenv.sh file in the [TOMCAT_HOME]/bin directory and add the lines below. I did this on a Windows machine; you'll have to substitute REM for # in a Unix-based system. REM For enabling JMX (for using with Visual VM)set CATALINA_OPTS=-Dcom.sun.management.jmxremoteset CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.port=8999set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.ssl=falseset CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=localhost[/code]The "8999" could be any open port you want; that value is just an example. When you are done testing with Visual VM, I suggest you add a "REM" (the Windows command for commenting out a line) at the start of each line. That way you can come back later, remove the REM's, and test again. Use the Visual VM tool in the JDKBrowse to where you've installed the JDK, and in the bin directory, you should the VisualVM executable. It's a graphical desktop application. On Windows environments, it appears at "jvisualvm.exe"; in Unix-based systems, it appears simply as "jvisualvm." Go ahead and double-click on it. Make sure to add the "VisualVM-Sampler" pluginThis plugin will record the application call trace, so you've got to install it if it's not already there. To check the installed plug-ins, choose "Tools -> Plugins" from the menu, and a new pop-up will appear. Check the VisualVM-Sample choice, and click "Install." This will take through the installation process, eventually asking you to re-start the application. Once you restart, you'll see that the "VisualVM-Sampler" plugin now appears under the "Installed" tab. Running Visual VMNow that you have the plugin installed, it's time to connect Visual VM with Tomcat. At this point, you should have already restarted Tomcat with the updated setenv file. Choose "File -> Add JMX Connection", and fill in Connection details. If you're running this test locally, you'll put something like "localhost:8999", where the "8999" is the port you defined in the setenv script earlier. After you click "OK", your connection will appear in the "Applications" bar on the left, like below: Double-click on the entry, and you'll get a new set of options: Click on the "Sampler" tab, if you haven't done so already, and now you're ready to record the application call traces. Click on the CPU button, and you should now see call activity, like below: At this point, go ahead and do the application activity you were interested in, whether it's executing reports, running ad hoc, or some area of the application. This will generate the call trace you were interested in testing, which will result in something like what you see below: When you're done, hit the "Stop" button. Then click the "Snapshot" button, which will create a new tab, like what you see below: This will give you a complete call trace, starting at the individual thread level, which you investigate by drilling down into. Or, if you want to check a particular class, you can search for it by doing a Ctrl-F and filling in the name of the class. The result will be the location in the call tree where that class gets executed.
  17. Instead of creating an images folder here: C:\Program Files\jasperreports-server-cp-4.5.0\apache-tomcat\webapps\jasperserver\WEB-INF\images try creating one here: C:\Program Files\jasperreports-server-cp-4.5.0\apache-tomcat\webapps\jasperserver\images I'm not sure that putting image files in the WEB-INF directory is that great; it's better to put images in their own folder outside of WEB-INF. Later on, you could even externalize the whole thing by having a web server (instead of Tomcat) serve up the static images, and it would be easy to put in place, if you've got your image files organized in one place. To then reference the image in that folder in your report, you'll need to use iReport. Use the "Image" element from the palette, and drag it over to the place in the report where you want the image to appear. A pop-up will show up, but just hit cancel. Then select the image element, and in the properties box, for the image expression, paste in the URL of where your image is located (make sure to put it in double quotes: "http://localhost/jasperserver/images/example.gif").
  18. The "Cannot create PoolableConnectionFactory" could be due to a lot of different things, some things to check are: - is your repository database running? Maybe the database that Tomcat is trying to connect to isn't running. Check the context.xml file for the jasperserver application, which contains the database connection information, and see if you can connect to the database via some other tool. - if the database is running, maybe there's something else that blocking connections to the database - like a firewall, for instance. In which case you would have to allow traffic on the database port. P.S.: How did you install jasperserver? Are you having these problems on your own machine?
  19. There's currently no way to do what you're suggesting. You'd have to modify the underlying the data in the database via some other process.
  20. Note: Tomcat 7 is no longer supported in our latest version 8.x. Please check the link here for similar functionality on Tomcat 9. Apache Tomcat 9 documentation on the ExpiresFilter IntroductionIn a previous article, I talked about setting up a cache filter in Tomcat 6. The purpose of that filter was to add header information to static files so that they don't expire. This lightens the load on the Tomcat server, since the browser will first check its cache before requesting another static file. In Tomcat 7, this cache filtering functionality has been added to Tomcat itself, so all we have to do is reference the right classes in the web application's web.xml file. Note regarding JRS 6.x, Cache Filter is built directly in JRS in recent versions, see http://community.jaspersoft.com/wiki/setting-cache-filter-tomcat-or-jboss-static-files#Cache_Control_filter_in_6.x ProcessShutdown the Tomcat serverWe first need to shutdown Tomcat before making these modifications. Tomcat will not take these modifications into account until the server restarts. Modify the web application's web.xml fileYou'll need to add these snippets to the {TOMCAT_HOME}/webapps/jasperserver-pro/WEB-INF/web.xml, which enable the ExpiresFilter. The filter mapping makes sure that every request gets evaluated as a potential candidate for the cache filter. The class org.apache.catalina.filters.ExpiresFilter is in the catalina.jar file under {TOMCAT_HOME}/lib. <filter> <filter-name>ExpiresFilter</filter-name> <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class> <init-param> <param-name>ExpiresByType image</param-name> <param-value>access plus 2 weeks</param-value> </init-param> <init-param> <param-name>ExpiresByType text/css</param-name> <param-value>access plus 2 weeks</param-value> </init-param> <init-param> <param-name>ExpiresByType application/javascript</param-name> <param-value>access plus 2 weeks</param-value> </init-param></filter><filter-mapping> <filter-name>ExpiresFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher></filter-mapping>[/code]Modify the context.xml fileNext, we need to modify the application's context.xml file to allow proxy caching. To do this, we simply add the following snippet below the declaration, where we add the BasicAuthenticator Valve. Also note that at the Context level, the cachingAllowed attribute is set to true. <context cachingallowed="true" crosscontext="true" debug="5" path="/jasperserver-pro" reloadable="false"> <valve classname="org.apache.catalina.authenticator.BasicAuthenticator" disableproxycaching="false" securepageswithpragma="true"> . . . </valve></context>[/code]Restart Tomcat and testOnce you've restarted Tomcat, you can start testing that the headers are getting their expiration headers properly set. You can use Firebug to inspect the headers, or you can use Chrome's integrated developer tools. References:Apache documentation on the ExpiresFilter - http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Expires_FilterApache documentation on the BasicAuthenticator Valve - http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Basic_Authenticator_ValveSetting up a cache filter in Tomcat 6 - setting up a cache filter in Tomcat 6.
  21. This is a list of tips and tricks that we're compiling that people have used successfully in their JasperReports® Server projects. Some entries in this list are links to other pages rather than having the entire text in-line. Eventually, these entries will wind up on their own page as well. Please add any other bits that you've used as an in-line entry or as a link to a separate page. Measure and Test Measure Ad Hoc Performance Do Performance Testing with JMeter Test DB Queries with DBTester Domain Security Domain security without security file Ad Hoc Set query limits on the "Ad Hoc Options" page Modify the Ad Hoc caching values if your data does not update constantly Tomcat Compress HTTP responses at the Tomcat level Increase the maximum thread count at the Tomcat level Set up a cache filter for Tomcat or JBoss Move static content to a web server. Some customers have reported up to 20% improvement in response time. Disable automatic deployment on production servers using Tomcat Data Source Connections Prefer JNDI datasources to JDBC datasources One potential bottleneck is a datasource that doesn't offer a connection pool. This is why we recommend using JNDI, which allows you to configure an entire connection pool that resides within the container. A JNDI data source calls the JNDI (Java Naming and Directory Interface) service of the application server to locate a database connection. The application server manages the connections to the database and shares them between all applications that it hosts. The configuration of the application server determines the number of connections that are shared. Note that the application server connects to the database using JDBC, meaning that JNDI data sources return results in the same format as JDBC data sources. Documentation In Tomcat, tuning the JNDI datasource involves modifying the values for the maxIdle and maxActive attributes. For more information, see How to tune the number of connections in the server database pool, which gives examples of configuring a connection pool. JasperReports Server Administration Guide (Other versions) Data Sources Troubleshooting Working with Data Sources JNDI Services on Apache Tomcat ( additional info in Wiki Article: How to Add a New JNDI Connection in Tomcat ) JNDI Services on JBoss JNDI Services on WebLogic Database Index columns in the database to speed up domain-based reports Set the fetch size in the jasperreports.properties file to modify the number of rows to fetch Variations in database timings for different utilities JasperReports Configuration Items Memory Management with JasperReports and JasperReports Server Virtualizers in JasperReports Modify Virtualizer Settings for Very Large Reports Modify the jasperreports.properties file to disable multi-line data processing Auditing config Check and veriify that jprint size calculations are turned off. This incurs a major performance hit to both memory and cpu. The file is located at /WEB-INF/js.config.properties. #enable recording of print object memory size audit.sizeof.enabled=false File system issues Although it doesn't happen very often, sometimes the filesystem on which JasperReports Server is running needs some tuning. Some common issues that may occur are: File System Full On Linux-based systems, you can check the filesystem size and its usage by using the command below, which gives you a report on the filesystem usage. $ df -k Swap Space If there is no swap space defined for a system, or if there's not enough, then the system will often seem to using all its memory even if the CPU % usage is low. This is because it's unable to idle processes by using swap space (essentially writing their state to disk, for quick retrieval when another process needs it). Swap space gets defined as a fraction of available RAM; some people prefer 50% of RAM for large systems, others 200% of RAM. Remember that this is disk space and not additional RAM. You can use this command on Linux to check the swap space: $ free Continue with Performance Topics: Performance Troubleshooting Tools Resources Search Knowledge Base → Keyword: "performance" Search Knowledge Base → Keyword: "performance" in "How-To" & "Best Practices"
  22. Hi - yes, you can use MySQL instead of Postgres. There is a manual installation process where you can specify MySQL as the database. Check Chapter 5 of the Installation Guide (titled "Installing the WAR File Distribution"). You can find the Install Guide under the docs directory. That chapter will tell you how to install JasperReports Server with MySQL - essentially you have to modify a configuration file so that it points to MySQL, and run some scripts that will create databases and load data to your MySQL, and will also install the WAR file to an existing Tomcat.
  23. Hi, it sounds like you're close. Set the "Hyperlink type" to "ReportExecution", and add the "_report" parameter, and then give that parameter the expression of where in the repository the target report is. Something like "/Public/reports/myreport" (or whatever the URI for your report is). It wasn't clear in your post whether you tried that. It would also be helpful if you posted a stack trace, if you're getting one.
  24. Another option you could try is this. In the same pop-up window where you see the query, there's a button toward the bottom labelled "Filter Expression...". Click on it, and there you can choose the field that you want to filter on, and in the expression editor, you'll need to build an expression to exclude the companies you don't want. Something like this: !$F{$company_name}.equals("Company1") && !$F{$company_name}.equals("Company2") Yes, it's a programming statement. The thing about iReport is that it's meant for someone who's comfortable with SQL and/or Java, unfortunately it's not a pure end-user type of an application. To maintain and occasionally update these reports, you're going to need someone with that skillset.
  25. I think you have two options to do a silent install of iReport: - The Windows installer is based on Nullsoft, so could use the case-sensitive options /S for silent install and /D to specify the installation directory. Check with NullSoft documentation for /D usage ( http://nsis.sourceforge.net/Docs/Chapter4.html#4.12 ) - another option is to use the .zip iReport distribution. All you need to do is unpack it, and start using iReport by executing <iReport>\bin\ireportpro.exe
×
×
  • Create New...