Operating System - OpenVMS
1753797 Members
7603 Online
108799 Solutions
New Discussion юеВ

Re: DCL With more than 8 Parameters

 
Craig A
Valued Contributor

Re: DCL With more than 8 Parameters

What is the contents of LOG_TEST1.COM?

IF this procedure gets called with either a /OUTPUT= or in BATCH there is a good chance that unless there is a specific check then the:

%DCL-W-DEFOVF, too many command procedure parameters - limit to eight

Would never be noticed (I guess I'm stating the bleeding obvious in that statement)

If LOG_TEST1.COM doesn't do anything much then maybe the coder simply made some assumptions.

Undoubtedly still crap DCL - Definitely a case of a little knowledge being a dangerous thing.

Craig.
Rob Hirschbeck
Occasional Advisor

Re: DCL With more than 8 Parameters

Hi Bob,

As of now, the callout scripts look only for ".com" files. In fact (I tried it), if you put any other kind of file in the "user callout" directory [.usrco], the oracle process foolishly appends ".com" to it and tries to @ it (ie. "@log_test1.exe;2.com") - not kidding!

This issue is now classified as a severity 3 bug and is being addressed by the oracle VMS development team...

Rob
Robert Gezelter
Honored Contributor

Re: DCL With more than 8 Parameters

Rob,

Ok, had to offer that possibility.

- Bob Gezelter, http://www.rlgsc.com
shahina shaik
New Member

Re: DCL With more than 8 Parameters

Hi Rob,

DCL has a limitation of 8 parameters. VMS engineering has extended the support to more than 8 parameters, which would be available in the future release.

Regards,
Shahina.
Willem Grooters
Honored Contributor

Re: DCL With more than 8 Parameters

Problem here is white-space - and whitespace acts as a delimiter in DCL paramaters.

Count the parameters as delimited by whitespace, and you'll find 10 parameters:

$ sclsimg SERVICE VERSION=1.0 service=GRADE.AMERICAS.MITTALCO.COM database=SPRTD instance= host=spbas1 status=up reason=boot timestamp=03-Jun-2009 01:20:26

Above should be coded as:

$ sclsimg "SERVICE VERSION=1.0" service=GRADE.AMERICAS.MITTALCO.COM database=SPRTD instance= host=spbas1 status=up reason=boot "timestamp=03-Jun-2009 01:20:26"

Now you get 8 parameters.

Because of this, I tend to pass all string parameters as quoted strings - if not all. Or disallow whitespace within string-parameters. In this case, that could also be a solution: SERVICE_VERSION, and 03-Jun-2009:01:20:26 in stead of "SERVICE VERSION" and "03-Jun-2009 01:20:26"

The solution of engineering to simply raising the number of parameters (which really is a good thing) will NOT help in this matter. Though LOG_TEST1.COM will start executing now, it will stil fail if the parameters are passed the wrong way:

P1 = SERVICE
P2 = VERSION=1.0
P3 = service=GRADE.AMERICAS.MITTALCO.COM
...

where (my deduction) it should be read as:

P1 = SERVICE VERSION=1.0
P2 = service=GRADE.AMERICAS.MITTALCO.COM
...

Of course this could be handled, but why add complexity when it can easily be avoided...
Willem Grooters
OpenVMS Developer & System Manager
Derek Garson
Frequent Advisor

Re: DCL With more than 8 Parameters

>Or any other ideas?

How hacky do you want it to be? ;-)

Close examination of the generated procedure suggests a couple of ways of attacking it.

(some code from it follows)

$ @ORA_CRS_HOME:ORAUSER.COM
$ ignore$$ = f$verify(verify$$)
$ sclsimg :== @user_disk:[oracle.oracle10gr2.cluster.racg.usrco]log_test1.com;2
$ IF DEBUG THEN SET NOVERIFY
$ IF "''SYSOUT'" .NES. "" THEN DEFINE/NOLOG SYS$OUTPUT 'SYSOUT'
$ sclsimg SERVICE VERSION=1.0 service=GRADE.AMERICAS.MITTALCO.COM database=SPRTD instance= host=spbas1 status=up reason=boot timestamp=03-Jun-2009 01:20:26

1. You will note that it (erroneously?) defines sclsimg as a global symbol. Hence if you can inject an outer level local symbol of the same name that runs a program that amends its argument list and then invokes the real command procedure, you may avoid the problem.

OR

2. You will note that it invokes ORAUSER.COM. If that procedure can be modified (but modified so that it only affects invocations in this context) then ORAUSER.COM could create a new, fixed version of the generated command procedure and invoke it. (Work needed to flesh this out into something that works.)

Sure, it would be better for Oracle just to fix the problem.
Richard W Hunt
Valued Contributor

Re: DCL With more than 8 Parameters

We are also preparing to install ORACLE 10gR2, but as you know, there are flavors of ORACLE - as stand-alone server, enterprise server, RAC server, client-only, etc.

Which flavor of ORACLE were you installing. Does ORACLE have any comment on the flavor(s) to which this bug applies? And if you have called ORACLE, there is a TAR number or a TIR number or something like that. (I forget what they call it because my ORACLE team usually handles that, not me.)

Can you please post the trouble report number so that my ORACLE gurus can look it up and see if this is going to be a show stopper for us, too? Also, if ORACLE acknowledges the bug, we need to be able to know when a fix is available.

We are on OpenVMS 8.3, just installed this month and patched up-to-date through July 2009. Our next upgrade step was going to be the ORACLE installation. We really appreciate any details you can give on this subject.

Richard
Sr. Systems Janitor
Rob Hirschbeck
Occasional Advisor

Re: DCL With more than 8 Parameters

Hi Richard,

There was a bug causing Oracle FAN callouts not to work. There is a patch now. See the following note on Metalink:

How to implement Fast Application Notification (FAN) Callouts on OpenVMS
Doc ID: 846327.1

As far as installing and configuring, we have a four node Integrity Server cluster with Oracle 10.2.0.4 RAC installed on all four nodes. Install is NOT easy. Careful review of the notes in the following Metalink note will be very helpful:

Index of install related notes for Oracle 10.2 on hp OpenVMS
Doc ID: 726914.1

Unfortunately, 10.2.0.4 seems to still have some bugs on OpenVMS - 10.2.0.5 I think (hope?) is due out soon.

Hope this helps...

Rob
Richard W Hunt
Valued Contributor

Re: DCL With more than 8 Parameters

Yes, it does. Thanks much, Rob. And good luck!
Sr. Systems Janitor