IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 登记
 

确定库REXX exec是从以下位置执行的


IBM大型机论坛 -> 清单& REXX
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
威廉·唐尼

新的用户


已加入:2020年7月1日
帖子:15
地点:英国

邮政发表:2021年2月14日,星期日,下午6:20
引用回复

你好,
REXX执行程序可以确定它正在执行的库吗?我想知道的原因是,它是否正在从开发库中执行,我想使用LIBDEF开发面板库,否则使用分配给ISPPLIB的面板库。

在开发环境中运行时,我从ISPF成员列表中“ EX” REXX成员。否则,它将通过命令提示符中的“ TSO EXECNAME”运行,并从分配给SYSEXEC的库中执行REXX。
回到顶部
查看用户资料 发送私信
乔格·芬代森

活跃用户


已加入:2015年8月15日
帖子:391
地点:德国班贝格

邮政发表:2021年2月14日,星期日,下午6:32
引用回复

你的意思是这样吗?
代码:
解析源                                                               
                                                                           
     解析描述运行程序源的数据。语言
     处理器返回固定的字符串(does not change) while the   
     program is running.

代码:
/ * REXX * /                                     
跟踪?                                       
                                               
解析源allsource                         
解析var allsource。 。 。 。 dsn。 。 。         
回到顶部
查看用户资料 发送私信
威廉·唐尼

新的用户


已加入:2020年7月1日
帖子:15
地点:英国

邮政发表:2021年2月15日星期一12:45 pm
引用回复

嗨,Joerg,这正是我想要的。非常感谢。
回到顶部
查看用户资料 发送私信
普里诺
警告:1

高级会员


已加入:2009年2月7日
职位:1244
地点:立陶宛维尔纽斯

邮政发表:2021年2月15日星期一5:08 pm
引用回复

从串联中的下一个库运行时无法正常工作...

代码:

/ * REXX exec查找运行exec的数据集            */
/ *** trace?r ******************************************* ********** \ | *
*                (C)版权所有Frank Franke,2005-2007年                 *
****************************************************** **********************
* -------------------------------------------------- ----------------  *
* |日期       | By   | Remarks                                      | *
* | ------------ + ------ + ---------------------------- ------------------ | *
* |            |      |                                              | *
* | ------------ + ------ + ---------------------------- ------------------ | *
* | 2007-09-04 | RAHP |将网址括在“<..>'                        | *
* | ------------ + ------ + ---------------------------- ------------------ | *
* | 2005-12-08 |足球俱乐部   | Initial version                              | *
* | ------------ + ------ + ---------------------------- ------------------ | *
****************************************************** **********************
* ORIGIN是REXX执行程序,用于查找运行代码的库     *
* 从。它假设已分类的数据集。                                *
*                                                                      *
*道格·纳德尔(Doug Nadel)的原始代码,从吉尔伯特(Gilbert)提取了SWA代码       *
*吉尔伯特·圣面粉的SWAREQ执行官。                                   *
*                                                                      *
* From: <http://www.tek-tips.com/viewthread.cfm?qid=1162402&page=3>    *
****************************************************** ********************* /
  say find_origin()
出口

find_origin: procedure
数字10                     / *最多允许7FFFFFFF       */

答案="* UNKNOWN *"                 /* assume disaster            */

解析源。 。名称dd ds。          /* get known info             */

呼叫清单(dd "FILE")               / *从文件中获取第一个ddname   */

如果名称="?" then                     / *如果是顺序执行         */
  answer = "'"ds"'"                   / *使用来自解析源的信息* /
别的                                   / *现在测试成员       */
  if sysdsn("'"sysdsname"("name")'") = "OK"如果是第一个ds,则为/ *     */
    answer = "'"sysdsname"("name")'"   /* go no further              */
  else                                 / *流氓!让我们玩得开心!/
    do                                 / *扫描tiot以查找ddname   */
      tiotptr  = 24 + ptr(12 + ptr(ptr(ptr(16))))/ *获取ddname数组* /
      tioelngh = c2d(stg(tiotptr, 1)) / *第一个条目的长度        */

     直到tioelngh = 0 | tioeddnm = dd   / *扫描直到找到dd * /
        tioeddnm = strip(stg(tiotptr + 4, 8))/ *从tiot获取ddname * /

       如果tioeddnm \ = dd               /* if not a match        */
         tiotptr= tiotptr + tioelngh       / *前进至下一个条目* /

        tioelngh = c2d(stg(tiotptr, 1))     / *下一个条目的长度  */
      end

     如果dd = tioeddnm,则             / *如果找到它,循环遍历
                                           数据集执行swareq
                                           每一个得到
                                           dsname                     */
       直到tioelngh = 0 | g(4 + tiotptr, 1) \= " "
          tioejfcb = stg(tiotptr + 12, 3)
          jfcb = swareq(tioejfcb)       / *将SVA转换为31位地址* /
          dsn = strip(stg(jfcb,44))     /* dsname JFCBDSNM            */
          vol = storage(d2x(jfcb + 118),6)/* volser JFCBVOLS (unused) */

          if sysdsn("'"dsn"("name")'") = 'OK' then    /* found it?    */
            leave                       / *我们是一些快乐的露营者! * /

          tiotptr = tiotptr + tioelngh           /* get next entry   */
          tioelngh = c2d(stg(tiotptr, 1))         / *获取条目长度* /
        end

      answer = "'"dsn"("name")'"               / *假设我们找到了它* /
    end
返回答案

ptr: return c2d(storage(d2x(arg(1)), 4))

g: return storage(d2x(arg(1)), arg(2))

swareq: procedure
  if right(c2x(arg(1)), 1) \= 'F' then        /* SWA=BELOW ?          */
    return c2d(arg(1)) + 16                   / *是,返回sva + 16 * /

  sva  = c2d(arg(1))                         / *转换为十进制   */
  tcb  = c2d(storage(21c, 4))                 /* TCB PSATOLD          */
  tcb  = ptr(540)                             /* TCB PSATOLD          */
  jscb = ptr(tcb + 180)                       /* JSCB TCBJSCB         */
  qmpl = ptr(jscb + 244)                      /* QMPL JSCBQMPI        */
  qmat = ptr(qmpl + 24)                       /* QMAT QMADD           */

  do while sva > 65536
    qmat = ptr(qmat + 12)                     / *下一个QMAT QMAT + 12  */
    sva  = sva - 65536                        /* 010006F -> 000006F   */
  end

返回ptr(qmat + sva + 1) + 16
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2216
地点:硅谷

邮政发表:2021年2月18日(星期四)上午6:14
引用回复

ALTLIB命令可能被用来为rexx程序设置用户库。并且ALTLIB命令可以用来堆叠不同的文件。使用ALTLIB DISPLAY命令,并为响应提供的每个文件名,在每个数据集中搜索该成员。然后搜索SYSEXEC和SYSPROC。使用Prino / Doug Nadel提供的代码进行搜索。
回到顶部
查看用户资料 发送私信
唐·雷西

活跃成员


已加入:2010年7月6日
帖子:699
地点:加拿大安大略省惠特比

邮政发表:2021年2月18日(星期四)上午9:30
引用回复

QBASELIB服务可能是要考虑的另一种选择。给定一个ddname,它将返回与其串联的所有DSN。
回到顶部
查看用户资料 发送私信
威利·詹森(Willy Jensen)

活跃用户


已加入:2015年9月1日
职位:418
地点:丹麦

邮政发表:2021年2月18日(星期四)下午2:04
引用回复

展开LISTALC命令,遍历除STEPLIB,* LIST *等以外的数据集列表。当然,您还必须检查每个数据集的RECFM。不是很有效,但是可行。
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2216
地点:硅谷

邮政发表:2021年2月19日星期五12:37 pm
引用回复

我不确定从先前的评论中是否清楚。问题是关于rexx程序从何处加载的,所以我认为您必须遵循与rexx相同的“搜索顺序”。

-PARSE SOURCE结果
-来自ALTLIB DISPLAY结果的DD名称
-SYSEXEC串联
-SYSPROC串联
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> 清单& REXX

 


类似主题
话题 论坛 回覆
没有新帖 从REXX调用FTP的任何示例吗? 清单& REXX 1
没有新帖 SummeRx:REXX z / OS的新框架 清单& REXX 6
没有新帖 更改存在的LRECL的命令... JCL和VSAM 7
没有新帖 使用REXX访问SDSF;我是什么 ... 清单& REXX 38
没有新帖 从REXX调用汇编程序 PL / I和组装商 5
搜索我们的论坛:


回到顶部