Home » Fusion Middleware & Colab Suite » Weblogic & Application Server » Single report server name addressing two physical servers (Oracle Forms 10g)
Single report server name addressing two physical servers [message #346450] |
Mon, 08 September 2008 10:41  |
Hanumantha Raju
Messages: 7 Registered: April 2001
|
Junior Member |
|
|
Hi,
I need to catch the errors Frm-41213 and Frm-41214 from the Form.
I have tried with On-Error trigger. But its not catching the above errors.
Is there any other we can trap these errors?
Thanks
Hanu [EDITED by DJM: rename thread and move it. Previous title was "How to Trap the FRM-41213 and FRM-41214 error messages from Forms 10g?"]
[Updated on: Wed, 10 September 2008 18:58] by Moderator Report message to a moderator
|
|
|
|
|
|
|
|
Re: How to Trap the FRM-41213 and FRM-41214 error messages from Forms 10g? [message #347071 is a reply to message #346904] |
Wed, 10 September 2008 10:15   |
Hanumantha Raju
Messages: 7 Registered: April 2001
|
Junior Member |
|
|
Dear David,
Sorry for not mentioning the Error Description.
I have identified the line of code that is returning error.
But i have placed an Exception just after the line which is giving error. But the exception handler is not able to handle the error.
My requirement is in a multiple report server environment if one report server is not available it should run on the other report server available. We are able to achieve that but only thing is First its displaying a message when it tried to run the first report server and then displaying the output which is generated at the second report server.
So, I wanted to trap that error and handle it in such a way that it shouldn't be displayed.
/* Get a handle to the Report Object itself. */
v_report_id := FIND_REPORT_OBJECT(vc_reportoj);
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_FILENAME ,v_rep_file_name);
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_COMM_MODE ,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_EXECUTION_MODE ,BATCH);
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_DESFORMAT ,vc_runformat);
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_SERVER ,vc_reportserver);
IF vc_destype='CACHE' THEN
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_DESTYPE ,CACHE);
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_DESNAME ,v_orarrp_file);
ELSIF vc_destype='FILE' THEN
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_DESTYPE ,FILE);
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_DESNAME ,p_desname);
ELSIF vc_destype='PRINTER' THEN
v_orarrp_file := v_orarrp_file||'.rrpa';
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_DESTYPE ,FILE);
v_report_cache := get_server_info.FN_GET_REPORTSERVER_CACHE;
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_DESNAME ,v_report_cache||v_orarrp_file);
SET_REPORT_OBJECT_PROPERTY(v_report_id ,REPORT_DESFORMAT ,'pdf');
END IF;
--
IF p_param_form = 'N' THEN
SET_REPORT_OBJECT_PROPERTY(v_report_id,REPORT_OTHER,'ENVID=reppath PARAMFORM=NO');
ELSE
SET_REPORT_OBJECT_PROPERTY
(v_report_id,REPORT_OTHER,'ENVID=reppath PARAMFORM=YES '||
' P_USER_CONNECT='||VC_CONNECT||
' P_SERVER_NAME='||vc_reportserver ||
' P_REPORT_NAME='||v_rep_file_name ||
'P_ACTIONS='||machine_name||'/reports/rwservlet?'|| ' P_ENVID=reppath');
END IF;
BEGIN
--Getting the FRM-41213 error after this line once
vc_ReportServerJob:=RUN_REPORT_OBJECT(v_report_id,pl_id);
EXCEPTION
WHEN OTHERS THEN NULL;
END;
vjob_id :=substr(vc_ReportServerJob ,length(vc_reportserver)+2 ,length(vc_ReportServerJob));
IF vjob_id IS NULL THEN
p_rpt_status := 'SERVER NOT RUNNING'; RETURN;
END IF;
BEGIN
--Getting the FRM-41213 error after this line once
vc_rep_status := REPORT_OBJECT_STATUS(vc_ReportServerJob);
EXCEPTION
WHEN OTHERS THEN NULL;
END;
Please advise me.
Thanks
Hanu
[Updated on: Wed, 10 September 2008 10:19] Report message to a moderator
|
|
|
|
Re: Single report server name addressing two physical servers [message #347394 is a reply to message #347139] |
Thu, 11 September 2008 08:23   |
Hanumantha Raju
Messages: 7 Registered: April 2001
|
Junior Member |
|
|
Dear David,
One more thing i would like to tell you is, The above code am calling in a loop by passing the Physical Report Server name as a parameter.
So, first it will try to run in "repsrvr1" if its FINISHED then exit from the loop else run on "repsrvr2" and so on.
The logic is working pretty good but only problem is if the report server "repsrvr1" is down then at the begining itself we are getting the error message "FRM-41213 Unable to connect to the Report server repsrvr1" and then the report is submitting in the second report server "repsrvr2" and displaying the output.
So, my final intention is when ever a report is completed successfully in any one of the report servers available, the first error message should not be displayed.
Thanks
Hanu
|
|
|
Re: Single report server name addressing two physical servers [message #356465 is a reply to message #347394] |
Thu, 30 October 2008 16:15  |
scorpio_
Messages: 8 Registered: October 2008
|
Junior Member |
|
|
Hello! I´m using code similar to tis code
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME,report_file_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_SERVER,report_server_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE,report_destype_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESFORMAT,report_format);
hidden_action := hidden_action ||'&report='||
GET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME);
hidden_action := hidden_action||'&destype='||
GET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE);
hidden_action := hidden_action||'&desformat='||
GET_REPORT_OBJECT_PROPERTY (report_id,REPORT_DESFORMAT);
hidden_action := hidden_action ||'&userid='||get_application_property(username)||'/'||
get_application_property(password)||'@'||
get_application_property(connect_string);
c_old :='@';
FOR i IN 1..LENGTH(report_otherparam) LOOP
c_new:= substr(report_otherparam,i,1);
IF (c_new =' ') THEN
c:='&';
ELSE
c:= c_new;
END IF;
-- eliminate multiple blanks
IF (c_old =' ' and c_new = ' ') THEN
null;
ELSE
v_report_other := v_report_other||c;
END IF;
c_old := c_new;
END LOOP;
hidden_action := hidden_action ||'&'|| v_report_other;
hidden_action := reports_servlet||'?_hidden_server='||report_server_name||encode(hidden_action);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_OTHER,'pfaction='||
hidden_action||' '||report_otherparam);
-- run Reports
report_message := run_report_object(report_id);
rep_status := report_object_status(report_message);
IF rep_status='FINISHED' THEN
vjob_id :=substr(report_message,length(report_server_name)+2,length
(report_message));
WEB.SHOW_DOCUMENT(reports_servlet||'/getjobid'||vjob_id||'?server='||
report_server_name,'_blank');
ELSE
--handle errors
null;
END IF;
but its only executed with a single report, if I want to execute multiply reports what can i have to do?
Thanks!!
|
|
|
Goto Forum:
Current Time: Wed Mar 22 01:33:20 CDT 2023
|