Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> OAS 4.0.7.1 on solaris 2.6 problem (PL/SQL cartridge, CGI)

OAS 4.0.7.1 on solaris 2.6 problem (PL/SQL cartridge, CGI)

From: Guy Dallaire <gdallair_at_criq.qc.ca>
Date: Tue, 18 Jan 2000 20:32:52 GMT
Message-ID: <3884cb21.93809298@news.risq.qc.ca>


Can anyone running OAS 4.0.7.1 under SOLARIS 2.6 help me ? Please note that this sample require you to run PERL outside of oracle (we do not use oracle perl's cartridge because we simply do not trust it, too far behind standard perl)

I submitted the following probelm to oracle and they say they can't reproduce it. I can reproduce it on TWO different machines. I don't think I'm dumb enough to break TWO configurations.

Here is what I posted to oracle. If someone can take the time to try it and tell me what happens, I would REALLY be glad.

THANKS A MILLION TIME TO THE PEOPLE THAT WILL TAKE THE TIME (15 minutes or so) to test this.

Abstract: CGI redirect not working

 Error Numbers
 ows-05101
 ora-6550

 OWS-05101: Execution failed due to Oracle error -6550

 PL/SQL Cartridge SERVICE: CRIQ_PLSQL_DEV/VEILLE_AUTRE  PROCEDURE: test.resul

  Applied patches
  Patch 1 enterprise domestic 128 bits

  Problem description

 We have a problem with one of our PL/SQL application here. It used to work just fine with OAS 3.0.2 with both netscape and internet explorer. Since we upgraded to OAS 4.0.7.1, we get OWS-05101 caused by ORA-6550 errors.

Our application is used to transmit the contents of a file to a cgi-bin proc along with an URL. The cgi-bin processes the file and then simply redirects to the URL we provided.

THIS APPLICATION IS MISSION CRITICAL FOR OUR BUSINESS AND WE NEED TO GET IT WORKING ASAP. ALL OUR EXTERNAL WEB CLIENTS NEED THIS THING TO WORK. WE CANNOT GO BACK TO OAS 3.02 FOR Y2K reasons (we're migrating all our internal applications to developer server 6.0 and we NEED OAS 4.0.7)

What happens is that instead of returning to the URL we sent, we get the message mentionned above.

 We then have to press the "reload" button in IE4 or IE5 and the intended page shows ok.

We looked in the wrb.log file with max debugging enabled and we dicovered that the parameters to the "call back" procedure are NOT PASSED back even tough there are such parameters.

So it behaves as if the procedure was called with a wrong set of parameters.

  Please note that this behavior:

  1. ONLY OCCURS WITH IE4 or IE5 on win (Works OK on a MAC)
  2. ONLY occurs with OAS 4.0.7.x (Worked OK with 3.0.2)
  3. ONLY occurs if a file upload to the cgi-bin procedure is done. If we simply call a CGI-BIN without uploading anything, it returns and everything is fine.

 We managed to put a little test to easily reproduce the problem.

Put the package "test" into your database. It needs to be compiled in a schema for which a DAD and a PL/SQL cartridge is configured. Store the username and password in the DAD.

Set the value of "my_server" variable to the correct hostname:port/pl_sql_agent for your pl/sql cartridge

Put test_ben.cgi in your cgi-bin directory (This is a Perl procedure)

Call the procedure test.load with your browser using your broswer pointed to: (Ex: http://my_server:85/my_agent/plsql/test.load)

This will ask you to input a local file that will be uploaded to the cgi-bin procedure (seklect a file from the dialog box). The cgi-bin does nothing with it and simply does an URL redirect to another procedure that displays the name of the file we sent.

Note: Test with Netscape and Internet Explorer on windows and you will see that the error only occurs with Internet Explorer


  Package test


  CREATE OR REPLACE PACKAGE test IS
  PROCEDURE load;
  PROCEDURE resul(my_filename IN VARCHAR2);   END;
  /
  CREATE OR REPLACE PACKAGE BODY test IS   PROCEDURE load
  IS
  my_server VARCHAR2(100):='http://myserver:my_port/my_agent/';   BEGIN
  htp.bold('No space in the filename or in the path');   htp.nl;

htp.formopen('/cgi-bin/test_ben.cgi','POST',NULL,'multipart/form-data');

  htp.print('<INPUT TYPE="file" NAME="my_filename" VALUE="" SIZE=45>');
  htp.nl;
  htp.formhidden('my_url',my_server||'plsql/test.resul?my_filename=');

  htp.formsubmit('GO','GO');
  htp.formclose;
  END load;

  PROCEDURE resul(my_filename IN VARCHAR2)   IS
  BEGIN
  htp.print('The value of Ğmy_filenameğ is : '||my_filename);   END resul;
  END;
  /


Here is the cgi-bin test_ben.cgi


  #!/usr/local/bin/perl

  use CGI qw(:standard);
  use CGI::Carp;

$p_url = param('my_url');
$p_ndf = param('my_filename');

$q = new CGI;

  print $q->redirect(-uri=>$p_url . $p_ndf, -nph=>0);


THANKS A MILLION TIME Received on Tue Jan 18 2000 - 14:32:52 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US