cancel
Showing results for 
Search instead for 
Did you mean: 

Error while accessing BO document

Former Member
0 Kudos

We r trying to fetch reports from BO 4.1 using java code.The sysytem is logged in and the code also create session.
When it tries to open document the code fails and i got the following error:


Cannot initialize Report Engine server. (Error: RWI 00226)
com.businessobjects.rebean.wi.CommunicationException: Cannot initialize Report Engine server. (Error: RWI 00226)
at com.businessobjects.rebean.wi.occa.OccaConnection.doConnect(Unknown Source)
at com.businessobjects.rebean.wi.occa.OccaConnection.<init>(Unknown Source)
at com.businessobjects.rebean.wi.occa.OccaServerConnectionManager.createConnection(Unknown Source)
at com.businessobjects.rebean.occa.OccaReportEngineComAdapter.createCadenzaSession(Unknown Source)
at com.businessobjects.rebean.occa.OccaReportEngineComAdapter.initNewCadenzaSession(Unknown Source)
at com.businessobjects.rebean.occa.OccaReportEngineComAdapter.openDocument(Unknown Source)
at com.businessobjects.rebean.wi.ReportEngineImpl.openDocument(Unknown Source)
at com.businessobjects.rebean.wi.occa.WebiReportEngine.openDocument(Unknown Source)
at com.tcs.hana.util.ReportToExcel.processDocument(ReportToExcel.java:137)
at org.apache.jsp.view_005fwebi_005fdoc_005fpdf.start_005fenv2_jsp._jspService(start_005fenv2_jsp.java:140)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.crystaldecisions.enterprise.ocaframework.OCAFrameworkException$ServiceConnection: Unable to connect to service CDZHome from server CDCTCOE.WebIntelligenceProcessingServer via CMS CDCTCOE.India.TCS.com:6400 (FWM 01006)
cause:com.crystaldecisions.enterprise.ocaframework.idl.ImplServ.OSCAFactoryPackage.connection_failure: IDL:img.seagatesoftware.com/ImplServ/OSCAFactory/connection_failure:1.0
detail:Unable to connect to service CDZHome from server CDCTCOE.WebIntelligenceProcessingServer via CMS CDCTCOE.India.TCS.com:6400 (FWM 01006) IDL:img.seagatesoftware.com/ImplServ/OSCAFactory/connection_failure:1.0
at com.crystaldecisions.enterprise.ocaframework.ServiceMgr.getUnmanagedService(ServiceMgr.java:864)
at com.crystaldecisions.enterprise.ocaframework.AbstractStubHelper.getService(AbstractStubHelper.java:29)
at com.crystaldecisions.enterprise.ocaframework.ManagedService.validate(ManagedService.java:781)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.validateStatelessService(ManagedSession.java:610)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.newService(ManagedSession.java:911)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.get(ManagedSession.java:300)
at com.crystaldecisions.enterprise.ocaframework.ManagedSessions.get(ManagedSessions.java:297)
at com.crystaldecisions.enterprise.ocaframework.ServiceMgr.getManagedService(ServiceMgr.java:697)
at com.businessobjects.rebean.wi.occa.OccaConnection$CDZStubHelper.getService(Unknown Source)
at com.crystaldecisions.enterprise.ocaframework.ManagedService.validate(ManagedService.java:781)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.validateStatelessService(ManagedSession.java:610)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.newService(ManagedSession.java:911)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.get(ManagedSession.java:273)
at com.crystaldecisions.enterprise.ocaframework.ManagedSessions.get(ManagedSessions.java:297)
at com.crystaldecisions.enterprise.ocaframework.ServiceMgr.getManagedService(ServiceMgr.java:697)
... 32 more
Caused by: com.crystaldecisions.enterprise.ocaframework.idl.ImplServ.OSCAFactoryPackage.connection_failure: IDL:img.seagatesoftware.com/ImplServ/OSCAFactory/connection_failure:1.0
at com.crystaldecisions.enterprise.ocaframework.idl.ImplServ.OSCAFactoryPackage.connection_failureHelper.read(connection_failureHelper.java:102)
at com.crystaldecisions.enterprise.ocaframework.idl.ImplServ._OSCAFactoryStub.newService(_OSCAFactoryStub.java:92)
at com.crystaldecisions.enterprise.ocaframework.ServiceMgr.getUnmanagedService(ServiceMgr.java:845)
... 46 more


Note:We have all the required jar files with the code and there is no firewall in between the BO server and the system.

Accepted Solutions (0)

Answers (1)

Answers (1)

DellSC
Active Contributor
0 Kudos

What is the code you're using to do this?  It would help to see where the error occurs.

Also, is this code that was written against and earlier version of the SDK that you're upgrading to work with 4.1?  If so, please be aware that a LOT of the ReportEngine functionality has been deprecated and it doesn't work like it did in 3.1 and earlier.  SAP is pushing the RESTful web services and OpenDocument as a replacement for this.

-Dell

Former Member
0 Kudos

Thanks for ur response Dell

We are using the below code to fetch the reports.

 

IInfoObject infoObject = (IInfoObject) infoObj;

 

DocumentInstance widoc = webiRengine.openDocument(infoObject.getID());

DellSC
Active Contributor
0 Kudos

Before you get to this point are you initializing webiRengine with code similar to this?

reportEngines = (ReportEngines)enterpriseSession.getService("ReportEngines");

webiRengine = reportEngines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);

Again, you really need to look at the RESTful web services with OpenDocument instead of using the ReportEngine SDK which, from what I'm hearing, will probably going away with some future update to the software.

-Dell

Former Member
0 Kudos

Hi Dell, bit late reply on the thread but we are working on upgrading from 3.1 to 4.1 and am presently got stuck in the same place which is getting discussed in this thread.

Exception in thread "main" com.businessobjects.rebean.wi.CommunicationException: Cannot initialize Report Engine server. (Error: RWI 00226)

Caused by: com.crystaldecisions.enterprise.ocaframework.OCAFrameworkException$AllServicesDown: Unable to find servers in CMS *************:***** and cluster ******* with kind webiserver and service null. All such servers could be down or disabled by the administrator. (FWM 01014)

Here is the SDK we use.

reportEngines = (ReportEngines)enterpriseSession.getService("ReportEngines");

if (riverDocument.getKind().equals("Webi"))
                              reportEngine = reportEngines.getService
                              (ReportEngines.ReportEngineType.WI_REPORT_ENGINE);
                        else {
                              reportEngine = reportEngines.getService
                              (ReportEngines.ReportEngineType.FC_REPORT_ENGINE);
                        }
                       
                        System.out.println("\nTimeStamp BEFORE REFRESH AND AFTER eportEngineType" + new Timestamp(System.currentTimeMillis()));

                        doc = reportEngine.openDocument(riverDocument.getID());

DellSC
Active Contributor
0 Kudos

You need to make sure that there are two things running inside of your BO system:

1.  Webi Processing Server.

2.  And Adaptive Processing Server that has the "Rebean" service in it.  This is what the ReportEngine will connect to.

-Dell

Former Member
0 Kudos

Thanks Dell...

we did that and we have these servers up and running. still, we are getting the same exceptions.

I have all the required BO 4 Jars in place and have given the code which we use to connect to BO server.

Unable to find what could be the issue, could you please advise?

In SDK, Has that changed from BO 3.1 to BO 4.1? like, way we call OpenDocument?

DellSC
Active Contributor
0 Kudos

Yes, there have been some pretty significant changes to the ReportEngine SDK.  Some of it has been deprecated.  Most (but not all!) of the functionality is available in the new RESTful web services SDK which is where SAP will be moving most, if not all, of the SDKs over the next few years.  The cool thing about RESTful web services is that you don't have to actually install anything on the developer workstation or the server where your application runs in order to be able to use it.  You communicate with it through HTTP get, put, and post commands and get the response back in either XML or JSON format.

For more info about this new SDK see here:  .

-Dell

former_member204024
Participant
0 Kudos

Hi,

Can you please try the following code

if (riverDocument.getKind().equals("Webi"))

                              reportEngine = reportEngines.getService

                              (ReportEngineType.fromInt(1));

                        else {

                              reportEngine = reportEngines.getService

                              (ReportEngineType.fromInt(2));

                        }

Regards,

Subramanian S.

Former Member
0 Kudos

Aplologies for the delay in reply Subramanian,

I tried the code you suggested and it looks like below now,but, its still failing with the same error.

if (riverDocument.getKind().equals("Webi"))

reportEngine = reportEngines.getService

(ReportEngineType.fromInt(1));

else {

reportEngine = reportEngines.getService

(ReportEngineType.fromInt(2));

}

  

doc = reportEngine.openDocument(XXXDocument.getID());

while debgugging, i do see an succesfull connection being made and an value in "reportEngine" as well as in "XXXDocument" but still, it fails in above highlighted line.

Exception in thread "main" com.businessobjects.rebean.wi.CommunicationException: Cannot initialize Report Engine server. (Error: RWI 00226)

at com.businessobjects.rebean.wi.occa.OccaConnection.doConnect(Unknown Source)

Former Member
0 Kudos

If the suggestions provided by Dell has been checked and are good, it looks to be jar files issue.

Backup and remove all the jars from your application context. Now as a test add all the jars present in the java/lib folder of BI 4.1 version to your application context and test the code.

You might get over this issue, however can be stuck with not implemented errors, if your code is using any deprecated API's. As there has been a major change in Report Engine SDKs from XI 3.1 to BI 4.x.

You need to check your code with BI 4.x Report Engine API guide and see whether you are using any deprecated API's.

As you are migrating to BI 4.1, it is best to look at the Restful webservices approach as it is the future and most of the functionalities deprecated in Report Engine SDKs from BI 4.x is introduced in it.

For more information on Restful webservices, look at

Thanks,

Prithvi

former_member204024
Participant
0 Kudos

Hi,

As prithvi suggested, you can use RESTful service.

Regards,

Subramanian S.