- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: DCL With more than 8 Parameters
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-10-2009 06:03 AM
06-10-2009 06:03 AM
DCL With more than 8 Parameters
I have a third party product that automatically generates a DCL command file and tries to execute it. The problem is that it tries to pass 10 parameters to the DCL command procedure so it never executes and fails with DCL-W-DEFOVF. Since it is a third party product (Oracle 10gR2 actually), I can not change the way it generates or tries to execute the command procedure.
Does anyone know of a way to make DCL just ignore parameters after 8 and execute the procedure anyway? Or is there some way to redefine the @ symbol so that it does something other than execute a DCL command procedure? Or any other ideas?
Thanks,
Rob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-10-2009 06:14 AM
06-10-2009 06:14 AM
Re: DCL With more than 8 Parameters
You get eight.
There's no solution here that doesn't involve either packaging the parameters passed into DCL into a comma-separated quoted list or such (and using the available eight parameters more densely), or writing the data into a file and passing that to the procedure, or replacing the DCL procedure invocation call in the application with an image invocation.
If you have some control over the parameters and want to truncate the list, pass in a ! character.
As for resolving this through Oracle or OpenVMS enhancements or modifications, you're left to contact the vendors. That's going to take a while, though I might toss this at Oracle and ask them how to work around the limit.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-10-2009 06:43 AM
06-10-2009 06:43 AM
Re: DCL With more than 8 Parameters
I more or less concur with Hoff.
If it is an unmodified packaged product, it is the vendor's (e.g., Oracle's) problem. Other than the length of the command line, this has not changed since the beginning (of VMS in any form). In essence, since this is the functionality of the system from the beginning (not a change in releases or patches), the code in question COULD NEVER HAVE WORKED OR BEEN TESTED successfully.
If one has access to sources of the components involved, it may be possible to work out a circumvention, but as noted, the responsibility clearly lies with the vendor.
- Bob Gezelter, http://www.rlgsc.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-10-2009 07:41 AM
06-10-2009 07:41 AM
Re: DCL With more than 8 Parameters
I pretty much thought that too. Oracle has confirmed it to be a bug in their current release for OpenVMS and they are working to resolve it. I was just hoping there might be some alternative...
Rob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2009 03:29 AM
06-11-2009 03:29 AM
Re: DCL With more than 8 Parameters
My gast is well and truly flabbered (and that is not something that happens everyday!)
Craig
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2009 04:00 AM
06-11-2009 04:00 AM
Re: DCL With more than 8 Parameters
This is based upon DCL adding the missing closing ".
fwiw
Wim
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2009 04:15 AM
06-11-2009 04:15 AM
Re: DCL With more than 8 Parameters
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2009 06:57 AM
06-11-2009 06:57 AM
Re: DCL With more than 8 Parameters
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2009 07:36 AM
06-11-2009 07:36 AM
Re: DCL With more than 8 Parameters
I placed a DCL command file called LOG_TEST1.COM in the [racg.usrco] directory and here is the script generated by oracle to execute it:
$! Script automatically generated
$ SET NOON
$ DELETE := DELETE
$ DEBUG := FALSE
$ ECHO := WRITE SYS$OUTPUT
$ SYSOUT = F$TRNLNM("SYS$OUTPUT")
$ IF F$TRNLNM("ORA_SCLS_LOGGING") .EQS. "TRUE"
$ THEN
$ DEBUG := TRUE
$ DEFINE /NOLOG /PROCESS SYS$OUTPUT LOG_DISK:[ORACLE.SCLS_SCR]naa_274a14.log
$ ECHO "PROCESS NAME: ""''F$GETJPI("","PRCNAM")'"" PROCESS ID: ''F$GETJPI("","PID")'"
$ ECHO "IMAGE_NAME: ""user_disk:[oracle.oracle10gr2.cluster.racg.usrco]log_test1.com;2"""
$ ECHO "PARAM_STRING: ""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 """
$ SET VERIFY
$ ELSE
$ DEFINE/NOLOG SYS$OUTPUT NL:
$ ENDIF
$ DEFINE /NOLOG /PROCESS ORA_CRS_HOME "user_disk:[oracle.oracle10gr2.cluster]"
$ DEFINE /NOLOG /PROCESS ORACLE_HOME "user_disk:[oracle.oracle10gr2.database]"
$ IF .NOT. DEBUG
$ THEN
$ SET ON
$ ON ERROR THEN GOTO ERROR_HANDLER
$ DEFINE /NOLOG /PROCESS SYS$ERROR LOG_DISK:[ORACLE.SCLS_SCR]naa_274a14.err
$ ENDIF
$ verify$$ = f$verify(0)
$ @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
$ STS = '$STATUS'
$ IF .NOT. DEBUG
$ THEN
$ DELETE LOG_DISK:[ORACLE.SCLS_SCR]naa_274a14.;0
$ IF F$SEARCH("LOG_DISK:[ORACLE.SCLS_SCR]naa_274a14.err") .NES. "" THEN DELETE LOG_DISK:[ORACLE.SCLS_SCR]naa_274a14.err;*
$ ENDIF
$ EXIT STS
$!
$ERROR_HANDLER:
$ STS = '$STATUS'
$ SET NOON
$ EXIT STS
You can see that the LOG_TEST1.COM script will be called with 10 parameters. This causes DCL to report "%DCL-W-DEFOVF, too many command procedure parameters - limit to eight" and not execute the procedure.
And flabbered or ghasted or not, they obviously never tested this feature on their VMS product - I guess they spend too much time with UNIX...
Rob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2009 07:57 AM
06-11-2009 07:57 AM
Re: DCL With more than 8 Parameters
I do not have an installation that I can test on, but have you checked that this is actually meant to be used with command files? (As opposed to actual images.)
Parameter processing from C/C++ would, I suspect, work correctly.
Also, as has been noted, putting the entire parameter in quotes would also address the problem (although, to be fair, it would require a code change).
- Bob Gezelter, http://www.rlgsc.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2009 07:58 AM
06-11-2009 07:58 AM
Re: DCL With more than 8 Parameters
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2009 08:54 AM
06-11-2009 08:54 AM
Re: DCL With more than 8 Parameters
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2009 09:50 AM
06-11-2009 09:50 AM
Re: DCL With more than 8 Parameters
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-19-2009 01:35 AM
06-19-2009 01:35 AM
Re: DCL With more than 8 Parameters
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-19-2009 04:21 AM
06-19-2009 04:21 AM
Re: DCL With more than 8 Parameters
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...
OpenVMS Developer & System Manager
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-21-2009 10:08 PM
07-21-2009 10:08 PM
Re: DCL With more than 8 Parameters
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-07-2009 07:44 AM
08-07-2009 07:44 AM
Re: DCL With more than 8 Parameters
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2009 07:12 AM
08-13-2009 07:12 AM
Re: DCL With more than 8 Parameters
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2009 08:47 AM
08-13-2009 08:47 AM