cancel
Showing results for 
Search instead for 
Did you mean: 

RAS Issue CORBA communication failure: reason[error number WSAECONNREFUSED]

Former Member
0 Kudos

I have integrated Crystal Reports with my J2EE application using the Crystal RAS API.

I am facing a problem when I try to open the report using RAS API in my application.

We have deployed the application on Websphere Application server running on Linux (RHEL), and for the reports server, we have Business Objects XI 3.0 installed on a server running Windows Server 2003.

When I try to open a report using the RAS API, my application goes into indefinite wait. During that period, I have observed that the Business Objects server generates a log file which contains the following message.

ErrorLog 2009 1 19 4:59:37.187 6264 952 (.\dts\corbaclientrequestcommadapter.cpp:419): CORBA communication failure: reason[error number WSAECONNREFUSED] minor[1330577418] reqType[154] agentId=[""]

ErrorLog 2009 1 19 4:59:38.187 6264 952 (.\dts\corbaclientrequestcommadapter.cpp:320): Resending result to client. reqType=154 agentId="" nRetryInterval=1000

ErrorLog 2009 1 19 4:59:39.156 6264 952 (.\dts\corbaclientrequestcommadapter.cpp:419): CORBA communication failure: reason[error number WSAECONNREFUSED] minor[1330577418] reqType[154] agentId=[""]

In another instance, I have deployed my application on Websphere Application Server running on a Windows box instead of Linux.

I was successfully able to open the reports using the same code in this setup.

Setup A

Websphere Application Server running on Windows

Business Objects XI Server running on Windows

Setup B

Websphere Application Server running on Linux

Business Objects XI Server running on Windows

I have observed that I am able to open the reports in Setup A, but in Setup B I am facing this problem.

Kindly request the SAP forum members to help me in resolving the problem.

I am including the code below for reference.

Thanks and Regards,

Siva P.R. Sadhu

 

    // Method to get Crystal Enterprise Session
    public static IEnterpriseSession getCrystalEnterpriseSession(
                String userName, String password, String cmsName, String authType)
                throws ServiceException {

            try {
               
                // Connect to Crystal Enterprise
               
                    ISessionMgr sm = CrystalEnterprise.getSessionMgr();
                    crystalEnterpriseSession = sm.logon(userName, password, cmsName,
                           authType);
                   
                    /* In a production environment, it is recommended that you use Trusted Authentication single sign-on.
                     * To use Trusted Authentiction, both the server and the client machine must be configured before using the code below.
                     * For details, see "How do I use Trusted Authentication?" in the BusinessObjects Enterprise Java developer guide.
                     */
                    // ITrustedPrincipal trustedPrincipal = sm.createTrustedPrincipal(userName, cmsName);
                    // IEnterpriseSession enterpriseSession = sm.logon(trustedPrincipal);
                   
                    if(crystalEnterpriseSession!=null) {
                        logger.info("Logon Successful to Crystal Reports Server");
                    }else {
                        logger.error("Logon Not Successful to Crystal Reports Server");
                    }
               
            } catch (SDKException ex) {
                logger.error("getCrystalEnterpriseSession", ex);
               
            }catch (Exception ex) {
                logger.error("getCrystalEnterpriseSession", ex);
               
            }
            return crystalEnterpriseSession;
        }


    public static RepositoryReport getReportDocument(String reportName,
                HttpServletRequest request) {

            RepositoryReport repositoryReport = new RepositoryReport();
            try {
                IEnterpriseSession es = getCrystalEnterpriseSession(request);

                // Get the InfoStore service from Crystal Enterprise
                logger.debug("getting InfoStore");
                IInfoStore infoStore = (IInfoStore) es.getService("InfoStore");
                logger.debug("getting InfoStore SUCCESS");

                // Retrieve the report by name from Crystal Enterprise
                IInfoObjects oInfoObjects = infoStore
                        .query("Select * From CI_INFOOBJECTS Where SI_NAME = '"
                                + reportName + "'");
                // Open the report into a Report Document object
                if (oInfoObjects != null && oInfoObjects.size() != 0) {

                    IInfoObject infoObject = (IInfoObject) oInfoObjects.get(0);
                    repositoryReport.setReportDocument((IReport) infoObject);

                    //       Get the Report Application Factory service from Crystal
                    // Enterprise
                    logger.debug("getting RASReportFactory");
                    IReportAppFactory rptAppFactory = (IReportAppFactory) es
                            .getService("", "RASReportFactory");
                    logger.debug("getting RASReportFactory SUCCESS");

                    //The following code in red goes into indefinite wait
    repositoryReport.setReportClientDocument(rptAppFactory
                            .openDocument(infoObject, 0, Locale.ENGLISH));

                    logger.debug("Open Document SUCCESS");
                } else {
                    throw new Exception(
                            "The requested report cannot be found on the Reports Server");
                }

            } catch (SDKException ex) {
                logger.error("getReportDocument", ex);
               
            } catch (Exception ex) {
               logger.error("getReportDocument", ex);
            }
            return repositoryReport;
        }

Accepted Solutions (1)

Accepted Solutions (1)

ted_ueda
Employee
Employee
0 Kudos

You're getting connection errors when the SDK is on one machine, but not another.

What firewalls are there?

Sincerely,

Ted Ueda

Answers (3)

Answers (3)

Former Member
0 Kudos

Dear All,

I had successfully tracing the traffic of RAS connectin. The error shows at TCP incorrect check sum error.This error causes network layer discards the package and never reach to cobra. The interesting point is that problem limit to some computer and they never get connected to RAS. CAn any body tell me how to trace this error.

regards

jovi

0 Kudos

You can add tracing to the RAS service to possibly see why or why it's failing. Stop RAS and add "-trace -crpetrace 7" without the double quotes to the end of the command line.

Show these to your network IT guys and they may be able to determine why it's failing to connect to the other machine. It's likely permissions or possibly a network driver issue. If you have more than one NIC card they need to be bridged also.

Don't for get to turn tracing off, it can load the servers down considerably.

Former Member
0 Kudos

Dear all,

We have experience the same problem with CORBA Communication failure. We have the CMC and RAS server on the same machine.

But the problem just happened at all Win2003 R2 SP1 with dual Quad Xeon with 4GM PAE (Dell Server).

Another server with Win2003 R2 SP1 with single Quad Xeon 2GM (IBM Server) is fine.

regrads

Jovi

Former Member
0 Kudos

No. We do not have any firewall. I have also disabled the OS firewall of RHEL.

We have three systems in the picture.

System A

IP : 10.1.48.45

OS : Windows

Websphere Application Server

System B

IP : 10.1.48.46

OS : Windows

Business Objects XI 3.0

System C

IP : 10.1.48.47

OS : Linux

Websphere Application Server

System A to System B : connectivity is working perfectly

System C to System B : I am facing the specified problem

ted_ueda
Employee
Employee
0 Kudos

Something is blocking.

I would use [Wireshark|http://www.wireshark.org] to trace the network accesses.

Sincerely,

Ted Ueda