简体   繁体   中英

Why is Pentaho Report Designer adding parameter named “ce” to Database Connection of the report?

I am forced to use Pentaho Report Designer 5.4 and have following problem: Every time i try to make changes to Database Connection of the report, inside Options section designer adds parameter "ce" without any value - even if i previously deleted it (please see images below). When i open .prpt file and look inside sql-ds.xml, connection url looks as follows: "jdbc:sqlserver://192.168.1.194:1433;databaseName=statdb;integratedSecurity=false;ce"

problem is that my report was not loading at all. I looked into report log and found following lines:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The connection string contains a badly formed name or value.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190) ~[sqljdbc4.jar!/:na]
    at com.microsoft.sqlserver.jdbc.Util.parseUrl(Util.java:445) ~[sqljdbc4.jar!/:na]
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.parseAndMergeProperties(SQLServerDriver.java:1026) ~[sqljdbc4.jar!/:na]
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1008) ~[sqljdbc4.jar!/:na]

I assume that appending parameter "ce" is causing the problem. I have 2 questions:

  1. Why is Pentaho Report Designer adding parameter named "ce" to Database Connection of the report?

  2. Is Connection url in right format? Is parameter "ce" appended correctly?

    在此处输入图片说明 在此处输入图片说明

This is 'instance name' defined such fashion. In your case option is blank since as I see on UI Instance name is also blank.

This is a bug most probably - 'ce' automatically added when connection edited. If you don't want database editor attempts to tweak you connection string such fashion - use 'Generic database' connection. You will have to specify full java class name and connection jdbc connection string. Also you have to have this jdbc driver on classpath and it can workaround most of such 'edit connection' issues.

Full guide can be found jdbc sqlserver dirver class

在此处输入图片说明

Run this query and get your instance name , and assign that value to the ce property in the Options tab and there you go :)

SELECT HOST_NAME() AS HostName, SUSER_NAME() LoggedInUser,SERVERPROPERTY('MachineName') AS [ServerName],
                     SERVERPROPERTY('ServerName') AS [ServerInstanceName],
            SERVERPROPERTY('InstanceName') AS [Instance],
            SERVERPROPERTY('Edition') AS [Edition],
            SERVERPROPERTY('ProductVersion') AS [ProductVersion],
                     Left(@@Version, Charindex('-', @@version) - 2) As VersionName

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM