on 02-11-2009 8:31 AM
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;
}
You're getting connection errors when the SDK is on one machine, but not another.
What firewalls are there?
Sincerely,
Ted Ueda
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.