[FAQs and Known Issues] FAQs

FS

This collection of frequently asked questions (FAQ) provides brief answers to many common questions about Elixir Report Professional (ERP) and Elixir Server.

Q1: How to start Elixir Repertoire in Debug Mode ?

A1: These are the basic instructions for installing Elixir Repertoire. Apart from the installation instructions, the information extends to creating a batch (.bat) file for users who want to run Repertoire in debug mode for in-depth troubleshooting during the template design phase.

To run in debug mode, open a text editor and input the following as a single line, modifying the Java class path according to your own environment:

“C:\Program_Files\java\jre1.6.0_02\bin\java.exe” -mx512m -classpath .\Repertoire-Launcher.jar com.elixirtech.repertoire.Launcher

Save the batch file to the /bin directory in your Repertoire installation. An example of the batch file together with the installation instructions can be downloaded from Repertoire-Installation.zip

Q2: How do I know that a datasource is not properly configured ?

A2: Badly mapped datasource will show:

  1. a red icon in the report tree
  2. a red text in the datasource wizard
  3. an error message with a red icon at the top of the datasource wizard
  4. no data elements in the Data tree on the right of the designer

Q3: How do I include the JDBC driver ?

A3: JDBC driver and external libraries can be placed at /ext folder of the product home.

During start up of the product, it will includes the necessary libraries.

Q4: Why is the report title showing in PDF format but not in Excel Format?

A4: For Excel export format, the Page Header and Page Footer are ignored during the report generation while the Section, Group and Detail will still be included for generation.

If you need to display the headers information for your report, you will have to place your headers information in the Section Header instead of Page Header. Alternatively, you can enable ‘Paged’ option but the data will grow across worksheets.

Q5: Why is the fonts not showing in PDF ?

A5: The PDF file might not be able to locate a suitable font to display the required character. In this case, to resolve the issue, you would need to map the font encoding for PDF.

Steps to map the font encoding:
Modify EREngine-config.xml of folder to include the necessary font(s):

—Code Snippet—

<i><properties>
<property name="javascript.debug" value="no"/>
<property name="elixirtech.fonts.path" value="C:\\WINDOWS\\Fonts"/>
</properties></i>

<i><pdf-font-map>
<map-encoding logical-font-name="Times New Roman" encoding="Identity-H" />
<map-encoding logical-font-name="Times New Roman Bold" encoding="Identity-H"/>
<map-encoding logical-font-name="Times New Roman Bold Italic" encoding="Identity-H"/>
<map-encoding logical-font-name="Times New Roman Italic" encoding="Identity-H"/>
</pdf-font-map></i>

P.S. Some EUDC fonts might not include a “typeface” name. Thus modification would need to be done to the font to include a “typeface” name

Q6: I am using Elixir Server/Repertoire Designer to develop a report that contains Asian language(E.g. Arabic), I can see the characters during developing the report template, but why all the character disappeared when rendered into PDF files?
A6: For Asian language, it is suggested to use font ‘Arial Unicode’ because it supports Asian language well, and is available for most Windows based systems.
The font should be placed in the system font path(C:\Windows\fonts) or Java font path(\jre\lib\fonts).

A proper font mapping for PDF is also important, E.g. for font ‘Arial Unicode’:

Add this line inside the tag:

into
…\Repertoire-Server-x.x.x\RepertoireServer\config\EREngine-config.xml

or

…\Elixir Repertoire-x.x.x\config\EREngine-config.xml

to complete the PDF font mapping for Elixir Server/Repertoire Designer

Q7: There is a configuration in config\EREngine-config.xml, can this be used to support report templates with multiple languages?

A7: The configuration is applicable only for special customized fonts and not to be used for default EREngine configuration settings. This feature allows for the selection of appropriate fonts that contain the glyphs needed to render text correctly. In font mixing the fonts are checked in order until the desired character is found and rendered and is used together with End User Defined Characters (EUDC).

Custom made fonts with EUDC are required to be encoded in Unicode. An example of a custom font with EUDC would have end user characters registered with codes such as the following:

  • E020
  • E021
  • E022
  • E030
  • E031

Using default fonts that do not contain EUDC with the pdf-font-selector will result in behaviour such as text overlapping, missing or incorrectly rendered characters.

Q8: Encountered error message ‘java.sql.SQLException: ORA-00911: invalid character’

A8: Possible causing factor is at datasource level.
Verify the following :-

  1. Database connection
  2. User Name and Password
  3. Availability of JDBC driver
  4. SQL Query

For your information, when using Oracle Database, a semi-colon at the end of your query might impose a problem

Q9: Encountered error message ‘java.lang.ClassNotFountException:…(Database Driver)’

A9: This occurs when it is not able to locate the JDBC driver at /ext folder of the product home. After placing the file at the directory, restart the product. During start up of the product, it will includes the necessary libraries. You should be able to see the required JDBC driver with a green square indicating that it is available.

Q10: What version of PDF / Acrobat reader is supported?

A10: Elixir tools currently generate PDF files that comply with the Adobe PDF 1.4 specification. As the PDF format is backwards compatible, this means that the files can be accessed using Adobe Acrobat version 5.0 or later and other PDF viewers and utilities that accept PDF 1.4 or later.

Q11: Encountered error : ‘MIMEType error Exception executing…’

A11: This imply that default launcher for the report format is not available or the directory of the program is incorrect. In this case, you will need to modify the configuration to use another program or you can always save it to a physical location for viewing.
To change the configuration of the viewer for the report format, click on ‘Global Properties’ at the Designer and go to ‘MIME Types’ tab. Identify the report format and click on Properties to edit. Launcher store the directory of the viewer program and extension is the file extension. (E.g. xls for Excel File). You will notice that there is a “%s” for some of the viewer, that is referencing to the report (stored in temporary directory) generated.

Example :
MIME-Type : application/pdf
Launcher : “C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe” “%s”
Extensions : pdf

If you using Elxir Report Designer version that are earlier than 5.2.0, you will need to modify the mailcap.txt which is located in folder of $ELIXIR_REPORT_DESIGNER_HOME.

=-Code Snippet-=
application/pdf; C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe %s

Q12: Encountered error message ‘Warning: Could not merge cells … as they clash with an existing set of merged cells’

A12: Occurs when there is content overlapping each other for report generation to Excel format. Resolution is to ensure that no components overlap each other during report design.

In addition to that, enable ‘Snap’ option which will adjusted all coordinates to fit on a 4x4 pixel grid. You should try both Snap on and Snap off to see which works best for your template

Q13: Report is generated to Glint with aid of API but why did the content of the report become truncated during printing ?

A13: For version 5.0 and prior, there is a known issue with the GlintStreamPrinter API for the Page Orientation. If the default orientation of the report template is set to “Landscape”, when printing this report using the GlintStreamPrinter API, the report will be printed in “Portrait” instead.

Resolution : Upgrade to version after 5.0.
Workaround : Manually set the printable area for the report.
=Code Snippet=
// To set right paper and reasonable margins.
// A4 = 210x297 mm. 1 cm margins

GlintStreamPrinter gsp = new GlintStreamPrinter();
HashPrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new MediaPrintableArea(10, 10, 190, 277, MediaPrintableArea.MM));
gsp.print(true, fis, aset, null);

Q14: Image not showing when using repository path. Example, repository:/ElixirSamples/Resources/images/LogoElixir.gif
A15: For Repository Path to work in Runtime Engine API, library file, ERURLHandlers.jar is required to support. This file is missing in Elixir Report Software Development Kit 5.0, you will need to upgrade to at least 5.1 and above or get ERURLHandlers.jar from us.

Q16: Known Issue : Memory Leakage
A16: According to the IBM website, there are some memory leaks fixes resolved in their IBM JVM 1.4.2 version.
Reference : Java SDK

Q17: Value of parameter not passed to datasource, using Elixir Report 5.0
A17: Cause : Dynamic parameters that have been given a default value in the datasource level is not able to be propagated to the report level.
Fixed in Elixir Report 5.0.1 and later.

Q18: Will there be any issues installing Elixir in Windows Vista?
A18: For Vista installations, disable the UAC (User Account Control) at the control panel. Refer to the screenshots below for reference.

uac1

uac2

Q19: How many threads do I have with my license(for Server Version 7.x)?
A19: There are 2 situations

  1. Dual Engine: Dual means regardless of the setting for MaxRenderCount, the server can only have max 2 threads
  2. Multi Engine: This means there is no limit to the threads of the server, the user can set values as they want for MaxRenderCount.

(MaxRenderCount is the parameter in RepertoireServer\config\ERS2.xml which sets the maximum value for server to process rendering request concurrently, by default it is set to 4)

Q20: While generating a report from the application server side, we are getting
Render exception: java.lang.NullPointerException
error message. What should be the possible cause?
A20: There might be various causes for this exception:

  1. Misconfiguration on application side, pointing to incorrect IP, Port number etc.
  2. Firewall settings that block certain connections between application server and Elixir server, or on certain ports.
  3. Data base driver compatibility issue, using of incorrect data base driver leading to exception.
  4. Other program already using the port number that is used for Elixir server(e.g. default port 8080 used by other program) or application server.
  5. And so on…

There might be various reasons that might report as errors during execution, it is important to find out the root cause to solve the issue.

Q21: I am trying to install 7.7.0 on 64bit system.
I have my OEM license key located at C:\Users\MyUser
I can run with the startServer.bat with no issue, but I cannot install and run the service.

A21:fFor 64bits system , to install and run the service, the license should be put directly under C: root folder to work.

Q22: Can Repertoire Server be packaged as a web application so it can be deployed in any container?
A22: This is currently not supported in v8.x and before.

Q23: When generating a report/data source/dashboard, why does server log gives warning on the connection pool?
Example of the WARNING message:

Sep 28 10:16:20 1505058556@qtp-1792507603-43: WARN : cfg.C3P0Config : named-config with name ‘MSSQLServer20xx_System’ does not exist. Using default-config.

A23: The warning message points to the JDBC connection pool that is invoked every time a report, data source or dashboard is called. “C3P0” is the connection pool library that Elixir Repertoire is using to establish a JDBC connection to the database. This is a default warning and what the message implies is that the connection pool has been invoked to connect to your ‘MSSQLServer20xx_System’ and is using the default configuration parameters in the connection pool as there is no dedicated configuration for this specific database.

Q24: Does Elixir support DOC/DOCX documents?
A24: There are 3 ways we support this requirement:

1/ RML to RTF
The Rich Text Format(RTF) specification describes a method of encoding formatted text and graphics for easy transfer between applications, especially word-processors. It allows users to define text files with formatting, font information, text color, etc.
The RTF renderer will read the text from a control source, which might be a Field, Literal, Script or URL. This means RTF text can be read from your datasource, or from a file on disk.
More Information: Working with RTF - Wiki

2/ RML to DocX output
The DocX Renderer is use to generate a DocX (.docx) output from a RML file. It is also able to export Adhoc report into Docx format.
It allows users to render the DOCX output that link with Microsoft Word. It also allows direct import into a text editor such as Word from Microsoft Office 2007 or later.

3/ DocX renderer
Elixir can directly generate the DOCX template using the renderer. This doesn’t involve RML as Users can directly design the template through Microsoft Word by using some scripting that link with database /datasource. This Docx file will than be placed into the Repository and user can use the Docx Renderer to render the template output in DOCX format. This would be suitable for long docx reports with mail-merge kind of report that requires data handling.
Docx renderer support all operating systems and works in the Server, Designer and also Remote. But not to Report Runtime.
More Information: [Rendering Formats- Working with RTF]

Q25: Which Elixir Repertoire Version supports IPv6?
A25: Java began supporting IPV6 on Solaris and Linux since J2SE 1.4. Support for IPV6 on Windows was added with J2SE1.5.

Elixir Repertoire supports for IPV6 is dependent on the operating system and java variant vm that Repertoire is running on.
You can refer to this reference for the details,
Networking IPv6 User Guide,
to have our product ready for IPV6.

You will have to ensure that the both OS and Java are configure or updated
to support ipv6.

Q26: I have added Page Breaks in my Sub-report. Why is the Page Break not working when rendering in the Main report?
A26: Page Breaks are not supported when using Sub-report in the Main report.
The followings elements will not work using Sub-rpeort in Main report:

  • Page Header
  • Force New Page
  • Page Break
  • Page Footer

Q27: I am planning to migrate my templates from Version 7 to Version 8. Are the 2 versions compatible?
A27: It has to depend on the features used in the reports.
eg. If you create a new report in version8.x with new features that don’t support in 7.x, it will not be compatible. You will not be able to render the reports in ver 7.x.
But if no new features are used for the report creation in ver8.x, the reports will be fine in ver7.7.

However, if the question is whether existing report templates created from version 7.x is compatible with version 8.x?
The answer is, yes it is compatible. No changes are required on your current sets of .rml and .ds files.
You will still need to do a thorough checking for all your reports to ensure nothing is affected by the upgrade though.

You can refer to our “What’s New” below for the added features from Version 8 onwards to latest version 8.4.1:
http://www.elixirtech.com/products/whatsnew_rep8.html

There is a difference between backwards compatibility and forwards compatibility:

Backwards compatibility - support “old” functionality on “new” releases
Forwards compatibility - support “new” functionality on “old” releases.

We can never offer forward compatibility. If we did, then we could never add any new features. There is no way that new features can be supported in every previous release.

So while you can expect to use a 7.x report under 8.x, you should never assume to be able to use an 8.x report under 7.x.

Q28: Why are the parameters order in Report are not displayed in the order that I defined?
A28: By default, parameters are presented in alphabetical order. This means, if you have parameters defined for ${Name} and ${Address} then the Address will appear first. Often we want to control the order of presentation - it is more common to request Name before Address.
To achieve this, we declare a dependency between the parameters. If the name of the parameter includes a string embedded in angle brackets then this indicates that the parameter is dependent on that named parameter and should be shown after it.
To ensure Address appears after Name we can therefore define ${Name} ${Address} - this declares Address depends on Name and should therefore be shown after it.
Note the text in angle brackets is not shown on the UI. If we need to give type and/or default values, we include the # separator as usual: ${Address#choice(Singapore,UK)#UK}, for example.

Q29: How do I change the timezone of Elixir Repertoire Server?
A29: Follow these steps:

  1. Locate the startServer.sh or startServer.bat (depending on OS) in the bin folder and modify the codes inside:

java -mx512M -Duser.timezone=/ -jar RepertoireServer-Launcher.jar (e.g. java -mx512M -Duser.timezone=Australia/Sydney -jar RepertoireServer-Launcher.jar sets the timezone to Australia New South Wales).

  1. Modify the ‘ConversionPattern’ for the date format in ‘log-config.xml’, e.g.:
    <param name="ConversionPattern" 

                        value="%d{dd-MM-yyyy G 'at' HH:mm:ss zzzz},%t,%-5p, %c{2} - %m%n"/>
  1. Start the Repertoire Server, observer the log file entries:

26-11-2013 AD at 20:42:55 Eastern Summer Time (New South Wales),main,INFO , util.Logging - Log4J logging enabled

26-11-2013 AD at 20:42:57 Eastern Summer Time (New South Wales),main,INFO , report2.EREngineConfig - Load font mapping for PDF

26-11-2013 AD at 20:42:57 Eastern Summer Time (New South Wales),main,INFO , arch.MimeTypeInfo - Get mimetype.xml from resource

Q30: About DocX Renderer…
A30: The DocX Renderer is use to generate a DocX (.docx) output from a RML file. It is also able to export Adhoc report into Docx format.

It allows users to render the DOCX output that link with Microsoft Word. It also allows direct import into a text editor such as Word from Microsoft Office 2007 or later.

Note: Rendering a report template to the current DocX Renderer is limited to a single page layout. (e.g. All landscape or All portrait only).

Q31: How to Pause a job and call Garbage Collection to release unused memory?

A31: Creating a Script task after RenderReport and input the following:

new java.lang.Thread.sleep(x);

new java.lang.System.gc();

The job will be paused in x milliseconds and GC has its time to clean up the unused objects

Q32: User-cap errors

2014-05-20 09:59:56,746,5181335@qtp-29711977-0,WARN , db.DBUserRoleLoginModule - User KATE excluded by user-cap (user-cap=2)

2014-05-20 09:59:56,753,5181335@qtp-29711977-0,ERROR, security.Authentication - Login failed for KATE : javax.security.auth.login.LoginException: Incorrect name/password

A32:

The error message occurs where user “KATE” in the example is out of the two qualified users to login. Elixir license key uses user - cap as an attribute to limit the total number of unique Named User accounts one can use in the Server. user-cap=2 means that only top 2 accounts/users are authorised to access the serve, regardless how many accounts are actually created.

In addition, User “Admin” and “Scheduler” are created in the system by default and this two users can’t be deleted or disable.

Therefore, the only solution to grant access to more users is to contact Elixir sales personnels for another key with higher user-cap.

Q33: What are the components that is required for backup (such as which directories, etc)?

A33: These two items can be backup:

  • Log backup

o " MaxBackupIndex " parameter can be set in \RepertoireServer\config\log-config .xml. Increase this parameter to keep bigger log files.

o “ Append ” parameter value set to “ true ” allows logging (Log4J) to preserve the old log after the server is restarted.

  • Repository: Any changes applied to files and folders in the repository will create .bak files unless a Compact command is triggered which will permanently delete all the .bak files. Files and folders with .bak extensions are hidden from Repository views, but can be restored by renaming them using operating system commands.

Q34: According to the section "Visual Alert with Authomatic Refresh in the whitepaper, “Thresholds can be pre-defined to provide visual alerts of operational status for business activity monitoring”. How the threshholds can be defined and alerts in the form of SMS and emails can be sent when the values fall outside the thresholds. Is the email and sms configuration modules currently available? Are the email and format configurable?

A34: Elixir Server is able to send alert via data ETL, scheduler and jobs with time intervals. The alert is sent to email which the recipient email addresses and the email format is configurable.

Q35: We have some issue that need your assistance. Currently in one of the report rml it is using replace function for one field è csv_delimiter(INV_DATA.replace(/\r|\n|\r\n/g," "));

The possible output will be as following:

AAA

BBB

CCC

With this replace function, it will format the output as è AAA BBB CCC.

May I know is it CSV report can’t support enter input?

A35: The native csv file format itself expects each data entry to appear as a single line. Once your data includes line breaks or new lines these values are treated as separate lines of data entry, e.g.

AAA BBB CCC —> csv format treats this as a single entry

as compared to:

AAA → csv format treats this as the first line

BBB → csv format treats this as the second line

CCC → csv format treats this as the third line

It is advised to consider generating the report to an excel file format if there are data values that require the inclusion of line breaks and new lines.

Q36: Once Template retrieve the data, the data connection keeps reconnect to stay alive. How to set close the connection immediately once the PDF is generated?

A36: The use of the connection pool is to maintain a set of open connections to the database which are ready for use at any given time. You could consider lowering the Max Idle Time settings in the connection pool to close and discard open connections if there is no activity or lowering the number of the maximum or minimum pool values.

Setting the Min Pool Size value to 0 for MySQL doesn’t affect the report generation process, what it does is to close any open connections from the Repertoire Server to your MySQL database after the report has been generated and will reopen the connections whenever a request to generate a report template is subsequently sent to the Repertoire Server.

If you set the Min Pool Size to a value greater than 0 then you will observe that the minimum number of connections to the MySQL database server are kept open even after the report template has been generated.

Beside that, “Max Idle Time” which can be configured to close the database connection cleanly if there is no activity between the Repertoire Server and MySQL.

Q37: Do you support MongoDB datasource? How can we use MongoDB for report development with Elixir?

A37: Yes, Elixir report is able to connect to MongoDB database and fetch records from it using Object Datasource:

3-DataOject

Example of how to retrieve data from MongoDB database using JavaScript in Object Datasource:

You can download and refer to MongoDB.7z as an example. Remember to place MongoDB Driver in elixir /ext folder before starting the Server/Designer.

Fundamentally, by using Data Object, any sort of data can be retrieved this way.

Q38: Is Elixir Repertoire Server vulnerable to the Heartbleed Bug?

A38: Elixir Technology software (all products and versions, including Elixir Load Balancer, Elixir Repertoire Server and Elixir Ambience) are not vulnerable to the Heartbleed bug.

All Elixir server software runs on the Java Virtual Machine and does not interact with the openssl libraries which are at the root of this vulnerability.

If third party software or hardware has been installed to wrap or redirect calls to Elixir software - for example load balancers, forwarders, gateways, routers etc. the vendors of these items should be contacted regarding any vulnerability in their layers.

Q39: How to refresh the filesystem via API calls

A39: There is an API for refreshing the FS which applies to Repertoire version 8.x.

For example: POST http://localhost:8080/tool/admin/filesystems.html?id=4&action=Refresh

FS

In this case, the “Elixir” filesystem, Id = 4 will be refreshed. Please note that this function is only available once the user has admin credentials.

Q40: Overlapped text in PDF output

A40: When texts get overlapped, it’s likely due to font metrics issue. The font used is likely not an exact match for the standard PDF fonts, so the width varies a little, causing the text to wrap onto the next line.

The solution is to:

  • either stick to the standard 14 fonts that PDF supports - Standard 14 fonts
  • or to embed the font in the document (subject to font copyright)
  • or to ensure the font used is identical on the designer, server and all readers.

Q41: I am using IBM Java to run the Repertoire Server, how do I enable a specific TLS, e.g. TLS1.2 protocol?

A41: The command line in ‘bin\startServer’ needs to be edited to include the following, e.g.:

%JAVACMD% -mx512M -Dcom.ibm.jsse2.overrideDefaultTLS=true -Dcom.ibm.jsse2.sp800-131=strict -jar RepertoireServer-Launcher.jar

Where %JAVACMD% refers to its installation, e.g. “…\java_1.8.x\jre\bin\java.exe”.

The addition of the above parameters were based on the following reference:

https://www.ibm.com/support/knowledgecenter/en/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/jsse2Docs/sp800-131a.html

Repertoire-Installation.zip