Please check out the Know Problems also.
Please note that URL parameters which contains special characters must be URL encoded. Special characters are ”,&,=,<space>,+,:.
Please see URLEncode for more information.
Oracle JDBC driver 8.1.7.0.0 and above have a bug and return false results when querying for the parameters of a stored procedure. If you use an Oracle stored procedure with a cursor parameter and you see the following line in the engine output log:
SELECT ... FROM <SP> ...
or
“The Stored procedure has more parameter 10 as the report design 2.”
then please use one of i-net software's JDBC type 4 drivers for Oracle.
The problem is related to the call metadata.getProcedureColumns. If you set the log.level of the i-net Clear Reports report engine to 5 and run the report, you will see with which arguments the method gets called. The problem is that the Oracle JDBC drivers return not only the SP parameters but also the parameters for the underlying select ?: statement.
We have created a zip file which contains two Oracle SP's, one inside and one outside of a package and two reports using these SP's. To run the test, please insert the correct values for your database (server, SID, etc) and the three parameters for the getProcedureColumns (see above).
With JDK1.4.0 plug-in on a 16 bit display the swing java viewer bean sometimes does not show the content until the browser is re-sized. This is a known problem with JDK 1.4 running on a 16bpp display. Please use another color depth (24 or 32 bit) or please use JDK1.3 instead.
i-net Clear Reports is a platform independent tool. It cannot read an image in the format “Windows Metafile”. You need to save the image as bitmap.
Workaround:
Unlike Crystal Reports i-net Clear Reports does not trim() a string database field. So before testing if the string field is empty or is equal to another field please trim the whitespace from the field (“trim({string}”).
I-net Clear Reports will detect a headless server automatically if you start the Java VM for i-net Clear Reports (or your servlet-engine or application server) with the option -Djava.awt.headless=true. For example:
java -Djava.awt.headless=true -classpath ./core/ClearReports.jar com.inet.report.Listener
i-net Clear Reports is using the AWT package for rendering text on the server side. Since AWT delegates certain tasks (font renderering for example) to the graphic sub-system of the host operating system, AWT and therefore i-net Clear Reports requires a graphical environment with more than 255 colours.
If you get the above error on a Windows machine, please switch to a graphics mode with at least 256 colours. On Unix you can switch to a pseudo-color or true-color visual or simply point your DISPLAY environment variable to the dummy X11 server “Xvfb”.
If you get this error on a IBM mainframe, then please install RAWT or NAWT, IBM's version of AWT. Another possibility would be to use PJA in combination with codepage CP500.
More information:
I-net Clear Reports will detect a headless server automatically if you start i-net Clear Reports (or your servlet-engine or application server) with the option -Djava.awt.headless=true.
You need to use a xterm (not really an xterm, but a functional X11 server (or X11-sink like Xvfb) is required) because the JavaVM need this for AWT.
Is there a “pseudo-tty” or fake X display I can use?
Applications often have a need to run against an X display which isn't tied to a physical display – perhaps to make a screendump, or to run when the software expects to have an open display. In these cases, the X Virtual Frame Buffer can be used. It is a full X server which doesn't open any devices (the output can be a memory-mapped file) but which otherwise behaves as an X display. It is also useful for testing. The Xvfb is part of the X11R6 distribution, in programs/Xserver; set the configuration option in config/{machine}.cf to build the distribution with this server.
The problem might be similar to the problem above. If you examine the thread dump of i-net Clear Reports and see a thread hanging in sun.awt.X11GraphicsEnvironment.initDisplay, see above.
The class file ViewerApplet is included in the archive file ReportViewer.jar (CC-Viewer.jar in versions previous to version 11).
This archive file of the Java viewer (ReportViewer.jar) is located in the virtual folder core.
Since i-net Clear Reports version 11.0 the file ReportViewer.jar should be included in the directory ”<install_dir>/core”.
Do not extract these original archive file because it is a signed archive. With this signed archive file the viewer have the necessary rights for printing and file access (export) in an applet.
This problem occurs when:
This problem occurs because there is a bug in the JDBC-ODBC bridge that is included in the JavaVM from Sun. For more information about this bug see: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4379373.
Workaround:
Until Sun has fixed this bug in the JavaVM you can use a native JDBC type 4 driver for the MS SQL Server 7 at runtime, e.g. our JDBC type 4 driver: i-net SPRINTA.
For more information about the JDBC drivers from i-net software, see: the i-net JDBC homepage.
You need to specify that you would like to use a different JDBC driver at runtime as at design time.
http://serverName:port/?...rpt&dll=pdssql.dll&host=DBServerName&catalog=DBName& schema=SchemaName&user=UsrName&password=PWD
with i-net Clear Reports as servlet:
http://serverName:port/servlets/com.inet.report. ReportServlet/?...rpt&dll=pdssql.dll& host=DBServerName&catalog=DBName&schema=SchemaName&user=UsrName&password=PWD
For more information please refer to the i-net Clear Reports documentation.
MyListener_withMyReportProperties.java (for Java application) or MyReportServlet_withMyReportProperties.java (for servlet).Although i-net Clear Reports supports HTTPS, this is not necessarily the case for most servlet containers. In order to access a resource within an https servlet context the servlet container must implement a URLStreamHandlerFactory which returns the appropriate handler.
This problem only occurs if you use relative URLs like:
https://servername/servlet/com.inet.report.ReportServlet/?examples/report1.rpt
or a resource URL which points into an SSL context like:
https://servername/servlet/com.inet.report.ReportServlet/?https://servername/report1.rpt.
However, absolute file, http, etc. resource URLs like the following will generally work:
https://servername/servlet/com.inet.report.ReportServlet/?file:c:/examples/report1.rpt https://servername/servlet/com.inet.report.ReportServlet/?http://servername/report1.rpt
The following servlet engines are known to implement a custom URLStreamHandlerFactory:
These exception occurs because of a bug in the Oracle JDBC driver.
Please use another JDBC driver for the Oracle database, e.g. i-net SERO.
This means that a native library has not been found. Please adjust the library path (PATH or LD_LIBRARY_PATH on linux) to point to the correct directory. If you get the this error in the Sun J2EE application server, please set the environment variable J2EE_HOME to the correct location. The application server will then automatically adjust the library search path and will search for the ioser library in this directory.
The IE browser has a bug and does not refresh an embedded object when the request key stays the same, even though the refresh button has been clicked. So when using this browser the server cannot simply append &init=xls&cmd=rfsh to refresh the content every time the client has clicked on the refresh button. When you use this browser, you must append a unique key (for example via java script); for example when the user has clicked on the refresh button you can append a dummy parameter value representing the current time.
The Crystal Reports Designer shows some fonts with a leading @. i-net Clear Reports cannot use these fonts. Why?
The @xxx fonts appear after you've installed a CR UFL into Crystal-Reports. These @xxx fonts rely on functionality exported from a native-code Crystal-Reports user function library and are not available to the operating system in general, so i-net Clear Reports cannot use these fonts.
As a workaround please use a barcode font that does not use a CR UFL; all fonts which do not start with the @ will work.
To create a thread dump (a trace of every thread in the java VM) you send the java VM a SIGQUIT signal or type ctrl-\ at the control terminal (on Windows it is ctrl-break).
Creating a thread dump on:
killall -3 javaSIGQUIT signal has and then type kill -<signo> <pocID>A typical thread dump with one thread compressing the output stream to be sent to the client, one waiting for the pageData and one waiting for more incoming requests is shown below.
Full thread dump Java HotSpot Client VM (1.4.2-b28 mixed mode):
"EngineThreadPool-0" daemon prio=1 tid=0x080debe8 nid=0x4a6d runnable [4daac000..4daad118] at java.util.zip.Deflater.deflateBytes(Native Method) at java.util.zip.Deflater.deflate(Deflater.java:288) - locked <0x447203d0> (a java.util.zip.Deflater) at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:154) at java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:114) at com.inet.report.aw.if(Unknown Source) at com.inet.report.aw.do(Unknown Source) at com.inet.report.aw.a(Unknown Source) at com.inet.report.j.e(Unknown Source) at com.inet.report.br.v(Unknown Source) at com.inet.report.br.run(Unknown Source) - locked <0x44e8d658> (a com.inet.report.j) at com.inet.report.zy.g$a.run(Unknown Source) "ReportThreadPool-0" daemon prio=1 tid=0x081472e8 nid=0x4a6d in Object.wait() [4da2c000..4da2d198] at java.lang.Object.wait(Native Method) - waiting on <0x44e8dab0> (a com.inet.report.Engine) at com.inet.report.Engine.case(Unknown Source) at com.inet.report.Engine.getPageData(Unknown Source) - locked <0x44e8dab0> (a com.inet.report.Engine) at com.inet.report.a7.a(Unknown Source) at com.inet.report.a7.a(Unknown Source) at com.inet.report.a7.a(Unknown Source) at com.inet.report.ReportSocket.a(Unknown Source) at com.inet.report.ReportSocket.run(Unknown Source) at com.inet.report.zy.g$a.run(Unknown Source) "DestroyJavaVM" prio=1 tid=0x080520e8 nid=0x4a6d waiting on condition [0..bfffd1e4] "Listener" prio=1 tid=0x081480c8 nid=0x4a6d runnable [4d9ad000..4d9ad218] at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353) - locked <0x44c360e8> (a java.net.PlainSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:448) at java.net.ServerSocket.accept(ServerSocket.java:419) at com.inet.report.Listener.run(Unknown Source) at java.lang.Thread.run(Thread.java:534)
Since RedHat 9, RHEL3 or FedoraCore 1, the GCC, the “gnu compiler collection” is included into the Linux distribution – its java backend is also called “gcj”. The GCC3.x can compile and interpret java code but it is still in a very early stage (because it should be free software, has been written from scratch). Especially the Swing support is missing. RedHat has decided to use this java as the default JVM on their operating system.
Although it is possible to use GCC to compile ClearReports.jar into native code using GCC or to run i-net Clear Reports using the libgcj, the i-net Clear Reports Setup and the i-net Designer will not work with this java. Please use IBM JDK 1.3 or Sun JDK1.4.2 to run i-net Clear Reports on Linux. Please point the PATH variable to the Sun JDK1.4.2 or IBM Java installation directory:
export PATH=/usr/java/j2sdk1.4.2/bin/:$PATH
If you encounter problems such as “Warning: -jar not understood. Ignoring.at 0x40268e17:
java.lang.Throwable.Throwable(java.lang.String)
(/usr/lib/.:libgcj.so.3)”, then please use IBM JDK1.3 or Sun JDK1.4.2. – Please note that if you use an earlier version of the Sun JDK (for example 1.3), you must set the variable LD_ASSUME_KERNEL to the appropriate value.
Please see the documentation of your RedHat Linux system for details.
The above message typically comes from the engine when you have passed an incomplete report URL such as report=/test.rpt. We try different strategies to find the report file /test.rpt in the current environment:
getLocalResource(<context>/test.rpt)file:///test.rpthttp://localhost:<port>/test.rpt (only in the ReportSocket, but not in the ReportServlet)
The message “java.net.MalformedURLException: no protocol: /test.rpt” means that your JVM was not able to find the resource /test.rpt because an URL protocol is missing. Please use report=file:///test.rpt or report=http://<host>:<port>/test.rpt instead.
http://localhost:8080/reporting/ReportServlet?report=file:c:/test1.rpt would be a valid URL on Windows while
http://localhost:8080/reporting/ReportServlet?report=file:///var/tmp/test1.rpt would be valid on Unix
This exception can occur if you use JBuilder 8 with the “Borland Make” compiler because it have problems with obfuscated classes. To solve this problem please switch from “Borland Make” compiler to javac (in build options of your project) or to a newer version of JBuilder (e.g. JBuilder X).
Since i-net Crystal-Clear version 5.3, there is a new and better formula behavior when it comes to a formula's evaluation time. Formulas are now evaluated only once, “before reading records”, if at all possible - this includes formulas with variables. To force formulas to be evaluated once for each record, use the command “whilereadingrecords” or “whileprintingrecords”. For more information, also see the answer to this question.
i-net software strives to provide accurate product documentation. Please give us your feedback using the form below.
NOTE: This form is for documentation feedback only. For technical assistance, please send an email to clearreports@inetsoftware.de.