标签: vms

从VMS迁移到Unix

曾几何时,一队人坐下来用C编写了一个应用程序,在VAX上运行VMS.这是一项相当重要的工作,并在LargeCo开展了一项相当重要的后端业务.这整个shebang工作得很好,二十五年后,它仍在继续努力并做到这一点.

时间的流逝,人们退休,恰巧的是,最后男子站在已经上交的钥匙新一代谁-我们想象的-小于高兴地发现自己老得足以当自己的弟弟系统的看护人.然而,由于他们处理Ultra Legacy Systems的想法并不令人沮丧,他们无法证明更换古老应用程序的成本是合理的.

LMS发现我habla unix并将这个问题提交给我.因为我habla unix但是不说CI会总结并把它交给你.长话短说:

LMS希望将用VMS编写的LegacyApp移植到unix.资源?他能看的任何书吗?他可以跟人说话吗?

c unix vms vax

11
推荐指数
3
解决办法
2647
查看次数

VMS上Python中的简单CGI Web服务器

我试图在python上运行VMS上运行一个非常简单的CGI服务器.

import sys    
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler    
server_address=('',8080)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是它正确地提供静态内容并且它试图执行CGI-s(它在正确的位置,我已经将这些CGI与Apache一起使用,因此该部分绝对不是问题)但它挂在某处.这是我对VMS不了解的事情.

任何指向正确方向的指针都将受到赞赏.:)

更新:简化,我需要在VMS上执行程序并以某种方式获取该程序的结果.任何对执行子进程和获取结果的引用对我来说都足够了.

python cgi vms

6
推荐指数
1
解决办法
894
查看次数

OpenVMS上的Java?

我们在OpenVMS Alpha和Integrity服务器上运行批处理文件.到目前为止,它们都是用COBOL编写的.您可以想象,有很多原因导致无法维持该过程.

与此同时,我们拥有一支使用Eclipse并且非常了解Java的开发人员团队.是否可以将Eclipse与OpenVMS一起使用?

java eclipse vms openvms

5
推荐指数
1
解决办法
2200
查看次数

如何使用Perl替换运算符禁用变量插值?

我正在尝试替换VMS上的文本文件中的特定行.通常,这是一个简单的Perl单线程.但是当替换方是包含VMS路径的符号时,我遇到了问题.这是文件和我尝试的内容:

file1.txt的内容:

foo
bar
baz
quux
Run Code Online (Sandbox Code Playgroud)

尝试替换第3行:

$ mysub = "disk$data1:[path.to]file.txt"
$ perl -pe "s/baz/''mysub'/" file1.txt
Run Code Online (Sandbox Code Playgroud)

产生以下输出:

foo
bar
disk:[path.to]file.txt
quux
Run Code Online (Sandbox Code Playgroud)

看起来Perl过于苛刻,用$data1一个不存在的变量的内容替换了路径的一部分(即什么都没有).运行调试器确认了这一点.我没有提供/e,所以我认为Perl应该直接替换文本.有没有办法让Perl这样做?

(另请注意,我可以在linux命令行中重现类似的行为.)

regex perl vms

5
推荐指数
1
解决办法
1949
查看次数

有没有合理的方法在VMS上实现cd命令?

我希望能够说出类似的话

cd [.fred]并让我的默认目录转到那里,我的提示更改为指示当前位置的完整路径.

vms

4
推荐指数
1
解决办法
957
查看次数

如何将文件从 VMS 复制到 Windows,然后再复制回来?

我正在尝试将C源文件从 vms alpha复制到 Windows 机器,以便更轻松地编辑代码。(VMS 编辑器只是一个文本编辑器,如果有语法高亮等功能会很好)

我可以使用 Exceed FTP 复制它,这可以处理带有 vms 版本后缀的重复文件名的问题:

  • 文件.c;1
  • 文件.c;2
  • Flle.c;3

但是当我打开一个我传输的文件时,所有的换行符都丢失了,整个文件只有一行。

任何人都可以为此推荐解决方案或提供任何提示吗?

提前致谢

附:我需要能够将文件复制回 vms 并仍然保持格式。

ftp vms

4
推荐指数
1
解决办法
1万
查看次数

匹配 VMS 文件名的正确正则表达式模式是什么?

http://h71000.www7.hp.com/doc/731final/documentation/pdf/ovms_731_file_app.pdf (第 5-1 节)上的文档表示文件名应如下所示:

node::device:[root.][directory-name]filename.type;version
Run Code Online (Sandbox Code Playgroud)

其中大多数是可选的(例如节点、设备、版本) - 不确定哪些以及如何在正则表达式中正确编写它们(包括目录名称):

DISK1:[MYROOT.][MYDIR]FILE.DAT

DISK1:[MYDIR]FILE.DAT

[MYDIR]FILE.DAT

FILE.DAT;10

NODE::DISK5:[REMOTE.ACCESS]FILE.DAT
Run Code Online (Sandbox Code Playgroud)

regex filesystems vms

4
推荐指数
1
解决办法
676
查看次数

什么是VMS中unix的等效命令

我在vms中有一个工具xyz.我想获取安装它的位置.例如在unix中我们可以通过使用哪个命令来实现这一点.所以请帮我vms相当于这个命令.

unix vms openvms

3
推荐指数
1
解决办法
556
查看次数

在dcl脚本中隐藏错误消息

我有一个运行的测试脚本会产生一些错误,如下所示,我希望这些错误.反正我可以阻止它们出现在屏幕上吗?我用

$ write sys$output
Run Code Online (Sandbox Code Playgroud)

显示是否存在预期错误.

我试着用

$ DEFINE SYS$ERROR ERROR.LOG
Run Code Online (Sandbox Code Playgroud)

但是这会将我的整个错误输出日志更改为此,如果这是正确的处理方式,我可以在脚本的某端以某种方式取消设置吗?

[错误示例]

%DCL-E-OPENIN, error opening TEST$DISK:[AAA]NOTTHERE.TXT; as input
-RMS-E-FNF, file not found
%DCL-E-OPENIN, error opening TEST$DISK:[AAA]NOTTHERE.TXT; as input
-RMS-E-FNF, file not found
%DCL-W-UNDFIL, file has not been opened by DCL - check logical name
Run Code Online (Sandbox Code Playgroud)

vms dcl

2
推荐指数
1
解决办法
1062
查看次数

如何在openvms中读取命令行参数来运行ac程序?

我构建了一个简单的程序,尝试打印命令行参数.

代码如下,我构建了一个可执行文件(TEST.EXE).

int main(int argc, char *argv[])
{
    int i;
    printf("%s\n",argv[0]);
    for (i = 1;  i < argc;  i++)
       printf("argument %d: %s\n", i, argv[i]);
    exit (EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)

我尝试运行TEST.EXE并打印参数但失败.

命令的结果RUN TEST.EXE test1 test2:

%DCL-W-MAXPARM, too many parameters - reenter command with fewer parameters
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能打印"test1"和"test2"?

c vms openvms

2
推荐指数
1
解决办法
757
查看次数

如何在VMS上列出历史命令?

如何在VMS上列出历史命令?

在linx上,我们可以使用"历史".

我在VMS上找不到相应的命令.

任何帮助将不胜感激.

谢谢

history vms openvms

1
推荐指数
1
解决办法
2094
查看次数

在OpenVMS上开发大会?

有人可以解释我如何在OpenVMS上进行汇编开发,我已经在OpenVMS上用C开发了,我刚开始在Windows和Linux中进行汇编.如何编译,链接和运行.asm程序?

assembly linker compilation vms openvms

0
推荐指数
1
解决办法
612
查看次数

通过监控OpenVMS确定应用程序可执行工件范围

我们有一个基于OpenVMS的传统COBOL应用程序 - 我们对配置没有一个清晰的认识.在这种情况下,通过"配置",我说的是:

  1. 哪个可执行文件构成应用程序;
  2. 哪些原始源文件对应于哪些可执行文件.

上面的1是一个未知的东西似乎很奇怪,但随着时间的推移,可执行文件已经"来去匆匆"(并且许多仍然被使用).其中的可执行文件构成的应用程序,因为它存在的知识,今天,因为知识,其中的可执行文件,不再需要在时间已丢失不得而知.实际上,团队忠实地编译所有源代码文件并部署生成的可执行文件,尽管显然有不再使用的程序.

不言而喻,没有正式的配置管理过程,并且源代码没有保存在版本控制系统中.由于应用程序在OpenVMS上运行,因此相应基于Files-11的文件系统保留了旧版本的文件(包括源文件),这一直是不将应用程序源放入版本控制系统的借口(尽管使用的原因) VCS的扩展远远超出了以前版本的记录.

当然,有许多方法可以确定配置,但我想从第一个"小步骤"开始,即:确定构成应用程序的可执行文件集.此时我应该提到应用程序的可执行组件不仅限于OpenVMS映像,还包括DCL命令文件.我想要:

  1. 记录驻留在某个目录或目录集中的所有图像调用;
  2. 记录驻留在某个目录或目录集中的所有命令文件调用.

如果我们在延长的时间段(例如两个月)内对我们的生产系统进行此日志记录,我们可以很好地了解应用程序包含的内容.与用户咨询一起,我们将能够确认是否需要未被调用的可执行文件.

我想我已经知道如何做1以上,虽然我不确定具体,即使用SET/AUDIT.第二部分,在这个阶段,我不知道该怎么做.

因此,这项工作的主要标准是,为了获得上述信息,现有系统的影响很小.由于配置周围的问号(以及完全缺乏自动化测试),改变任何事情都是一项令人头疼的事情.

使用操作系统级服务SET/AUDIT可以让人们在不需要更改源代码和/或重新编译任何内容的情况下了解正在运行的内容.所以,我的问题是多方:

  1. 这是在OpenVMS上执行此操作的最佳方式吗?
  2. 限制SET/AUDIT为仅监视特定目录中的图像需要做什么?
  3. 如何在不更改.COM源文件的情况下记录命令文件调用?
  4. 由于记录此类信息,我应该在性能下降方面有什么期望?

vms dcl openvms

0
推荐指数
1
解决办法
184
查看次数

标签 统计

vms ×13

openvms ×6

c ×2

dcl ×2

regex ×2

unix ×2

assembly ×1

cgi ×1

compilation ×1

eclipse ×1

filesystems ×1

ftp ×1

history ×1

java ×1

linker ×1

perl ×1

python ×1

vax ×1