Crystal Reports based on SQL Database donot work

Hi,
We recently migrated to a new environment and I cannot run reports based on Sql database. We had similar issue with reports on oracle but that was resolved after installing both 32 and 64 bit on the server but these reports donot work no matter what i do

Our Environment: SAP BOBJ 4.2 SP 03 Patch 3. on Red Hat Linux using Crystal 2016.

Below is the error

2017-12-13 11:04:43
com.businessobjects.report.web.shared.WebReportingException: The viewer could not process an event. The database logon information for this report is either incomplete or incorrect. [] ---- Error code:0 [CRWEB00000119]
at com.businessobjects.report.web.shared.WebReportingException.throwWebReportingException(WebReportingException.java:71)
at com.businessobjects.report.web.component.ViewerContainer.processEvents(ViewerContainer.java:1513)
at com.businessobjects.report.web.WorkflowController.doEventProcessing(WorkflowController.java:373)
at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:275)
at com.businessobjects.report.web.WorkflowController.doAsyncLifecycle(WorkflowController.java:108)
at com.crystaldecisions.report.web.viewer.CrystalReportViewerUpdater._processHttpRequest(CrystalReportViewerUpdater.java:61)
at com.crystaldecisions.report.web.ServerControl.processHttpRequest(ServerControl.java:345)
at com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet.doUpdate(CrystalReportViewerServlet.java:206)
at com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet.doPost(CrystalReportViewerServlet.java:194)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at com.businessobjects.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:110)
at com.businessobjects.http.servlet.internal.ServletLastFilterChainElement.service(ServletLastFilterChainElement.java:30)
at com.businessobjects.http.servlet.internal.filter.FilterChainImpl.doFilter(FilterChainImpl.java:46)
at com.businessobjects.bip.core.web.filter.BrowserRenderingModeFilter.doFilter(BrowserRenderingModeFilter.java:38)
at com.businessobjects.http.servlet.internal.FilterRegistration.doFilter(FilterRegistration.java:72)
at com.businessobjects.http.servlet.internal.filter.FilterChainImpl.doFilter(FilterChainImpl.java:43)
at com.businessobjects.bip.core.web.boetrustguard.BOETrustPrepareFilter.doFilter(BOETrustPrepareFilter.java:35)
at com.businessobjects.http.servlet.internal.FilterRegistration.doFilter(FilterRegistration.java:72)
at com.businessobjects.http.servlet.internal.filter.FilterChainImpl.doFilter(FilterChainImpl.java:43)
at com.businessobjects.bip.core.web.supportabilty.TraceLogScopeFilter.doFilter(TraceLogScopeFilter.java:38)
at com.businessobjects.http.servlet.internal.FilterRegistration.doFilter(FilterRegistration.java:72)
at com.businessobjects.http.servlet.internal.filter.FilterChainImpl.doFilter(FilterChainImpl.java:43)
at com.businessobjects.sdk.actionfilter.WorkflowFilter.doFilter(WorkflowFilter.java:45)
at com.businessobjects.http.servlet.internal.FilterRegistration.doFilter(FilterRegistration.java:72)
at com.businessobjects.http.servlet.internal.filter.FilterChainImpl.doFilter(FilterChainImpl.java:43)
at com.businessobjects.bip.core.web.appcontext.RequestInitFilter.doFilter(RequestInitFilter.java:26)
at com.businessobjects.http.servlet.internal.FilterRegistration.doFilter(FilterRegistration.java:72)
at com.businessobjects.http.servlet.internal.filter.FilterChainImpl.doFilter(FilterChainImpl.java:43)
at com.businessobjects.http.servlet.internal.BundlePathAwareServiceHandler.serviceHelper(BundlePathAwareServiceHandler.java:235)
at com.businessobjects.http.servlet.internal.BundlePathAwareServiceHandler.service(BundlePathAwareServiceHandler.java:197)
at com.businessobjects.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:275)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at com.businessobjects.pinger.TimeoutManagerFilter.doFilter(TimeoutManagerFilter.java:181)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:812)
Caused by: com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: The database logon information for this report is either incomplete or incorrect.---- Error code:-2147215357 [] Error code name:internal
at com.crystaldecisions.sdk.occa.report.lib.ReportSDKException.throwReportSDKException(ReportSDKException.java:120)
at com.crystaldecisions.sdk.occa.managedreports.ps.internal.SendRequestHelper.sendRequest(SendRequestHelper.java:141)
at com.crystaldecisions.sdk.occa.managedreports.ps.internal.CacheReportSource.sendRequest(CacheReportSource.java:1796)
at com.crystaldecisions.sdk.occa.managedreports.ps.internal.CacheReportSource.getPage(CacheReportSource.java:1283)
at com.businessobjects.report.web.event.PageListener.renderContentLocally(PageListener.java:379)
at com.businessobjects.report.web.event.PageListener.getPage(PageListener.java:180)
at com.businessobjects.report.web.event.PageListener.updatePage(PageListener.java:121)
at com.businessobjects.report.web.event.UpdatePageEvent.processListener(UpdatePageEvent.java:47)
at com.businessobjects.report.web.event.ViewerBroadcaster.broadCastEvent(ViewerBroadcaster.java:136)
at com.businessobjects.report.web.event.ViewerBroadcaster.broadcast(ViewerBroadcaster.java:110)
at com.businessobjects.report.web.event.EventQueue.processEvents(EventQueue.java:53)
at com.businessobjects.report.web.component.ViewerContainer.processEvents(ViewerContainer.java:1495)
… 56 more


ash0550 :canada: (BOB member since 2011-09-12)

Something to check, maybe?


Mak 1 :uk: (BOB member since 2005-01-06)

The information is accurate. The same configuration works for reports in the old environment.


ash0550 :canada: (BOB member since 2011-09-12)

Can you create a new crystal report on your new system and run it with those DB credentials?

It may be the cached PWs have been lost in the migration, for example.


Mak 1 :uk: (BOB member since 2005-01-06)

I did it already. It works from local not on the machine


ash0550 :canada: (BOB member since 2011-09-12)

OK, good.

Well, it must be related to the driver set up server side then, or potentially firewall issues?


Mak 1 :uk: (BOB member since 2005-01-06)

I also think it was something to do with Drivers. We tried to follow an SAP document for 3.1 version but that didnt work


ash0550 :canada: (BOB member since 2011-09-12)

Well, that’s hardly surprising the architectures are totally different :?

I suggest you look for an up to date document if I were you.


Mak 1 :uk: (BOB member since 2005-01-06)

Follwed the below SAP link and it worked

https://launchpad.support.sap.com/#/notes/2389265


ash0550 :canada: (BOB member since 2011-09-12)

Also attaching the text if someone doesnt have access to that link

Symptom
Need to set up an ODBC Driver for MS SQL Server using DataDirect Drivers on the BI server hosted on a Linux Operating System.

Environment
SAP BusinessObjects Business Intelligence platform 4.x
Redhat Linux 7
Information Design Tool

Reproducing the Issue
Open IDT
Create Connection using Server Middleware
Test Connection
Connection Failed.
Cause
Drivers have not been set up on the BI Server, so IDT does not know how to connect to MS SQL Server.

Resolution

  1. Create Environment variables ODBCINI & ODBCINI32 and respectively set their location to the ‘odbc.ini’ file & ‘odbc32.ini’ file.

  2. Add the 32-bit & 64-bit library paths to the environment variable ‘LD_LIBRARY_PATH’

  3. Add ODBCINI to environment variables ‘BOE_USE_32BIT_ENV_FOR’ so that BI knows which one is for the 64-bit process.

         *** Environment variables are best to go in the BI User’s ‘.bash_profile’ file. ***
    

Example:

.bash_profile

PATH=$PATH:$HOME/bin
export PATH
export LANG=“en_US.utf8”
export LC_ALL=“en_US.utf8”

#Start of MS SQL 2012

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/build/home//BI42/sap_bobj/enterprise_xi40/linux_x64/odbc/7.1.5/lib:/build/home/boeuser/BI42/sap_bobj/enterprise_xi40/linux_x86/odbc/7.1.5/lib

export ODBCINI=/build/home/boeuser/BI42/sap_bobj/enterprise_xi40/odbc.ini
export ODBCINI32=/build/home/boeuser/BI42/sap_bobj/enterprise_xi40/odbc32.ini
export BOE_USE_32BIT_ENV_FOR=ODBCINI

#End of MS SQL

  1. Create ‘odbc.ini’ for the 64-bit odbc DSN & ‘odbc32.ini’ for the 32-bit ODBC DSN

  2. After you have your environment variables set up, you will have to set up your ‘odbc.ini’ file & ‘odbc32.ini’ file. (*** ‘odbc.ini’ already exists, you just have to edit it with ‘vi’ – you will have to create ‘odbc32.ini’ and edit it with ‘vi’)

Example:

‘odbc.ini’ (this is for your 64-bit drivers)

[ODBC Data Sources]
MSSQL=DataDirect 7.1.5 SQL Server Native Wire Protocol

[MSSQL]
Driver=/build/home/…/BI42/sap_bobj/enterprise_xi40/linux_x64/odbc/7.1.5/lib/CRsqls26.so
Description=DataDirect 7.1.5 SQL Server Native Wire Protocol
Database=
HostName=
PortNumber=<Port #>
QuotedId=Yes
AnsiNPW=No

‘odbc32.ini’ (this is for your 32-bit drivers)

[ODBC Data Source]
MSSQL=DataDirect 7.1.5 SQL Server Native Wire Protocol

[MSSQL]
Driver=/build/home/…/BI42/sap_bobj/enterprise_xi40/linux_x86/odbc/7.1.5/lib/CRsqls27.so
Description=DataDirect 7.1.5 SQL Server Native Wire Protocol
Database=
HostName=
PortNumber=<Port #>
QuoteId=Yes
AnsiNPW=No

  1. Last after you set all of this up, you will need to restart the following:

             i.  Navigate to /build/home/../BI42/sap_bobj
    
             ii. You will have to stop the BI servers './stopservers'
    
             iii. You will have to stop Tomcat: './tomcatshutdown.sh'
    
             iv.  You will have to stop SQL Anywhere: './sqlanywhere_shutdown.sh'
    
  2. You can check their status by using the ‘top’ command.

  3. After you have verified they have stopped, then you will have to restart these services in this order:

‘./sqlanywhere_startup.sh’
‘./tomcatstartup.sh’
‘./startservers’
9. After these services come back up, test on your client, the easiest way to test is by creating a new connection in IDT (for testing purposes), where you are using ‘Server Middleware’ instead of local middleware.

In IDT there is a setting to help you do this:
i. Go to the top menu:

                   ii.  Click on Window -> Select Preferences

                   iii.  In the new menu: expand 'Information Design Tool' -> click on 'Secured Connections'

                   iv.  Select the radio button "Server Middleware"

                   v.  Click Ok.

    2. After ensuring you are using server middleware, create your connection, and then test the connection.  If it comes back Successful -> click on “Show Details” – You can get the details of the “Driver Architecture” – if it says 64 = You are using the “server drivers”

ash0550 :canada: (BOB member since 2011-09-12)

Thanks for the update :slight_smile:


Mak 1 :uk: (BOB member since 2005-01-06)

Hi
I am also facing same issue but my operating system is Windows 2012 server R2… Any help?

Oracle 12C
crystal reports 2016
windows 2012 R2


sureshsapbikl (BOB member since 2017-12-19)

Have you tried following the instructions, converting them as appropriate to Windows-relevant steps?


Nick Daniels :uk: (BOB member since 2002-08-15)