标签: zos

从z/os下载Python和ftplib.FTP的文本文件

我正在尝试使用Python和ftplib自动从az/os PDS下载一些文本文件.

由于主机文件是EBCDIC,我不能简单地使用FTP.retrbinary().

FTP.retrlines()当与open(file,w).writelines一起用作其回调时,当然不提供EOL.

所以,对于初学者来说,我已经提出了这段"看起来对我好"的代码,但由于我是一个相对的Python noob,有人能提出更好的方法吗?显然,为了保持这个简单的问题,这不是最后的,钟声和口哨的事情.

非常感谢.

#!python.exe
from ftplib import FTP

class xfile (file):
    def writelineswitheol(self, sequence):
        for s in sequence:
            self.write(s+"\r\n")

sess = FTP("zos.server.to.be", "myid", "mypassword")
sess.sendcmd("site sbd=(IBM-1047,ISO8859-1)")
sess.cwd("'FOO.BAR.PDS'")
a = sess.nlst("RTB*")
for i in a:
    sess.retrlines("RETR "+i, xfile(i, 'w').writelineswitheol)
sess.quit()
Run Code Online (Sandbox Code Playgroud)

更新:Python 3.0,平台是Windows XP下的MingW.

z/os PDS具有固定的记录结构,而不是依赖行结尾作为记录分隔符.但是,z/os FTP服务器在文本模式下传输时,会提供记录结尾,其后退()剥离.

结账更新:

这是我修改后的解决方案,它将成为持续开发的基础(例如,删除内置密码):

import ftplib
import os
from sys import exc_info

sess = ftplib.FTP("undisclosed.server.com", "userid", "password")
sess.sendcmd("site sbd=(IBM-1047,ISO8859-1)")
for dir in ["ASM", "ASML", "ASMM", "C", "CPP", "DLLA", "DLLC", "DLMC", "GEN", "HDR", "MAC"]: …
Run Code Online (Sandbox Code Playgroud)

python ftp mainframe zos

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

zOS中的动态链接

我必须在zOS中创建一个动态链接的库.有哪些选项可以传递给编译器.

另外,如何检查zOS中的库是否与其他库动态链接[相关].我们在linux中有ldd,它显示了这种联系.我们在zOS土地上有'ldd'等价物吗?

dynamic-linking zos

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

如何限制DB2 CLP(z/OS)中返回的字段的显示长度?

我是一个Unix黑客,所以每当我想运行一些SQL时,我就会运行一个脚本.我用我的查询调用DB2并将stdout转储到文件中.非常尼安德特人,但它的确有效.我有一个带varchar(28672)的表.该字段永远不会那么长,但db2将其格式化为28k宽.

显然,我更改了我的查询以选择substr(field,1,100)来获得字段的开头,这就是它返回的内容,只是前100个字符,但它仍然将输出的字段格式化为28672个字符.知道如何使其格式化为数据输出的大小?

db2 format zos

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

BizTalk MQSC适配器

我在测试BizTalk中的MQSC适配器以与Z/OS主机上的队列进行通信时遇到问题.

测试参数:通过Biztalk I(强制)发送消息时停止并启动主机通道,以模仿主机IPL.

在这种情况下,我经历了以下结果:

有时在主机MQ上没有取消注释消息. 即使频道再次启动.这样我就不知道消息是否已被Biztalk处理.
问题有没有办法确保消息始终在Host MQ上提交,或者如果未提交,仍然可以在MQ上使用

一旦我遇到重复的消息,一旦消息丢失, 因为这些事情每次只发生一次.我希望在我的测试应用程序/程序中发现问题.
这不是一个问题,但如果其他人遇到了我想知道的相同错误.

测试设置

  • Biztalk 2009在2个节点上
  • WebSphere MQ客户端7.5.0.2(支持事务)
  • MSDTC - 启用XA事务(编辑以反映注释)
  • 用于主机系统的MS Biztalk适配器2.0 用于主机系统的MS Biztalk适配器2.0

端口配置
接收位置
接收位置

发送端口
发送端口

biztalk host zos biztalk-2009 ibm-mq

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

$ HASP373和IEF403I z/os syslog

我问自己一个关于z/os日志的问题:

我只是想知道所有开始的操作是否总是被$ HASP373和IEF403I调用?对于由$ HASP395和IEF404I调用的状态Ended?

mainframe zos

5
推荐指数
2
解决办法
795
查看次数

如何使用 SQL 在 IBM DB2 Z/OS 中显示表的当前权限

是否有一种 SQL 方法可以显示 DB2 Z/OS 中表或视图上的权限?我想实现这样的目标:

select * from sysibm.magic_table where table_name = 'users'

|TABLE_NAME|PRIVILEGE_TYPE|USER_OR_GROUP_NAME|
|     USERS|        INSERT|              ANDI|
|     USERS|        SELECT|            ADMINS|
Run Code Online (Sandbox Code Playgroud)

那可能吗?

sql db2 zos db2-zos

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

zOS:模块包含第 3 版程序对象功能,无法以加载模块格式保存

我正在尝试在 cobol 中进行 hello world 的链接,如本教程中所示,我可以编译程序并成功获取 project.group.OBJ 中的新成员,但是当我将它与

LINK project.group.OBJ(Member) lib('cee.sceelked')
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

 IEW2278I B352 INVOCATION PARAMETERS - TERM                                    
 IEW2606S 4B39 MODULE INCORPORATES VERSION 3 PROGRAM OBJECT FEATURES AND CANNOT
          BE SAVED IN LOAD MODULE FORMAT.                                      
 IEW2008I 0F03 PROCESSING COMPLETED.  RETURN CODE =  12.
Run Code Online (Sandbox Code Playgroud)

我意识到在 4(前景)选项中,链接编辑器在左侧显示一个星号:“7 *Binder/Link editor”,表示“不支持打包数据”。

错误是因为这个吗?“不支持打包数据”是什么意思?我可以毫无问题地访问该选项。

搜索我找到了一个链接,它表明“正在尝试以与正在使用的功能不兼容的格式保存模块”,但我不知道所使用的功能是什么意思。它是否与链接时应该放置的数据集加载的类型有关?我搞不清楚了。

cobol mainframe zos

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

DB2 版本的 SQL 差异

我们正在开发SQL使用SQL. ODBC drivers我们正在研究扩展到 的可能性DB2,但我读到有多个版本可用。DB2对于LUW、对于iSeries和对于 z/OS。

这些版本的功能SQL有什么差异吗?SQL/PLSQL

作为 ISV,是否有可能获得DB2用于iSeriesz/OS

sql db2 zos ibm-midrange

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

什么是"加载模块"?

我一直在阅读有关链接和加载(操作系统主题之一,不是特定于任何语言)的内容,我在没有任何先前参考的情况下遇到过这个术语"加载模块".根据我对其使用方式的理解,它似乎是编译和链接后的最终产品(也许是可执行文件).我试过谷歌,这个术语似乎与COBOL语言有关,并且没有特定于COBOL的规范,所以,我在这里发布这个,以便知道你们之前是否有人听过这个并且启发我.

linker cobol mainframe zos

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

识别 COBOL 中的程序调用子模块

假设我有一个 COBOL 模块 X,它被另一个程序 Y 调用。

如何在 X 中识别 Y 的名称?

我当然可以在链接部分将它传递给每个子模块,但我宁愿依靠更具程序性的方式来处理这个问题,而不是开发人员正确编码一些文字。

但是有没有任何已知的方法可以有效地做到这一点?也许一些晦涩的 LE 功能或要读取的特定控制块?

所有程序都使用 Enterprise COBOL 在 z/OS 上批量运行。

cobol mainframe zos

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